diff --git a/.github/agents/CIPP-Alert-Agent.md b/.github/agents/CIPP-Alert-Agent.md new file mode 100644 index 000000000000..13416171c64f --- /dev/null +++ b/.github/agents/CIPP-Alert-Agent.md @@ -0,0 +1,113 @@ +--- +# Fill in the fields below to create a basic custom agent for your repository. +# The Copilot CLI can be used for local testing: https://gh.io/customagents/cli +# To make this agent available, merge this file into the default repository branch. +# For format details, see: https://gh.io/customagents/config + +name: CIPP Alert Engineer +description: > + Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP + patterns, without touching API specs, avoiding CodeQL, and using + Test-CIPPStandardLicense for license/SKU checks. +--- + +# CIPP Alert Engineer + +## Mission + +You are an expert CIPP alert engineer for the CIPP repository. + +Your job is to implement, update, and review **alert-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on: + +- Creating new `Get-CIPPAlert*` PowerShell functions +- Adjusting existing alert logic when requested +- Ensuring alerts integrate cleanly with the existing scheduler and alerting framework +- Performing light validation and linting + +You **must follow all constraints in this file** exactly. + +--- + +## Scope of Work + +Use this agent when a task involves: + +- Adding a new alert (e.g. “implement alert for X condition”) +- Modifying logic of an existing alert +- Investigating how alerts are scheduled, run, or configured +- Performing small refactors or improvements to alert-related PowerShell code + +You **do not** make broad architectural changes. Keep changes focused and minimal. + +--- + +## Key Directories & Patterns + +When working on alerts, you should: + +1. **Discover existing alerts and patterns** + - Use shell commands to explore: + - `Modules/CIPPCore/Public/Alerts/` + - Inspect several existing alert files, e.g.: + - `Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1` + - Other `Get-CIPPAlert*.ps1` files + - Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**. + +2. **Follow the standard alert pattern** + - Alert functions live in: + `Modules/CIPPCore/Public/Alerts/` + - Alert functions are named: + `Get-CIPPAlert.ps1` + - Typical characteristics: + - Standard parameter set, including `TenantFilter` and similar common params. + - Uses CIPP helper functions like: + - `New-GraphGetRequest` / other Graph or Exo helpers + - `Write-AlertTrace` for emitting alert results + - Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting). + +3. **Rely on existing module loading** + - The CIPP module auto-loads `Public` functions recursively. + - **Do not** modify module manifest or loader behavior just to pick up your new alert. + +--- + +## Critical Constraints + +You **must** respect all of these: + +### 1. Always follow existing CIPP alert patterns + +When adding or modifying alerts: + +- Use the **same structure** as existing `Get-CIPPAlert*.ps1` files: + - Similar function signatures + - Similar logging and error handling + - Same approach to returning alert data via `Write-AlertTrace` +- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code, whenever possible. +- Keep alert behavior predictable and consistent with existing alerts. + +### 2. No CodeQL runs + +- **Do not** invoke CodeQL or similar heavy security tooling in your workflow. +- Rely on: + - PowerShell syntax checking + - `PSScriptAnalyzer` + - Manual/code-review style reasoning for security (no secrets, least privilege, etc.) + +### 3. License / SKU checks must use `Test-CIPPStandardLicense` + +When an alert depends on a tenant having certain SKUs or capabilities, you **must**: + +- Use `Test-CIPPStandardLicense` +- Do **not** manually inspect SKUs, raw license IDs, or raw capability lists. + +Example pattern (adapt to the specific feature): + +```powershell +$TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotProfile' -TenantFilter $Tenant -RequiredCapabilities @( + 'INTUNE_A', + 'MDM_Services', + 'EMS', + 'SCCM', + 'MICROSOFTINTUNEPLAN1' +) diff --git a/.github/agents/CIPP-Standards-Agent.md b/.github/agents/CIPP-Standards-Agent.md new file mode 100644 index 000000000000..f12807cb00bf --- /dev/null +++ b/.github/agents/CIPP-Standards-Agent.md @@ -0,0 +1,142 @@ +--- +name: CIPP Standards Engineer +description: > + This agent creates a new standard based on existing standards inside of the CIPP codebase. + The agent must never modify any other file or perform any other change than creating a new standard. +--- + +# CIPP Standards Engineer + +name: CIPP Alert Engineer +description: > + Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP + patterns, without touching API specs, avoiding CodeQL, and using + Test-CIPPStandardLicense for license/SKU checks. +--- + +# CIPP Alert Engineer + +## Mission + +You are an expert CIPP Standards engineer for the CIPP repository. + +Your job is to implement, update, and review **Standards-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on: + +- Creating new `Invoke-CIPPStandard*` PowerShell functions +- Adjusting existing standard logic when requested +- Ensuring standards integrate into the frontend by returning the correct information +- Performing light validation and linting + +You **must follow all constraints in this file** exactly. + +--- + +## Scope of Work + +Use this agent when a task involves: + +- Adding a new standard (e.g. “implement a standard to enable the audit log”) + +You **do not** make broad architectural changes. Keep changes focused and minimal. + +--- + +## Key Directories & Patterns + +When working on alerts, you should: + +1. **Discover existing alerts and patterns** + - Use shell commands to explore: + - `Modules/CIPPCore/Public/Standards/` + - Inspect several existing alert files, e.g.: + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardAddDKIM.ps1` + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardlaps.ps1` + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardOutBoundSpamAlert.ps1` + - Other `Invoke-CIPPStandard*.ps1` files + - Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**. + +2. **Follow the standard alert pattern** + - Alert functions live in: + `Modules/CIPPCore/Public/Standardss/` + - Alert functions are named: + `Invoke-CIPPStandardAddDKIM.ps1` + - Typical characteristics: + - Standard parameter set, including `Tenant` and `Settings` which can be a complex object with subsettings, and similar common params. + - Uses CIPP helper functions like: + - `New-GraphGetRequest` for any graph requests + - `New-ExoReques` for creating exo requests + - Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting). + - Each standard requires a Remediate, alert, and report section. + +3. **Rely on existing module loading** + - The CIPP module auto-loads `Public` functions recursively. + - **Do not** modify module manifest or loader behavior just to pick up your new standard. + +--- + +## Critical Constraints + +You **must** respect all of these: + +### 1. Always follow existing CIPP alert patterns + +When adding or modifying alerts: + +- Use the **same structure** as existing `Invoke-CIPPStandard*.ps1` files: + - Similar function signatures + - Similar logging and error handling +- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code. +- Keep behaviour predictable. + +### 2. Return the code for the frontend. + +The frontend requires a section to be changed in standards.json. This is an example JSON payload: + +```json + { + "name": "standards.MailContacts", + "cat": "Global Standards", + "tag": [], + "helpText": "Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information.", + "docsDescription": "", + "executiveText": "Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.MailContacts.GeneralContact", + "label": "General Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.SecurityContact", + "label": "Security Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.MarketingContact", + "label": "Marketing Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.TechContact", + "label": "Technical Contact", + "required": false + } + ], + "label": "Set contact e-mails", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-03-13", + "powershellEquivalent": "Set-MsolCompanyContactInformation", + "recommendedBy": [] + }, +``` + +the name of the standard should be standards.. e.g. Invoke-CIPPStandardMailcontacts becomes standards.Mailcontacts. + +Added components might be required to populate the $settings variable. for example addedcomponent "standards.MailContacts.GeneralContact" becomes $Settings.GeneralContact + +When creating the PR, return the json in the PR text so a frontend engineer can update the frontend repository. diff --git a/.github/workflows/dev_api.yml b/.github/workflows/dev_api.yml index 47181a0b2f68..3d92bc00c7d3 100644 --- a/.github/workflows/dev_api.yml +++ b/.github/workflows/dev_api.yml @@ -1,31 +1,42 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: dev_api - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - if: github.event.repository.fork == false && github.event_name == 'push' - runs-on: windows-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippjta72' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_5B44448119C645C099EE192346D7433A }} +# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action +# More GitHub Actions for Azure: https://github.com/Azure/actions + +name: dev_api + +on: + push: + branches: + - dev + workflow_dispatch: + +env: + AZURE_FUNCTIONAPP_PACKAGE_PATH: "." # set this to the path to your web app project, defaults to the repository root + +jobs: + deploy: + permissions: + id-token: write #This is required for requesting the JWT + contents: read #This is required for actions/checkout + if: github.event.repository.fork == false && github.event_name == 'push' + runs-on: windows-latest + + steps: + - name: "Checkout GitHub Action" + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Login to Azure + uses: azure/login@v2 + with: + client-id: ${{ secrets.DEV_CLIENTID }} + tenant-id: ${{ secrets.DEV_TENANTID }} + subscription-id: ${{ secrets.DEV_SUBSCRIPTIONID }} + + - name: "Run Azure Functions Action" + uses: Azure/functions-action@v1 + id: fa + with: + app-name: "cippjta72" + slot-name: "Production" + package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} diff --git a/.github/workflows/dev_api_proc.yml b/.github/workflows/dev_api_proc.yml deleted file mode 100644 index 61591158e040..000000000000 --- a/.github/workflows/dev_api_proc.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: dev_api_proc - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - if: github.event.repository.fork == false && github.event_name == 'push' - runs-on: windows-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippjta72-proc' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_A53AC5C52A55459DA0A3D8F1716638CB }} diff --git a/.github/workflows/dev_cippahmcc.yml b/.github/workflows/dev_cippahmcc.yml deleted file mode 100644 index 545a60fa955e..000000000000 --- a/.github/workflows/dev_cippahmcc.yml +++ /dev/null @@ -1,30 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy Powershell project to Azure Function App - cippahmcc - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - runs-on: windows-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippahmcc' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_D6317AAB492A474D91B7A6CD29E53BA3 }} \ No newline at end of file diff --git a/.github/workflows/dev_cippmpiii.yml b/.github/workflows/dev_cippmpiii.yml deleted file mode 100644 index 6f9742a83d1d..000000000000 --- a/.github/workflows/dev_cippmpiii.yml +++ /dev/null @@ -1,30 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy Powershell project to Azure Function App - cippmpiii - -on: - push: - branches: - - dev - workflow_dispatch: - -env: - AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root - -jobs: - deploy: - runs-on: ubuntu-latest - - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@v4 - - - name: 'Run Azure Functions Action' - uses: Azure/functions-action@v1 - id: fa - with: - app-name: 'cippmpiii' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_BC5F21E993034DF2A3793489CE4705E4 }} \ No newline at end of file diff --git a/.github/workflows/dev_clouduptest.yml b/.github/workflows/dev_clouduptest.yml deleted file mode 100644 index 2754bc9b6e7b..000000000000 --- a/.github/workflows/dev_clouduptest.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy Powershell project to Azure Function App - clouduptest - -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: 'clouduptest' - slot-name: 'Production' - package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} - publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_9B9E8B9A9BBE446188BCA9F126A1B646 }} - sku: 'flexconsumption' - \ No newline at end of file diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index b1a2146b9fad..81acfa86790f 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -17,7 +17,9 @@ jobs: steps: # Checkout the repository - name: Checkout Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + persist-credentials: false # Read and Trim Version - name: Read and Trim Version @@ -91,4 +93,4 @@ jobs: container_name: cipp-api source_folder: src/releases/ destination_folder: / - delete_if_exists: true \ No newline at end of file + delete_if_exists: true diff --git a/.github/workflows/upload_dev.yml b/.github/workflows/upload_dev.yml index 4ed3159ff8cf..37ceb8fcd3fb 100644 --- a/.github/workflows/upload_dev.yml +++ b/.github/workflows/upload_dev.yml @@ -14,7 +14,9 @@ jobs: steps: # Checkout the repository - name: Checkout Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + persist-credentials: false # Create ZIP File in a New Source Directory - name: Prepare and Zip Release Files diff --git a/.gitignore b/.gitignore index 4bb4cb1069b0..ec6b5ec8902e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,9 @@ Logs ExcludedTenants SendNotifications/config.json .env - +Output/ +node_modules/.yarn-integrity +yarn.lock # Cursor IDE .cursor/rules diff --git a/CIPPHttpTrigger/function.json b/CIPPHttpTrigger/function.json index 5aa5c500a642..bfd835e6a6a8 100644 --- a/CIPPHttpTrigger/function.json +++ b/CIPPHttpTrigger/function.json @@ -7,50 +7,21 @@ "type": "httpTrigger", "direction": "in", "name": "Request", - "methods": ["get", "post"], - "route": "{CIPPEndpoint}" + "methods": [ + "get", + "post", + "patch", + "put", + "delete", + "options" + ], + "route": "{*CIPPEndpoint}" }, { "type": "http", "direction": "out", "name": "Response" }, - { - "type": "queue", - "direction": "out", - "name": "QueueItem", - "queueName": "CIPPGenericQueue" - }, - { - "type": "queue", - "direction": "out", - "name": "Subscription", - "queueName": "AlertSubscriptions" - }, - { - "type": "queue", - "direction": "out", - "name": "gradientqueue", - "queueName": "billqueue" - }, - { - "type": "queue", - "direction": "out", - "name": "alertqueue", - "queueName": "alertqueue" - }, - { - "type": "queue", - "direction": "out", - "name": "incidentqueue", - "queueName": "incidentqueue" - }, - { - "type": "queue", - "direction": "out", - "name": "offboardingmailbox", - "queueName": "offboardingmailbox" - }, { "name": "starter", "type": "durableClient", diff --git a/CIPPTimers.json b/CIPPTimers.json index 4bbf8518afc6..f76dba8941e2 100644 --- a/CIPPTimers.json +++ b/CIPPTimers.json @@ -84,7 +84,7 @@ "Id": "4d80205c-674d-4fc1-abeb-a1ec37e0d796", "Command": "Start-DriftStandardsOrchestrator", "Description": "Orchestrator to process drift standards", - "Cron": "0 0 */1 * * *", + "Cron": "0 0 */12 * * *", "Priority": 5, "RunOnProcessor": true, "PreferredProcessor": "standards" @@ -213,5 +213,32 @@ "Priority": 20, "RunOnProcessor": true, "IsSystem": true + }, + { + "Id": "b8f3c2e1-5d4a-4f7b-9a2c-1e6d8f3b5a7c", + "Command": "Start-BackupRetentionCleanup", + "Description": "Timer to cleanup old backups based on retention policy", + "Cron": "0 0 2 * * *", + "Priority": 21, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "9a7f8e6d-5c4b-3a2d-1e0f-9b8c7d6e5f4a", + "Command": "Start-CIPPDBCacheOrchestrator", + "Description": "Timer to collect and cache Microsoft Graph data for all tenants", + "Cron": "0 0 3 * * *", + "Priority": 22, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "1f2e3d4c-5b6a-7c8d-9e0f-1a2b3c4d5e6f", + "Command": "Start-TestsOrchestrator", + "Description": "Timer to run security and compliance tests against cached data", + "Cron": "0 0 4 * * *", + "Priority": 23, + "RunOnProcessor": true, + "IsSystem": true } ] diff --git a/Config/schemaDefinitions.json b/Config/schemaDefinitions.json index 9a451842ed8e..4c2d78d561b0 100644 --- a/Config/schemaDefinitions.json +++ b/Config/schemaDefinitions.json @@ -2,15 +2,46 @@ { "id": "cippUser", "description": "CIPP User Schema", - "targetTypes": ["User"], + "targetTypes": [ + "User" + ], "properties": [ - { "name": "jitAdminEnabled", "type": "Boolean" }, - { "name": "jitAdminExpiration", "type": "DateTime" }, - { "name": "jitAdminReason", "type": "String" }, - { "name": "mailboxType", "type": "String" }, - { "name": "archiveEnabled", "type": "Boolean" }, - { "name": "autoExpandingArchiveEnabled", "type": "Boolean" }, - { "name": "perUserMfaState", "type": "String" } + { + "name": "jitAdminEnabled", + "type": "Boolean" + }, + { + "name": "jitAdminExpiration", + "type": "DateTime" + }, + { + "name": "jitAdminReason", + "type": "String" + }, + { + "name": "jitAdminStartDate", + "type": "DateTime" + }, + { + "name": "jitAdminCreatedBy", + "type": "String" + }, + { + "name": "mailboxType", + "type": "String" + }, + { + "name": "archiveEnabled", + "type": "Boolean" + }, + { + "name": "autoExpandingArchiveEnabled", + "type": "Boolean" + }, + { + "name": "perUserMfaState", + "type": "String" + } ], "status": "Available" } diff --git a/ConversionTable.csv b/ConversionTable.csv index 9407f70d6cb7..27ee53d2fe35 100644 --- a/ConversionTable.csv +++ b/ConversionTable.csv @@ -65,6 +65,7 @@ Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e087 Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government @@ -3770,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery @@ -4421,6 +4423,44 @@ Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,7 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics diff --git a/ExampleReportTemplate.ps1 b/ExampleReportTemplate.ps1 new file mode 100644 index 000000000000..e1973a4ba742 --- /dev/null +++ b/ExampleReportTemplate.ps1 @@ -0,0 +1,19 @@ +$Table = Get-CippTable -tablename 'CippReportTemplates' + +# Dynamically discover all ZTNA test files +$TestFiles = Get-ChildItem "C:\Github\CIPP-API\Modules\CIPPCore\Public\Tests\Invoke-CippTestZTNA*.ps1" | Sort-Object Name +$AllTestIds = $TestFiles.BaseName | ForEach-Object { $_ -replace 'Invoke-CippTestZTNA', 'ZTNA' } + +Write-Host "Discovered $($AllTestIds.Count) ZTNA tests" + +$Entity = @{ + RowKey = 'd5d1e123-bce0-482d-971f-be6ed820dd92' + PartitionKey = 'ReportingTemplate' + IdentityTests = [string]($AllTestIds | ConvertTo-Json -Compress) + Description = 'Complete Zero Trust Network Assessment Report' + Name = 'Full ZTNA Report' +} + +Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + +Write-Host "Report template created successfully with ID: $($Entity.RowKey)" diff --git a/Modules/Az.Accounts/4.0.2/.signature.p7s b/Modules/Az.Accounts/4.0.2/.signature.p7s deleted file mode 100644 index 9be7f47f9af7..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/.signature.p7s and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Accounts.format.ps1xml b/Modules/Az.Accounts/4.0.2/Accounts.format.ps1xml deleted file mode 100644 index 1b64518e4625..000000000000 --- a/Modules/Az.Accounts/4.0.2/Accounts.format.ps1xml +++ /dev/null @@ -1,555 +0,0 @@ - - - - - AzureErrorRecords - - Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord - Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord - Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord - - AzureErrorRecords - - - $_.InvocationInfo.HistoryId - - - - - - - - ErrorCategory - - - ErrorDetail - - - - "{" + $_.InvocationInfo.MyCommand + "}" - - - - $_.InvocationInfo.Line - - - - $_.InvocationInfo.PositionMessage - - - - $_.InvocationInfo.BoundParameters - - - - $_.InvocationInfo.UnboundParameters - - - - $_.InvocationInfo.HistoryId - - - - - - - AzureErrorRecords - $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord] - - - - - RequestId - - - Message - - - ServerMessage - - - ServerResponse - - - RequestMessage - - - - "{" + $_.InvocationInfo.MyCommand + "}" - - - - $_.InvocationInfo.Line - - - - $_.InvocationInfo.PositionMessage - - - StackTrace - - - - $_.InvocationInfo.HistoryId - - - - - - - AzureErrorRecords - $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord] - - - - - Message - - - StackTrace - - - - $_.Exception.GetType() - - - - "{" + $_.InvocationInfo.MyCommand + "}" - - - - $_.InvocationInfo.Line - - - - $_.InvocationInfo.PositionMessage - - - - $_.InvocationInfo.HistoryId - - - - - - - - Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile - - Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile - - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Description - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAccessToken - - Microsoft.Azure.Commands.Profile.Models.PSAccessToken - - - - - - - Token - - - ExpiresOn - - - Type - - - TenantId - - - UserId - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - locationPlacementId - - - Left - QuotaId - - - Left - SpendingLimit - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - - - - - Id - - - Type - - - Tenants - - - Credential - - - TenantMap - - - CertificateThumbprint - - - - $_.ExtendedProperties.GetEnumerator() - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Key - - - Left - Value - - - Left - AppliesTo - - - Left - Scope - - - Left - HelpMessage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Accounts/4.0.2/Accounts.generated.format.ps1xml b/Modules/Az.Accounts/4.0.2/Accounts.generated.format.ps1xml deleted file mode 100644 index 1594465ce310..000000000000 --- a/Modules/Az.Accounts/4.0.2/Accounts.generated.format.ps1xml +++ /dev/null @@ -1,477 +0,0 @@ - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - Left - - - - Left - - - - - - - - Left - if($null -ne $_.Context.Subscription.Name){$_.Context.Subscription.Name}else{$_.Context.Subscription.Id} - - - Left - if($null -ne $_.Context.Tenant.Name){$_.Context.Tenant.Name}else{$_.Context.Tenant.Id} - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - $_.Subscription.Name - - - Left - $_.Subscription.Id - - - Left - Account - - - Left - Environment - - - - - - - if([System.String]::IsNullOrEmpty($_.Tenant.Name)){$_.Tenant.Id}else{"$($_.Tenant.Name) ($($_.Tenant.Id))"} - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - ResourceManagerUrl - - - Left - ActiveDirectoryAuthority - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Id - - - Left - State - - - - - - - TenantId - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Id - - - Left - TenantCategory - - - Left - Domains - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSHttpResponse - - Microsoft.Azure.Commands.Profile.Models.PSHttpResponse - - - - - - - StatusCode - - - - Content - - - - [Microsoft.Rest.HttpExtensions]::ToJson($_.Headers).ToString() - - - - Method - - - - RequestUri - - - - Version - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Accounts/4.0.2/Accounts.types.ps1xml b/Modules/Az.Accounts/4.0.2/Accounts.types.ps1xml deleted file mode 100644 index b71f31d23490..000000000000 --- a/Modules/Az.Accounts/4.0.2/Accounts.types.ps1xml +++ /dev/null @@ -1,307 +0,0 @@ - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - PSStandardMembers - - - SerializationDepth - 10 - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - PSStandardMembers - - - SerializationDepth - 10 - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Core.AuthenticationStoreTokenCache - - - PSStandardMembers - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - CacheData - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Core.ProtectedFileTokenCache - - - PSStandardMembers - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - CacheData - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - PSStandardMembers - - - SerializationDepth - 10 - - - - - - Microsoft.Azure.Commands.Profile.Models.AzureContextConverter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Accounts/4.0.2/Az.Accounts.psd1 b/Modules/Az.Accounts/4.0.2/Az.Accounts.psd1 deleted file mode 100644 index 2ab002de9a4d..000000000000 --- a/Modules/Az.Accounts/4.0.2/Az.Accounts.psd1 +++ /dev/null @@ -1,392 +0,0 @@ -# -# Module manifest for module 'Az.Accounts' -# -# Generated by: Microsoft Corporation -# -# Generated on: 1/15/2025 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Az.Accounts.psm1' - -# Version number of this module. -ModuleVersion = '4.0.2' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '17a2feff-488b-47f9-8729-e2cec094624c' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. - -For more information on account credential management, please visit the following: https://learn.microsoft.com/powershell/azure/authenticate-azureps' - -# Minimum version of the PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# ClrVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Microsoft.Azure.PowerShell.AssemblyLoading.dll', - 'Microsoft.Azure.PowerShell.Authentication.Abstractions.dll', - 'Microsoft.Azure.PowerShell.Authentication.dll', - 'Microsoft.Azure.PowerShell.Authenticators.dll', - 'Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll', - 'Microsoft.Azure.PowerShell.Clients.Authorization.dll', - 'Microsoft.Azure.PowerShell.Clients.Compute.dll', - 'Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll', - 'Microsoft.Azure.PowerShell.Clients.Monitor.dll', - 'Microsoft.Azure.PowerShell.Clients.Network.dll', - 'Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll', - 'Microsoft.Azure.PowerShell.Clients.ResourceManager.dll', - 'Microsoft.Azure.PowerShell.Common.dll', - 'Microsoft.Azure.PowerShell.Storage.dll', - 'Microsoft.Azure.PowerShell.Clients.Storage.Management.dll', - 'Microsoft.Azure.PowerShell.Clients.KeyVault.dll', - 'Microsoft.Azure.PowerShell.Clients.Websites.dll', - 'Hyak.Common.dll', 'Microsoft.ApplicationInsights.dll', - 'Microsoft.Azure.Common.dll', 'Microsoft.Rest.ClientRuntime.dll', - 'Microsoft.Rest.ClientRuntime.Azure.dll', - 'Microsoft.WindowsAzure.Storage.dll', - 'Microsoft.Azure.PowerShell.Clients.Aks.dll', - 'Microsoft.Azure.PowerShell.Strategies.dll', - 'Microsoft.Azure.PowerShell.Common.Share.dll', 'FuzzySharp.dll' - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Accounts.format.ps1xml', 'Accounts.generated.format.ps1xml' - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = @() - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = 'Disable-AzDataCollection', 'Disable-AzContextAutosave', - 'Enable-AzDataCollection', 'Enable-AzContextAutosave', - 'Remove-AzEnvironment', 'Get-AzEnvironment', 'Set-AzEnvironment', - 'Add-AzEnvironment', 'Get-AzSubscription', 'Connect-AzAccount', - 'Get-AzContext', 'Set-AzContext', 'Import-AzContext', 'Save-AzContext', - 'Get-AzTenant', 'Send-Feedback', 'Resolve-AzError', 'Select-AzContext', - 'Rename-AzContext', 'Remove-AzContext', 'Clear-AzContext', - 'Disconnect-AzAccount', 'Get-AzContextAutosaveSetting', - 'Set-AzDefault', 'Get-AzDefault', 'Clear-AzDefault', - 'Register-AzModule', 'Enable-AzureRmAlias', 'Disable-AzureRmAlias', - 'Uninstall-AzureRm', 'Invoke-AzRestMethod', 'Get-AzAccessToken', - 'Open-AzSurveyLink', 'Get-AzConfig', 'Update-AzConfig', - 'Clear-AzConfig', 'Export-AzConfig', 'Import-AzConfig' - -# Variables to export from this module -# VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = 'Add-AzAccount', 'Login-AzAccount', 'Remove-AzAccount', - 'Logout-AzAccount', 'Select-AzSubscription', 'Save-AzProfile', - 'Get-AzDomain', 'Invoke-AzRest', 'Set-AzConfig' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','Accounts','Authentication','Environment','Subscription' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Fixed unsigned dll: - - ''System.Buffers.dll'' - - ''System.Memory.dll''' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - - -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDK5mtKgkmMpDXq -# ldT4F01qzQRc+NEC2lnYYNG6at2a8aCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIE0A -# zdD96lAK1Vo8NAiCaLC0IqqKrc+f7RR+opf803wCMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAUrDzdpNCNElUTylcmOwPaynLh9fIYdC9VVm4 -# 9NNecnfDcN8iTiMf4wb+Z8STF/nOxmGmgpqz5Imsqci2TC5OvE+0cerww9nF0wz1 -# oBk/7HNqLC2w/8f5QK6O/dIkbtf559VtDN1999+m7E+W7rko2NlV+ooMVxBQGL8q -# Fjea1exAsvcevtBMaxhjI6zrOu6RzGL+XGBPS3/oZeHT4Fd5AcT+bzFU7/GfmiqY -# LtqFSnp96TeCnMA8LerHUMBgVelyHv5rkgAlT79j/5Q/2rBdo/7YKeGc1MKMwNm1 -# noFIejEeY8aCsHBBSGp3i4D4eNcM10VoFA12el0BQdgk0lUgnKGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCw+jAlIMAAKTlWFDcoIENvOSdmlWNeoWRJ -# cdxPsRwwuAIGZ2MAM/iyGBMyMDI1MDExNTA1Mzk0Ny45MjlaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB9ZkJ -# lLzxxlCMAAEAAAH1MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwMVoXDTI1MTAyMjE4MzEwMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjY1MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# zO90cFQTWd/WP84IT7JMIW1fQL61sdfgmhlfT0nvYEb2kvkNF073ZwjveuSWot38 -# 7LjE0TCiG93e6I0HzIFQBnbxGP/WPBUirFq7WE5RAsuhNfYUL+PIb9jJq3CwWxIC -# fw5t/pTyIOHjKvo1lQOTWZypir/psZwEE7y2uWAPbZJTFrKen5R73x2Hbxy4eW1D -# cmXjym2wFWv10sBH40ajJfe+OkwcTdoYrY3KkpN/RQSjeycK0bhjo0CGYIYa+ZMA -# ao0SNR/R1J1Y6sLkiCJO3aQrbS1Sz7l+/qJgy8fyEZMND5Ms7C0sEaOvoBHiWSpT -# M4vc0xDLCmc6PGv03CtWu2KiyqrL8BAB1EYyOShI3IT79arDIDrL+de91FfjmSbB -# Y5j+HvS0l3dXkjP3Hon8b74lWwikF0rzErF0n3khVAusx7Sm1oGG+06hz9XAy3Wo -# u+T6Se6oa5LDiQgPTfWR/j9FNk8Ju06oSfTh6c03V0ulla0Iwy+HzUl+WmYxFLU0 -# PiaXsmgudNwVqn51zr+Bi3XPJ85wWuy6GGT7nBDmXNzTNkzK98DBQjTOabQXUZ88 -# 4Yb9DFNcigmeVTYkyUXZ6hscd8Nyq45A3D3bk+nXnsogK1Z7zZj6XbGft7xgOYvv -# eU6p0+frthbF7MXv+i5qcD9HfFmOq4VYHevVesYb6P0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRV4Hxb9Uo0oHDwJZJe22ixe2B1ATAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAcwxmVPaA9xHffuom0TOSp2hspuf1G0cHW/KXHAuhnpW8/Svlq5j9aKI/ -# 8/G6fGIQMr0zlpau8jy83I4zclGdJjl5S02SxDlUKawtWvgf7ida06PgjeQM1eX4 -# Lut4bbPfT0FEp77G76hhysXxTJNHv5y+fwThUeiiclihZwqcZMpa46m+oV6igTU6 -# I0EnneotMqFs0Q3zHgVVr4WXjnG2Bcnkip42edyg/9iXczqTBrEkvTz0UlltpFGa -# QnLzq+No8VEgq0UG7W1ELZGhmmxFmHABwTT6sPJFV68DfLoC0iB9Qbb9VZ8mvbTV -# 5JtISBklTuVAlEkzXi9LIjNmx+kndBfKP8dxG/xbRXptQDQDaCsS6ogLkwLgH6zS -# s+ul9WmzI0F8zImbhnZhUziIHheFo4H+ZoojPYcgTK6/3bkSbOabmQFf95B8B6e5 -# WqXbS5s9OdMdUlW1gTI1r5u+WAwH2KG7dxneoTbf/jYl3TUtP7AHpyck2c0nun/Q -# 0Cycpa9QUH/Dy01k6tQomNXGjivg2/BGcgZJ0Hw8C6KVelEJ31xLoE21m9+NEgSK -# CRoFE1Lkma31SyIaynbdYEb8sOlZynMdm8yPldDwuF54vJiEArjrcDNXe6BobZUi -# TWSKvv1DJadR1SUCO/Od21GgU+hZqu+dKgjKAYdeTIvi9R2rtLYwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAJsAKu48NbR5Y -# Rg3WSBQCyjzdkvaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxvo4wIhgPMjAyNTAxMTUwNDU2NDZaGA8yMDI1 -# MDExNjA0NTY0NlowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA6zG+jgIBADAKAgEA -# AgIoogIB/zAHAgEAAgISHDAKAgUA6zMQDgIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQCVq0g+iWAmRm16BtbM2Sp4q6+PRBq3nCiusp6qte0xRnsTZb3Tlkyv -# 91TSfqNDFnVdm/BSvFWHRwZL74s3jxgELjkPsv7Ms6an5NvzApEfrBg0OFMGItTW -# 06gvvGNIuJgWy/8AEruIqVU4LtKpopccfNBaGcGbPBoU/uFDh3ziERqHzKECulPM -# 2wG1OaO4eqzGTLf2YId4WQhKgMvFiPWBpfcWcILB2s7sFukaqFCMAGyn5GbteXGs -# bV4StcmiNk4Xy0iXKDF4VvKuiuZjje8/3VkxxrLgUsiChsZ4KHLQwS3o0tHEY+gf -# kWWN5IjQ9JNcoQk78vSMdHHWGqusO0/PMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH1mQmUvPHGUIwAAQAAAfUwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgizqi6CmtxzVP9l8zL6yoUDgllwt9uwXkgMyBaqVB7gAwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDB1vLSFwh09ISu4kdEv4/tg9eR1Yk8w5x7 -# j5GThqaPNTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB9ZkJlLzxxlCMAAEAAAH1MCIEIEMLG08lG2xg9LnQKbkk+Sdc4Uk5rgPQtsKF -# qXpfJKEMMA0GCSqGSIb3DQEBCwUABIICABBitbDgwdV7wL7FhlODyhGhZaeYUsyT -# +9b2XxkD1UFJcSUmZADUKXW/ekuISVN+Ll8dy5B73Wcc8gDgZlS4WYdGrVBRRsiT -# MSMVYPhvAfEN5vRpxMNzyxEfLUNOzv1NvJVOxEAFvdnPH0VC09jzXsHGcJn2O4vz -# rieeNt3/TPQKIjL3vXGJhXJULnNKyFTKNXg7ufSOcrU8XDiT4MZttfKcbT26qkWq -# PqHQfXqKe1WoAsRp5EgTvJncxu51KhPCApQ0LE8Lm4AB1vgc2pjlaFs5PZs6A2dP -# 4jEyCLzkm9wBA9QVYTj9Xzmh3Aalit4Uja13YdbO+5e5FNnBZzsVugv6p3K/pJca -# TvM3ykY3poxXPSUtzomZ/9T4E4YkHfef/YXDn5uQFN7oRyntmZ6YeN6gbTVv5cNP -# jHenOmojF45YY+wmhUrw0UgAgKPTgAsUQCQK576aolo9OCugLKUlJNPIH8Bhoan+ -# kaTwRxGd9M3O7AYFmfqGQ4UJbOS+Vb/jkMR1x5UjvaFTuXnSWcUkatMnCg33ZWkK -# iekRiX0Wtme+RLiBtUUFChE9aTU/65Dxe5VEYi6vgn3x02JJNAzbQ5qdAr3i+H5z -# 5nzxyfPSgoAWmczsWiJo4T8PRZtc/FmrwmpA3TjYihPm8lA+Are5XG+WZiJQe9OY -# dFS1z/xdasRU -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/Az.Accounts.psm1 b/Modules/Az.Accounts/4.0.2/Az.Accounts.psm1 deleted file mode 100644 index d241cbf09f01..000000000000 --- a/Modules/Az.Accounts/4.0.2/Az.Accounts.psm1 +++ /dev/null @@ -1,358 +0,0 @@ -# -# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/15/2025 04:43:49 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - - - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies -if ($PSEdition -eq "Desktop") { - [Microsoft.Azure.PowerShell.AssemblyLoading.ConditionalAssemblyProvider]::GetAssemblies().Values | ForEach-Object { - $path = $_.Item1 - try { - Add-Type -Path $path -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose "Could not preload $path" - } - } -} - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll) - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @() - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - -[Microsoft.Azure.Commands.Profile.Utilities.CommandNotFoundHelper]::RegisterCommandNotFoundAction($ExecutionContext.InvokeCommand) - -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBwt70oVUrtNYG0 -# GEoxxpfM/NAFTlcmfziPbVQ6V7MS36CCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINKF -# x8cKgPvXJLmCJ6vZXGRyJR7bxtBQ1tf0rPIOIeecMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAYg4uCSbzwf0+3IAsz5ly4l2T+RFK2bNrly8s -# sQXcBxSMfJwCxpim8ar2ybus0JFc1vSyLvvP6S+51kjxoGEruZLna38EzofTpPQt -# J514atJIC87oqjf3PhEZ5UHZBZV6sxQqkAWerD/IxXIiUiR03WTaPcqihTzGueui -# xc9fRuNiSQSU/aAH3RYfgj1MRyzSKFM1QDfYwAU89EG9OKFhA1O4l//ROc0sIPsx -# Q6tkoDARigx6IrwfAR1KvanUE17Kc42dgte1RmduY3flItysACb0fWRdRan+ysLT -# kz7H3txI8RKXSQKLocmYIEsp5ULwSAWBIQpjTlSb7D7XCuDa2qGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCA07ntfPiYF0m5iI8ufTS426s5Op+n/EUos -# e8s3rQQMVAIGZ2L55w3rGBMyMDI1MDExNTA1MDYwMC4wMjVaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAdFF -# WZgQzEJPAAEAAAIBMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMloXDTI1MTAyMjE4MzEyMlowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjU1MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# tWrf+HzDu7sk50y5YHheCIJG0uxRSFFcHNek+Td9ZmyJj20EEjaU8JDJu5pWc4pP -# AsBI38NEAJ1b+KBnlStqU8uvXF4qnEShDdi8nPsZZQsTZDKWAgUM2iZTOiWIuZcF -# s5ZC8/+GlrVLM5h1Y9nfMh5B4DnUQOXMremAT9MkvUhg3uaYgmqLlmYyODmba4lX -# ZBu104SLAFsXOfl/TLhpToT46y7lI9sbI9uq3/Aerh3aPi2knHvEEazilXeooXNL -# Cwdu+Is6o8kQLouUn3KwUQm0b7aUtsv1X/OgPmsOJi6yN3LYWyHISvrNuIrJ4iYN -# gHdBBumQYK8LjZmQaTKFacxhmXJ0q2gzaIfxF2yIwM+V9sQqkHkg/Q+iSDNpMr6m -# r/OwknOEIjI0g6ZMOymivpChzDNoPz9hkK3gVHZKW7NV8+UBXN4G0aBX69fKUbxB -# BLyk2cC+PhOoUjkl6UC8/c0huqj5xX8m+YVIk81e7t6I+V/E4yXReeZgr0FhYqNp -# vTjGcaO2WrkP5XmsYS7IvMPIf4DCyIJUZaqoBMToAJJHGRe+DPqCHg6bmGPm97Mr -# OWv16/Co6S9cQDkXp9vMSSRQWXy4KtJhZfmuDz2vr1jw4NeixwuIDGw1mtV/TdSI -# +vpLJfUiLl/b9w/tJB92BALQT8e1YH8NphdOo1xCwkcCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSwcq9blqLoPPiVrym9mFmFWbyyUjAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAOjQAyz0cVztTFGqXX5JLRxFK/O/oMe55uDqEC8Vd1gbcM28KBUPgvUIP -# Xm/vdDN2IVBkWHmwCp4AIcy4dZtkuUmd0fnu6aT9Mvo1ndsLp2YJcMoFLEt3Ttri -# LaO+i4Grv0ZULtWXUPAW/Mn5Scjgn0xZduGPBD/Xs3J7+get9+8ZvBipsg/N7poi -# mYOVsHxLcem7V5XdMNsytTm/uComhM/wgR5KlDYTVNAXBxcSKMeJaiD3V1+HhNkV -# liMl5VOP+nw5xWF55u9h6eF2G7eBPqT+qSFQ+rQCQdIrN0yG1QN9PJroguK+FJQJ -# dQzdfD3RWVsciBygbYaZlT1cGJI1IyQ74DQ0UBdTpfeGsyrEQ9PI8QyqVLqb2q7L -# tI6DJMNphYu+jr//0spr1UVvyDPtuRnbGQRNi1COwJcj9OYmlkFgKNeCfbDT7U3u -# EOvWomekX60Y/m5utRcUPVeAPdhkB+DxDaev3J1ywDNdyu911nAVPgRkyKgMK3US -# LG37EdlatDk8FyuCrx4tiHyqHO3wE6xPw32Q8e/vmuQPoBZuX3qUeoFIsyZEenHq -# 2ScMunhcqW32SUVAi5oZ4Z3nf7dAgNau21NEPwgW+2wkrNqDg7Hp8yHyoOKbgEBu -# 6REQbvSfZ5Kh4PV+S2gxf2uq6GoYDnlqABOMYwz309ISi0bPMh8wggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA1+26cR/yH100 -# DiNFGWhuAv2rYBqggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxuEEwIhgPMjAyNTAxMTUwNDI5NTNaGA8yMDI1 -# MDExNjA0Mjk1M1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA6zG4QQIBADAKAgEA -# AgIHzQIB/zAHAgEAAgISnTAKAgUA6zMJwQIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQB87qItBy5QGJZwK9rvox2hiIJRJKuKzcMxT1ZFJzdVA+aldDmVQdWk -# /kpOMHDoHzXEbJcPIbCngaf2g6HKZfRzVh2XJSAwk7zXLR4acMaY1GO5yIQ2OesO -# HW36CskPz7m6Wq4JFO6K6EE534K4lTFU6TG4YFcpYfJKqdxlQbDmlBGwM0iaLOxM -# uFLcrt+/FUmdJll+hEBIJ4I3B7DMWVu9iw9ERWfAKmM6oP7Ikrjz3MGzaGzxC5/Q -# ADVueNzI7qhJ41VUoLCJ8TdsY3HPZG4oPWLy/gcqkSdULMIkVLRbqZMgUQU2t0re -# 5mVhIYaoNxb5VzUMtQfAAeQ9YktmP/OoMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIB0UVZmBDMQk8AAQAAAgEwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgyASmzzAr0ZwZ55KQBu6yOCu9/CnGDyrh8t47/5g8/3kwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCBYa7I6TJQRcmx0HaSTWZdJgowdrl9+Zrr0 -# pIdqHtc4IzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAACAdFFWZgQzEJPAAEAAAIBMCIEIMdlN3kdopMNiKrT6aHLNW+KZt96Yb72qdBD -# 6f1aGI67MA0GCSqGSIb3DQEBCwUABIICAJUpKwUXN/AKqRuhx3QqVr3w3qfmUSZ9 -# FXyw6l7L0xhOvXBsfPROZBnlSculduAbm9kqolWgiSWkID5B4sTp7/YRnmVtxEzT -# aHlt7u3H4sDoABa4MXbhmpDLlpqObc/KDa1LYufbn/gFimQgFaQY8oacgTFiILFR -# UpUq1I9pQ2xUZm0g8Plt1yil1SXi+FEYtirS5MV7vvCIsDha/UflwiQ0tW6YUoZG -# 2KjxBq1Y1jgZelNbDRiYXfQuc3tSIGMsjh9PL9Md/MSNM2qbpPrUQQu83SXkTTlj -# oA/cQICaoW4wIhs7QcEUa4KEzeClXIbdh6zsxlMhm4r8zvGxwGLTFs5UAjEHOKcX -# k1BtH3AfjAoStVkAtvAptiVu6IvF1eYEvmx35ebJom2yZr2tvdxUsoKjZQ9m1+Sw -# E9+AJOps3QCB6geJRO1dego+hw+UpOC4mMBE+/uhbTb1T9gJVXPJiIwKnZtMuY+I -# UqJ5sm2RpsGZ9vSo1PnVb56mIQXp4P8SJ8LwIIxkmCHw8gLs//qYoy9MXcBf8Aq9 -# v8rpIh7jet7BHE5zLZiY7pN7BdbGJZBp3hgiyRJTPrYQD9i4vwb6JNRISfMJgAwH -# 6Hl0BHoOF3wiqaBJ1R7T7mt49uNX/QsIli8jgDNVdtqULQwasDF6RfCfqN+y3SLZ -# T4PNlqoz3O6D -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/FuzzySharp.dll b/Modules/Az.Accounts/4.0.2/FuzzySharp.dll deleted file mode 100644 index 701466a04d5e..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/FuzzySharp.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Hyak.Common.dll b/Modules/Az.Accounts/4.0.2/Hyak.Common.dll deleted file mode 100644 index 18a53248894f..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Hyak.Common.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.ApplicationInsights.dll b/Modules/Az.Accounts/4.0.2/Microsoft.ApplicationInsights.dll deleted file mode 100644 index 8ef5eef2989d..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.ApplicationInsights.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.Common.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.Common.dll deleted file mode 100644 index 1c9d8e2a0ef5..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.Common.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AssemblyLoading.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AssemblyLoading.dll deleted file mode 100644 index 619254b637cd..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AssemblyLoading.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll deleted file mode 100644 index e40edefc86e3..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll deleted file mode 100644 index dd57fdc38ae0..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.dll deleted file mode 100644 index 20b86e1ea990..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authentication.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll deleted file mode 100644 index 2396df000cc2..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authenticators.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authenticators.dll deleted file mode 100644 index e280f81e6722..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Authenticators.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Aks.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Aks.dll deleted file mode 100644 index e9dc594738ec..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Aks.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Authorization.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Authorization.dll deleted file mode 100644 index 7669ecfcddcf..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Authorization.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Compute.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Compute.dll deleted file mode 100644 index ce750e245544..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Compute.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll deleted file mode 100644 index 7060d4efbaac..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.KeyVault.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.KeyVault.dll deleted file mode 100644 index 0862ab671f22..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.KeyVault.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Monitor.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Monitor.dll deleted file mode 100644 index a66810241270..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Monitor.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Network.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Network.dll deleted file mode 100644 index 30d7293ef10e..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Network.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll deleted file mode 100644 index 7daf481f40b6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll deleted file mode 100644 index 82ad5ee131a1..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll deleted file mode 100644 index 48429f19a340..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Websites.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Websites.dll deleted file mode 100644 index 95f075434894..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Clients.Websites.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll deleted file mode 100644 index f98315f4fff3..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml deleted file mode 100644 index b8018518d840..000000000000 --- a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml +++ /dev/null @@ -1,14218 +0,0 @@ - - - - - Add-AzEnvironment - Add - AzEnvironment - - Adds endpoints and metadata for an instance of Azure Resource Manager. - - - - The Add-AzEnvironment cmdlet adds endpoints and metadata to enable Azure Resource Manager cmdlets to connect with a new instance of Azure Resource Manager. The built-in environments AzureCloud and AzureChinaCloud target existing public instances of Azure Resource Manager. - - - - Add-AzEnvironment - - Name - - Specifies the name of the environment to add. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - - System.Management.Automation.SwitchParameter - - - False - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzEnvironment - - Name - - Specifies the name of the environment to add. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzEnvironment - - AutoDiscover - - Discovers environments via default or configured endpoint. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Uri - - Specifies URI of the internet resource to fetch environments. - - System.Uri - - System.Uri - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint - - System.String - - System.String - - - None - - - AutoDiscover - - Discovers environments via default or configured endpoint. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Name - - Specifies the name of the environment to add. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - Uri - - Specifies URI of the internet resource to fetch environments. - - System.Uri - - System.Uri - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ----- Example 1: Creating and modifying a new environment ----- - Add-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint TestADEndpoint ` - -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` - -ResourceManagerEndpoint TestRMEndpoint ` - -GalleryEndpoint TestGalleryEndpoint ` - -GraphEndpoint TestGraphEndpoint - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - -Set-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint NewTestADEndpoint ` - -GraphEndpoint NewTestGraphEndpoint | Format-List - -Name : TestEnvironment -EnableAdfsAuthentication : False -OnPremise : False -ActiveDirectoryServiceEndpointResourceId : TestADApplicationId -AdTenant : -GalleryUrl : TestGalleryEndpoint -ManagementPortalUrl : -ServiceManagementUrl : -PublishSettingsFileUrl : -ResourceManagerUrl : TestRMEndpoint -SqlDatabaseDnsSuffix : -StorageEndpointSuffix : -ActiveDirectoryAuthority : NewTestADEndpoint -GraphUrl : NewTestGraphEndpoint -GraphEndpointResourceId : -TrafficManagerDnsSuffix : -AzureKeyVaultDnsSuffix : -DataLakeEndpointResourceId : -AzureDataLakeStoreFileSystemEndpointSuffix : -AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : -AzureKeyVaultServiceEndpointResourceId : -AzureOperationalInsightsEndpointResourceId : -AzureOperationalInsightsEndpoint : -AzureAnalysisServicesEndpointSuffix : -AzureAttestationServiceEndpointSuffix : -AzureAttestationServiceEndpointResourceId : -AzureSynapseAnalyticsEndpointSuffix : -AzureSynapseAnalyticsEndpointResourceId : -VersionProfiles : {} -ExtendedProperties : {} -BatchEndpointResourceId : - - In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. - - - - - - ------- Example 2: Discovering a new environment via Uri ------- - <# -Uri https://configuredmetadata.net returns an array of environment metadata. The following example contains a payload for the AzureCloud default environment. - -[ - { - "portal": "https://portal.azure.com", - "authentication": { - "loginEndpoint": "https://login.microsoftonline.com/", - "audiences": [ - "https://management.core.windows.net/" - ], - "tenant": "common", - "identityProvider": "AAD" - }, - "media": "https://rest.media.azure.net", - "graphAudience": "https://graph.windows.net/", - "graph": "https://graph.windows.net/", - "name": "AzureCloud", - "suffixes": { - "azureDataLakeStoreFileSystem": "azuredatalakestore.net", - "acrLoginServer": "azurecr.io", - "sqlServerHostname": ".database.windows.net", - "azureDataLakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net", - "keyVaultDns": "vault.azure.net", - "storage": "core.windows.net", - "azureFrontDoorEndpointSuffix": "azurefd.net" - }, - "batch": "https://batch.core.windows.net/", - "resourceManager": "https://management.azure.com/", - "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json", - "activeDirectoryDataLake": "https://datalake.azure.net/", - "sqlManagement": "https://management.core.windows.net:8443/", - "gallery": "https://gallery.azure.com/" - }, -…… -] -#> - -Add-AzEnvironment -AutoDiscover -Uri https://configuredmetadata.net - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - - In this example, we are discovering a new Azure environment from the `https://configuredmetadata.net` Uri. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/add-azenvironment - - - Get-AzEnvironment - - - - Remove-AzEnvironment - - - - Set-AzEnvironment - - - - - - - Clear-AzConfig - Clear - AzConfig - - Clears the values of configs that are set by the user. - - - - Clears the values of configs that are set by the user. By default all the configs will be cleared. You can also specify keys of configs to clear. - - - - Clear-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns true if cmdlet executes correctly. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Clear-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation when clearing all configs. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns true if cmdlet executes correctly. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Do not ask for confirmation when clearing all configs. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns true if cmdlet executes correctly. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Clear-AzConfig -Force - - Clear all the configs. `-Force` suppresses the prompt for confirmation. - - - - - - -------------------------- Example 2 -------------------------- - Clear-AzConfig -EnableDataCollection - - Clear the "EnableDataCollection" config. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/clear-azconfig - - - - - - Clear-AzContext - Clear - AzContext - - Remove all Azure credentials, account, and subscription information. - - - - Remove all Azure Credentials, account, and subscription information. - - - - Clear-AzContext - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Delete all users and groups from the global scope without prompting - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return a value indicating success or failure - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Clear the context only for the current PowerShell session, or for all sessions. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Delete all users and groups from the global scope without prompting - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return a value indicating success or failure - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Clear the context only for the current PowerShell session, or for all sessions. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - --------------- Example 1: Clear global context --------------- - Clear-AzContext -Scope CurrentUser - - Remove all account, subscription, and credential information for any powershell session. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/clear-azcontext - - - - - - Clear-AzDefault - Clear - AzDefault - - Clears the defaults set by the user in the current context. - - - - The Clear-AzDefault cmdlet removes the defaults set by the user depending on the switch parameters specified by the user. - - - - Clear-AzDefault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove all defaults if no default is specified - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroup - - Clear Default Resource Group - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove all defaults if no default is specified - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroup - - Clear Default Resource Group - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Clear-AzDefault - - This command removes all the defaults set by the user in the current context. - - - - - - -------------------------- Example 2 -------------------------- - Clear-AzDefault -ResourceGroup - - This command removes the default resource group set by the user in the current context. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/clear-azdefault - - - - - - Connect-AzAccount - Connect - AzAccount - - Connect to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. - - - - The `Connect-AzAccount` cmdlet connects to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. You can use this authenticated account only with Azure Resource Manager requests. To add an authenticated account for use with Service Management, use the `Add-AzureAccount` cmdlet from the Azure PowerShell module. If no context is found for the current user, the user's context list is populated with a context for each of their first 25 subscriptions. The list of contexts created for the user can be found by running `Get-AzContext -ListAvailable`. To skip this context population, specify the SkipContextPopulation switch parameter. After executing this cmdlet, you can disconnect from an Azure account using `Disconnect-AzAccount`. - - - - Connect-AzAccount - - AccessToken - - Specifies an access token. - > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. - - System.String - - System.String - - - None - - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - GraphAccessToken - - AccessToken for Graph Service. - - System.String - - System.String - - - None - - - KeyVaultAccessToken - - AccessToken for KeyVault Service. - - System.String - - System.String - - - None - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - MicrosoftGraphAccessToken - - Access token to Microsoft Graph - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipValidation - - Skip validation for access token. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - UseDeviceAuthentication - - Use device code authentication instead of a browser control. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - Identity - - Login using a Managed Service Identity. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - CertificateThumbprint - - Certificate Hash or Thumbprint. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SendCertificateChain - - Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - FederatedToken - - Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. - > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - CertificatePassword - - The password required to access the pkcs#12 certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - CertificatePath - - The path of certficate file in pkcs#12 format. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SendCertificateChain - - Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. - - System.Management.Automation.PSCredential - - System.Management.Automation.PSCredential - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Connect-AzAccount - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. - - System.Management.Automation.PSCredential - - System.Management.Automation.PSCredential - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SkipContextPopulation - - Skips context population if no contexts are found. - - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessToken - - Specifies an access token. - > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. - - System.String - - System.String - - - None - - - AccountId - - Id for Account, associated with your access token. In User authentication flows, the AccountId is user name / user id; In AccessToken flow, it is the AccountId for the access token; In ManagedService flow, it is the associated client Id of UserAssigned identity. To use the SystemAssigned identity, leave this field blank. - - System.String - - System.String - - - None - - - ApplicationId - - Application ID of the service principal. - - System.String - - System.String - - - None - - - AuthScope - - Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. - - System.String - - System.String - - - None - - - CertificatePassword - - The password required to access the pkcs#12 certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - CertificatePath - - The path of certficate file in pkcs#12 format. - - System.String - - System.String - - - None - - - CertificateThumbprint - - Certificate Hash or Thumbprint. - - System.String - - System.String - - - None - - - ContextName - - Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). - - System.String - - System.String - - - None - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. - - System.Management.Automation.PSCredential - - System.Management.Automation.PSCredential - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Environment - - Environment containing the Azure account. - - System.String - - System.String - - - None - - - FederatedToken - - Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. - > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. - - System.String - - System.String - - - None - - - Force - - Overwrite the existing context with the same name without prompting. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - GraphAccessToken - - AccessToken for Graph Service. - - System.String - - System.String - - - None - - - Identity - - Login using a Managed Service Identity. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeyVaultAccessToken - - AccessToken for KeyVault Service. - - System.String - - System.String - - - None - - - MaxContextPopulation - - Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. - - System.Int32 - - System.Int32 - - - None - - - MicrosoftGraphAccessToken - - Access token to Microsoft Graph - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SendCertificateChain - - Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipal - - Indicates that this account authenticates by providing service principal credentials. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SkipContextPopulation - - Skips context population if no contexts are found. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SkipValidation - - Skip validation for access token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Subscription - - Subscription Name or ID. - - System.String - - System.String - - - None - - - Tenant - - Optional tenant name or ID. - > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. - - System.String - - System.String - - - None - - - UseDeviceAuthentication - - Use device code authentication instead of a browser control. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - - - - - - - - - - ------------ Example 1: Connect to an Azure account ------------ - Connect-AzAccount - -Please select the account you want to login with. - -Retrieving subscriptions for the selection... -[Tenant and subscription selection] - -No Subscription name Subscription ID Tenant domain name ----- ------------------------------------ ---------------------------------------- -------------------------- -[1] Subscription1 xxxx-xxxx-xxxx-xxxx xxxxxxxxx.xxxxxxxxxxx.com -[2] Subscription2 xxxx-xxxx-xxxx-xxxx xxxxxxxxx.xxxxxxxxxxx.com -... -[9] Subscription9 xxxx-xxxx-xxxx-xxxx xxxxxxxxx.xxxxxxxxxxx.com - -Select a tenant and subscription: 1 <requires user's input here> - -Subscription name Tenant domain name ------------------------------------- -------------------------- -Subscription1 xxxxxxxxx.xxxxxxxxxxx.com - -[Announcements] -Share your feedback regarding your experience with `Connect-AzAccount` at: https://aka.ms/azloginfeedback - -If you encounter any problem, please open an issue at: https://aka.ms/azpsissue - -SubscriptionName Tenant ------------------ ------ -Subscription1 xxxxxxxxx.xxxxxxxxxxx.com - - - - - - - - Example 2: Connect to Azure using organizational ID credentials - $Credential = Get-Credential -Connect-AzAccount -Credential $Credential - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - Example 3: Connect to Azure using a service principal account - $SecurePassword = Read-Host -Prompt 'Enter a Password' -AsSecureString -$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' -$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz' -$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecurePassword -Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxx-xxxx-xxxx-xxxx Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - Example 4: Use an interactive login to connect to a specific tenant and subscription - Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx' -SubscriptionId 'yyyy-yyyy-yyyy-yyyy' - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - ----- Example 5: Connect using a Managed Service Identity ----- - Connect-AzAccount -Identity -Set-AzContext -Subscription Subscription1 - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -MSI@50342 Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - Example 6: Connect using Managed Service Identity login and ClientId - $identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity' -Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id -Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - ------------ Example 7: Connect using certificates ------------ - $Thumbprint = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' -$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' -$ApplicationId = '00000000-0000-0000-0000-00000000' -Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxxxxxx-xxxx-xxxx-xxxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud - -Account : xxxxxxxx-xxxx-xxxx-xxxxxxxx -SubscriptionName : MyTestSubscription -SubscriptionId : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz -TenantId : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy -Environment : AzureCloud - - - - - - - - -------------- Example 8: Connect with AuthScope -------------- - Connect-AzAccount -AuthScope Storage - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - - - - - - - ---------- Example 9: Connect using certificate file ---------- - $SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force -$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' -$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz' -Connect-AzAccount -ServicePrincipal -ApplicationId $ApplicationId -TenantId $TenantId -CertificatePath './certificatefortest.pfx' -CertificatePassword $securePassword - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud - - - - - - - - --------- Example 10: Connect interactively using WAM --------- - Update-AzConfig -EnableLoginByWam $true -Connect-AzAccount - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/connect-azaccount - - - - - - Disable-AzContextAutosave - Disable - AzContextAutosave - - Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window - - - - Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window - - - - Disable-AzContextAutosave - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings - - - - - - - - - - - - - - ---------- Example 1: Disable autosaving the context ---------- - Disable-AzContextAutosave - - Disable autosave for the current user. - - - - - - -------------------------- Example 2 -------------------------- - Disable-AzContextAutosave -Scope Process - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disable-azcontextautosave - - - - - - Disable-AzDataCollection - Disable - AzDataCollection - - Opts out of collecting data to improve the Azure PowerShell cmdlets. Data is collected by default unless you explicitly opt out. - - - - The `Disable-AzDataCollection` cmdlet is used to opt out of data collection. Azure PowerShell automatically collects telemetry data by default. To disable data collection, you must explicitly opt-out. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. If you've previously opted out, run the `Enable-AzDataCollection` cmdlet to re-enable data collection for the current user on the current machine. - - - - Disable-AzDataCollection - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -- Example 1: Disabling data collection for the current user -- - Disable-AzDataCollection - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disable-azdatacollection - - - Enable-AzDataCollection - - - - - - - Disable-AzureRmAlias - Disable - AzureRmAlias - - Disables AzureRm prefix aliases for Az modules. - - - - Disables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases disabled. Otherwise all AzureRm aliases are disabled. - - - - Disable-AzureRmAlias - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all disabled aliases - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be disabled for. Default is 'Process' - - - Process - CurrentUser - LocalMachine - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all disabled aliases - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be disabled for. Default is 'Process' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Disable-AzureRmAlias - - Disables all AzureRm prefixes for the current PowerShell session. - - - - - - -------------------------- Example 2 -------------------------- - Disable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser - - Disables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disable-azurermalias - - - - - - Disconnect-AzAccount - Disconnect - AzAccount - - Disconnects a connected Azure account and removes all credentials and contexts associated with that account. - - - - The Disconnect-AzAccount cmdlet disconnects a connected Azure account and removes all credentials and contexts (subscription and tenant information) associated with that account. After executing this cmdlet, you will need to login again using Connect-AzAccount. - - - - Disconnect-AzAccount - - ApplicationId - - ServicePrincipal id (globally unique id) - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - TenantId - - Tenant id (globally unique id) - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - AzureContext - - Context - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - ContextName - - Name of the context to log out of - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - InputObject - - The account object to remove - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disconnect-AzAccount - - Username - - User name of the form 'user@contoso.org' - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - ServicePrincipal id (globally unique id) - - System.String - - System.String - - - None - - - AzureContext - - Context - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - ContextName - - Name of the context to log out of - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - The account object to remove - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - TenantId - - Tenant id (globally unique id) - - System.String - - System.String - - - None - - - Username - - User name of the form 'user@contoso.org' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not executed. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount - - - - - - - - - - - - - - ----------- Example 1: Logout of the current account ----------- - Disconnect-AzAccount - - Logs out of the Azure account associated with the current context. - - - - - - Example 2: Logout of the account associated with a particular context - Get-AzContext "Work" | Disconnect-AzAccount -Scope CurrentUser - - Logs out the account associated with the given context (named 'Work'). Because this uses the 'CurrentUser' scope, all credentials and contexts will be permanently deleted. - - - - - - ------------- Example 3: Log out a particular user ------------- - Disconnect-AzAccount -Username 'user1@contoso.org' - - Logs out the 'user1@contoso.org' user - all credentials and all contexts associated with this user will be removed. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/disconnect-azaccount - - - - - - Enable-AzContextAutosave - Enable - AzContextAutosave - - Azure contexts are PowerShell objects representing your active subscription to run commands against, and the authentication information needed to connect to an Azure cloud. With Azure contexts, Azure PowerShell doesn't need to reauthenticate your account each time you switch subscriptions. For more information, see Azure PowerShell context objects (https://learn.microsoft.com/powershell/azure/context-persistence). - This cmdlet allows the Azure context information to be saved and automatically loaded when you start a PowerShell process. For example, when opening a new window. - - - - Allows the Azure context information to be saved and automatically loaded when a PowerShell process starts. The context is saved at the end of the execution of any cmdlet that affects the context. For example, any profile cmdlet. If you're using user authentication, then tokens can be updated during the course of running any cmdlet. - - - - Enable-AzContextAutosave - - DefaultProfile - - The credentials, tenant, and subscription used for communication with Azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - CurrentUser - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet isn't run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with Azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - CurrentUser - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet isn't run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings - - - - - - - - - - - - - - Example 1: Enable autosaving credentials for the current user - Enable-AzContextAutosave - - - - - - - - -------------------------- Example 2 -------------------------- - Enable-AzContextAutosave -Scope Process - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/enable-azcontextautosave - - - - - - Enable-AzDataCollection - Enable - AzDataCollection - - Enables Azure PowerShell to collect data to improve the user experience with the Azure PowerShell cmdlets. Executing this cmdlet opts in to data collection for the current user on the current machine. Data is collected by default unless you explicitly opt out. - - - - The `Enable-AzDataCollection` cmdlet is used to opt in to data collection. Azure PowerShell automatically collects telemetry data by default. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. To disable data collection, you must explicitly opt out by executing `Disable-AzDataCollection`. - - - - Enable-AzDataCollection - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - --- Example 1: Enabling data collection for the current user --- - Enable-AzDataCollection - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/enable-azdatacollection - - - Disable-AzDataCollection - - - - - - - Enable-AzureRmAlias - Enable - AzureRmAlias - - Enables AzureRm prefix aliases for Az modules. - - - - Enables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases enabled. Otherwise all AzureRm aliases are enabled. - - - - Enable-AzureRmAlias - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to enable aliases for. If none are specified, default is all modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all aliases enabled - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be enabled for. Default is 'Local' - - - Local - Process - CurrentUser - LocalMachine - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Module - - Indicates which modules to enable aliases for. If none are specified, default is all modules. - - System.String[] - - System.String[] - - - None - - - PassThru - - If specified, cmdlet will return all aliases enabled - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Indicates what scope aliases should be enabled for. Default is 'Local' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Enable-AzureRmAlias - - Enables all AzureRm prefixes for the current PowerShell session. - - - - - - -------------------------- Example 2 -------------------------- - Enable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser - - Enables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/enable-azurermalias - - - - - - Export-AzConfig - Export - AzConfig - - Exports all the configs into a file so that it can be imported on another machine. - - - - The `Export-AzConfig` cmdlet exports all the configs that are set at the "CurrentUser" scope into a file at given path in JSON format. The file can then be imported by `Import-AzConfig` for example on another machine. - - - - Export-AzConfig - - Path - - Specifies the path of the file to which to save the configs. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrites the given file if it exists. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns a boolean value indicating success or failure. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrites the given file if it exists. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns a boolean value indicating success or failure. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of the file to which to save the configs. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Export-AzConfig -Path ./config.json - - This example exports the configs to `./config.json` file which can later be imported via `Import-AzConfig`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/export-azconfig - - - Import-AzConfig - - - - - - - Get-AzAccessToken - Get - AzAccessToken - - Get secure raw access token. When using -ResourceUrl, please make sure the value does match current Azure environment. You may refer to the value of `(Get-AzContext).Environment`. > _NOTE:_ The current default output token type is going to be changed from plain text `String` to `SecureString` for security. Please use `-AsSecureString` to migrate to the secure behaviour before the breaking change takes effects. - - - - Get access token - - - - Get-AzAccessToken - - AsSecureString - - Specifiy to convert output token as a secure string. Please always use the parameter for security purpose and to avoid the upcoming breaking chang and refer to Frequently asked questions about Azure PowerShell (https://learn.microsoft.com/en-us/powershell/azure/faq)for how to convert from `SecureString` to plain text. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceTypeName - - Optional resource type name, supported values: AadGraph, AnalysisServices, AppConfiguration, Arm, Attestation, Batch, CommunicationEmail, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. - - System.String - - System.String - - - None - - - TenantId - - Optional Tenant Id. Use tenant id of default context if not specified. - - System.String - - System.String - - - None - - - - Get-AzAccessToken - - AsSecureString - - Specifiy to convert output token as a secure string. Please always use the parameter for security purpose and to avoid the upcoming breaking chang and refer to Frequently asked questions about Azure PowerShell (https://learn.microsoft.com/en-us/powershell/azure/faq)for how to convert from `SecureString` to plain text. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceUrl - - Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. - - System.String - - System.String - - - None - - - TenantId - - Optional Tenant Id. Use tenant id of default context if not specified. - - System.String - - System.String - - - None - - - - - - AsSecureString - - Specifiy to convert output token as a secure string. Please always use the parameter for security purpose and to avoid the upcoming breaking chang and refer to Frequently asked questions about Azure PowerShell (https://learn.microsoft.com/en-us/powershell/azure/faq)for how to convert from `SecureString` to plain text. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceTypeName - - Optional resource type name, supported values: AadGraph, AnalysisServices, AppConfiguration, Arm, Attestation, Batch, CommunicationEmail, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. - - System.String - - System.String - - - None - - - ResourceUrl - - Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. - - System.String - - System.String - - - None - - - TenantId - - Optional Tenant Id. Use tenant id of default context if not specified. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAccessToken - - - The output type is going to be deprecate. - - - - - Microsoft.Azure.Commands.Profile.Models.PSSecureAccessToken - - - Use `-AsSecureString` to get the token as `SecureString`. - - - - - - - - - - - ------- Example 1 Get the access token for ARM endpoint ------- - Get-AzAccessToken -AsSecureString - - Get access token of current account for ResourceManager endpoint - - - - - - - Example 2 Get the access token for Microsoft Graph endpoint - - Get-AzAccessToken -AsSecureString -ResourceTypeName MSGraph - - Get access token of Microsoft Graph endpoint for current account - - - - - - - Example 3 Get the access token for Microsoft Graph endpoint - - Get-AzAccessToken -AsSecureString -ResourceUrl "https://graph.microsoft.com/" - - Get access token of Microsoft Graph endpoint for current account - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azaccesstoken - - - - - - Get-AzConfig - Get - AzConfig - - Gets the configs of Azure PowerShell. - - - - Gets the configs of Azure PowerShell. By default it lists all the configs. You can filter the result using various parameters. - > [!NOTE] > Configs have priorities. Generally speaking, Process scope has higher priority than CurrentUser scope; a config that applies to a certain cmdlet has higher priority than that applies to a module, again higher than Az. > To reduce confusion, the result of `Get-AzConfig` shows those configs that are taking effect. It is a combination of all the configs, but not literally all the configs. However, you could always view them by applying different filter parameters, such as `-Scope`. - - - - Get-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - - - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzConfig - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -EnableDataCollection False Az CurrentUser When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the custom… -DefaultSubscriptionForLogin Az Default Subscription name or GUID. Sets the default context for Azure PowerShell when logging in with… -DisplayBreakingChangeWarning True Az Default Controls if warning messages for breaking changes are displayed or suppressed. When enabled, … - - Gets all the configs. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzConfig -EnableDataCollection - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -EnableDataCollection False Az CurrentUser When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the custom… - - Gets the "EnableDataCollection" config. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azconfig - - - - - - Get-AzContext - Get - AzContext - - Gets the metadata used to authenticate Azure Resource Manager requests. - - - - The Get-AzContext cmdlet gets the current metadata used to authenticate Azure Resource Manager requests. This cmdlet gets the Active Directory account, Active Directory tenant, Azure subscription, and the targeted Azure environment. Azure Resource Manager cmdlets use these settings by default when making Azure Resource Manager requests. When the available amount of subscription exceeds the default limit of 25, some subscriptions may not show up in the results of `Get-AzContext -ListAvailable`. Please run `Connect-AzAccount -MaxContextPopulation <int>` to get more contexts. - - - - Get-AzContext - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListAvailable - - List all available contexts in the current session. - - - System.Management.Automation.SwitchParameter - - - False - - - RefreshContextFromTokenCache - - Refresh contexts from token cache - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzContext - - Name - - The name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListAvailable - - List all available contexts in the current session. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - The name of the context - - System.String - - System.String - - - None - - - RefreshContextFromTokenCache - - Refresh contexts from token cache - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - ------------ Example 1: Getting the current context ------------ - Connect-AzAccount -Get-AzContext - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... - - In this example we are logging into our account with an Azure subscription using Connect-AzAccount, and then we are getting the context of the current session by calling Get-AzContext. - - - - - - ---------- Example 2: Listing all available contexts ---------- - Get-AzContext -ListAvailable - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... -Subscription2 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription2 AzureCloud xxxxxxxx-x... -Subscription3 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription3 AzureCloud xxxxxxxx-x... - - In this example, all currently available contexts are displayed. The user may select one of these contexts using Select-AzContext. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azcontext - - - Set-AzContext - - - - Connect-AzAccount - - - - - - - Get-AzContextAutosaveSetting - Get - AzContextAutosaveSetting - - Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. - - - - Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. - - - - Get-AzContextAutosaveSetting - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings - - - - - - - - - - - - - - - Example 1: Get context save metadata for the current session - - Get-AzContextAutosaveSetting - -Mode : Process -ContextDirectory : None -ContextFile : None -CacheDirectory : None -CacheFile : None -Settings : {} - - Get details about whether and where the context is saved. In the above example, the autosave feature has been disabled. - - - - - - -- Example 2: Get context save metadata for the current user -- - Get-AzContextAutosaveSetting -Scope CurrentUser - -Mode : CurrentUser -ContextDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell -ContextFile : AzureRmContext.json -CacheDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell -CacheFile : TokenCache.dat -Settings : {} - - Get details about whether and where the context is saved by default for the current user. Note that this may be different than the settings that are active in the current session. In the above example, the autosave feature has been enabled, and data is saved to the default location. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azcontextautosavesetting - - - - - - Get-AzDefault - Get - AzDefault - - Get the defaults set by the user in the current context. - - - - The Get-AzDefault cmdlet gets the Resource Group that the user has set as default in the current context. - - - - Get-AzDefault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroup - - Display Default Resource Group - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroup - - Display Default Resource Group - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSResourceGroup - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzDefault - -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup -Name : myResourceGroup -Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties -Location : eastus -ManagedBy : -Tags : - - This command returns the current defaults if there are defaults set, or returns nothing if no default is set. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzDefault -ResourceGroup - -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup -Name : myResourceGroup -Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties -Location : eastus -ManagedBy : -Tags : - - This command returns the current default Resource Group if there is a default set, or returns nothing if no default is set. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azdefault - - - - - - Get-AzEnvironment - Get - AzEnvironment - - Get endpoints and metadata for an instance of Azure services. `GalleryUrl` will be removed from ArmMetadata and so Azure PowerShell will no longer provide for its value in `PSAzureEnvironment`. Currently `GalleryUrl` is not used in Azure PowerShell products. Please do not reply on `GalleryUrl` anymore. - - - - The Get-AzEnvironment cmdlet gets endpoints and metadata for an instance of Azure services. - - - - Get-AzEnvironment - - Name - - Specifies the name of the Azure instance to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Azure instance to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ---------- Example 1: Getting all Azure environments ---------- - Get-AzEnvironment - -Name Resource Manager Url ActiveDirectory Authority Type ----- -------------------- ------------------------- ---- -AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in -AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in -AzureChinaCloud https://management.chinacloudapi.cn/ https://login.chinacloudapi.cn/ Built-in - - This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. - - - - - - -------- Example 2: Getting the AzureCloud environment -------- - Get-AzEnvironment -Name AzureCloud - -Name Resource Manager Url ActiveDirectory Authority Type ----- -------------------- ------------------------- ---- -AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in - - This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. - - - - - - ------ Example 3: Getting the AzureChinaCloud environment ------ - Get-AzEnvironment -Name AzureChinaCloud | Format-List - -Name : AzureChinaCloud -Type : Built-in -EnableAdfsAuthentication : False -OnPremise : False -ActiveDirectoryServiceEndpointResourceId : https://management.core.chinacloudapi.cn/ -AdTenant : Common -GalleryUrl : https://gallery.azure.com/ -ManagementPortalUrl : https://go.microsoft.com/fwlink/?LinkId=301902 -ServiceManagementUrl : https://management.core.chinacloudapi.cn/ -PublishSettingsFileUrl : https://go.microsoft.com/fwlink/?LinkID=301776 -ResourceManagerUrl : https://management.chinacloudapi.cn/ -SqlDatabaseDnsSuffix : .database.chinacloudapi.cn -StorageEndpointSuffix : core.chinacloudapi.cn -ActiveDirectoryAuthority : https://login.chinacloudapi.cn/ -GraphUrl : https://graph.chinacloudapi.cn/ -GraphEndpointResourceId : https://graph.chinacloudapi.cn/ -TrafficManagerDnsSuffix : trafficmanager.cn -AzureKeyVaultDnsSuffix : vault.azure.cn -DataLakeEndpointResourceId : -AzureDataLakeStoreFileSystemEndpointSuffix : -AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : -AzureKeyVaultServiceEndpointResourceId : https://vault.azure.cn -ContainerRegistryEndpointSuffix : azurecr.cn -AzureOperationalInsightsEndpointResourceId : -AzureOperationalInsightsEndpoint : -AzureAnalysisServicesEndpointSuffix : asazure.chinacloudapi.cn -AnalysisServicesEndpointResourceId : https://region.asazure.chinacloudapi.cn -AzureAttestationServiceEndpointSuffix : -AzureAttestationServiceEndpointResourceId : -AzureSynapseAnalyticsEndpointSuffix : dev.azuresynapse.azure.cn -AzureSynapseAnalyticsEndpointResourceId : https://dev.azuresynapse.azure.cn - - This example shows how to get the endpoints and metadata for the AzureChinaCloud environment. - - - - - - ----- Example 4: Getting the AzureUSGovernment environment ----- - Get-AzEnvironment -Name AzureUSGovernment - -Name Resource Manager Url ActiveDirectory Authority Type ----- -------------------- ------------------------- ---- -AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in - - This example shows how to get the endpoints and metadata for the AzureUSGovernment environment. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azenvironment - - - Add-AzEnvironment - - - - Remove-AzEnvironment - - - - Set-AzEnvironment - - - - - - - Get-AzSubscription - Get - AzSubscription - - Get subscriptions that the current account can access. - - - - The Get-AzSubscription cmdlet gets the subscription ID, subscription name, and home tenant for subscriptions that the current account can access. - - - - Get-AzSubscription - - AsJob - - Run cmdlet in the background and return a Job to track progress. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - Specifies the ID of the subscription to get. - - System.String - - System.String - - - None - - - TenantId - - Specifies the ID of the tenant that contains subscriptions to get. - - System.String - - System.String - - - None - - - - Get-AzSubscription - - AsJob - - Run cmdlet in the background and return a Job to track progress. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionName - - Specifies the name of the subscription to get. - - System.String - - System.String - - - None - - - TenantId - - Specifies the ID of the tenant that contains subscriptions to get. - - System.String - - System.String - - - None - - - - - - AsJob - - Run cmdlet in the background and return a Job to track progress. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - Specifies the ID of the subscription to get. - - System.String - - System.String - - - None - - - SubscriptionName - - Specifies the name of the subscription to get. - - System.String - - System.String - - - None - - - TenantId - - Specifies the ID of the tenant that contains subscriptions to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - - - - - - - - - - - - ------- Example 1: Get all subscriptions in all tenants ------- - Get-AzSubscription - -Name Id TenantId State ----- -- -------- ----- -Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled -Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled -Subscription3 zzzz-zzzz-zzzz-zzzz bbbb-bbbb-bbbb-bbbb Enabled - - This command gets all subscriptions in all tenants that are authorized for the current account. - - - - - - ---- Example 2: Get all subscriptions for a specific tenant ---- - Get-AzSubscription -TenantId "aaaa-aaaa-aaaa-aaaa" - -Name Id TenantId State ----- -- -------- ----- -Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled -Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled - - List all subscriptions in the given tenant that are authorized for the current account. - - - - - - ---- Example 3: Get all subscriptions in the current tenant ---- - Get-AzSubscription -TenantId (Get-AzContext).Tenant - -Name Id TenantId State ----- -- -------- ----- -Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled -Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled - - This command gets all subscriptions in the current tenant that are authorized for the current user. - - - - - - Example 4: Change the current context to use a specific subscription - Get-AzSubscription -SubscriptionId "xxxx-xxxx-xxxx-xxxx" -TenantId "yyyy-yyyy-yyyy-yyyy" | Set-AzContext - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Subscription1 (xxxx-xxxx-xxxx-xxxx) azureuser@micros... Subscription1 AzureCloud yyyy-yyyy-yyyy-yyyy - - This command gets the specified subscription, and then sets the current context to use it. All subsequent cmdlets in this session use the new subscription (Contoso Subscription 1) by default. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-azsubscription - - - - - - Get-AzTenant - Get - AzTenant - - Gets tenants that are authorized for the current user. - - - - The Get-AzTenant cmdlet gets tenants authorized for the current user. - - - - Get-AzTenant - - TenantId - - Specifies the ID of the tenant that this cmdlet gets. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - TenantId - - Specifies the ID of the tenant that this cmdlet gets. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - - - - - - - - - - - - ---------------- Example 1: Getting all tenants ---------------- - Connect-AzAccount -Get-AzTenant - -Id Name Category Domains --- ----------- -------- ------- -xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} -yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy Testhost Home testhost.onmicrosoft.com - - This example shows how to get all of the authorized tenants of an Azure account. - - - - - - ------------- Example 2: Getting a specific tenant ------------- - Connect-AzAccount -Get-AzTenant -TenantId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - -Id Name Category Domains --- ----------- -------- ------- -xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} - - This example shows how to get a specific authorized tenant of an Azure account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/get-aztenant - - - - - - Import-AzConfig - Import - AzConfig - - Imports configs from a file that was previously exported by `Export-AzConfig`. - - - - The `Import-AzConfig` cmdlet imports all the configs from a file that was previously exported by `Export-AzConfig`. The imported configs will be set at the "CurrentUser" scope, so they are consistent across PowerShell sessions. - During importing, if a config that is to be imported has already been set, its value will be overwritten. - - - - Import-AzConfig - - Path - - Specifies the path to configuration saved by using Export-AzConfig. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns a boolean value indicating success or failure. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns a boolean value indicating success or failure. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path to configuration saved by using Export-AzConfig. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Import-AzConfig -Path ./config.json - - This example imports configs from file `./config.json`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/import-azconfig - - - Export-AzConfig - - - - - - - Import-AzContext - Import - AzContext - - Loads Azure authentication information from a file. - - - - The Import-AzContext cmdlet loads authentication information from a file to set the Azure environment and context. Cmdlets that you run in the current session use this information to authenticate requests to Azure Resource Manager. - - - - Import-AzContext - - AzureContext - - {{Fill AzureContext Description}} - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzContext - - Path - - Specifies the path to context information saved by using Save-AzContext. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AzureContext - - {{Fill AzureContext Description}} - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Path - - Specifies the path to context information saved by using Save-AzContext. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - - - - - - - - - - ----- Example 1: Importing a context from a AzureRmProfile ----- - Import-AzContext -AzContext (Connect-AzAccount) - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - This example imports a context from a PSAzureProfile that is passed through to the cmdlet. - - - - - - ------- Example 2: Importing a context from a JSON file ------- - Import-AzContext -Path C:\test.json - -Account SubscriptionName TenantId Environment -------- ---------------- -------- ----------- -azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud - - This example selects a context from a JSON file that is passed through to the cmdlet. This JSON file can be created from Save-AzContext. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/import-azcontext - - - - - - Invoke-AzRestMethod - Invoke - AzRestMethod - - Construct and perform HTTP request to Azure resource management endpoint only - - - - Construct and perform HTTP request to Azure resource management endpoint only - - - - Invoke-AzRestMethod - - ApiVersion - - Api Version - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - - FinalStateVia - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - Method - - Http Method - - - GET - POST - PUT - PATCH - DELETE - - System.String - - System.String - - - None - - - Name - - list of Target Resource Name - - System.String[] - - System.String[] - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - - AzureAsyncLocation - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - ResourceGroupName - - Target Resource Group Name - - System.String - - System.String - - - None - - - ResourceProviderName - - Target Resource Provider Name - - System.String - - System.String - - - None - - - ResourceType - - List of Target Resource Type - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - Target Subscription Id - - System.String - - System.String - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRestMethod - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - - FinalStateVia - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - Method - - Http Method - - - GET - POST - PUT - PATCH - DELETE - - System.String - - System.String - - - None - - - Path - - Path of target resource URL. Hostname of Resource Manager should not be added. - - System.String - - System.String - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - - AzureAsyncLocation - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRestMethod - - Uri - - Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. - - System.Uri - - System.Uri - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - - FinalStateVia - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - Method - - Http Method - - - GET - POST - PUT - PATCH - DELETE - - System.String - - System.String - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - - AzureAsyncLocation - Location - OriginalUri - Operation-Location - - System.String - - System.String - - - None - - - ResourceId - - Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. - - System.Uri - - System.Uri - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApiVersion - - Api Version - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FinalResultFrom - - Specifies the header for final GET result after the long-running operation completes. - - System.String - - System.String - - - None - - - Method - - Http Method - - System.String - - System.String - - - None - - - Name - - list of Target Resource Name - - System.String[] - - System.String[] - - - None - - - Path - - Path of target resource URL. Hostname of Resource Manager should not be added. - - System.String - - System.String - - - None - - - Payload - - JSON format payload - - System.String - - System.String - - - None - - - PollFrom - - Specifies the polling header (to fetch from) for long-running operation status. - - System.String - - System.String - - - None - - - ResourceGroupName - - Target Resource Group Name - - System.String - - System.String - - - None - - - ResourceId - - Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. - - System.Uri - - System.Uri - - - None - - - ResourceProviderName - - Target Resource Provider Name - - System.String - - System.String - - - None - - - ResourceType - - List of Target Resource Type - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - Target Subscription Id - - System.String - - System.String - - - None - - - Uri - - Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. - - System.Uri - - System.Uri - - - None - - - WaitForCompletion - - Waits for the long-running operation to complete before returning the result. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.string - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSHttpResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version={API}" -Method GET - -Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [x-ms-request-id, System.String[]], [Strict-Transport-Security, System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : { - "properties": { - "source": "Azure", - "customerId": "{customerId}", - "provisioningState": "Succeeded", - "sku": { - "name": "pergb2018", - "maxCapacityReservationLevel": 3000, - "lastSkuUpdate": "Mon, 25 May 2020 11:10:01 GMT" - }, - "retentionInDays": 30, - "features": { - "legacy": 0, - "searchVersion": 1, - "enableLogAccessUsingOnlyResourcePermissions": true - }, - "workspaceCapping": { - "dailyQuotaGb": -1.0, - "quotaNextResetTime": "Thu, 18 Jun 2020 05:00:00 GMT", - "dataIngestionStatus": "RespectQuota" - }, - "enableFailover": false, - "publicNetworkAccessForIngestion": "Enabled", - "publicNetworkAccessForQuery": "Enabled", - "createdDate": "Mon, 25 May 2020 11:10:01 GMT", - "modifiedDate": "Mon, 25 May 2020 11:10:02 GMT" - }, - "id": "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}", - "name": "{workspace}", - "type": "Microsoft.OperationalInsights/workspaces", - "location": "eastasia", - "tags": {} - } - - Get log analytics workspace by path. It only supports management plane API and Hostname of Azure Resource Manager is added according to Azure environment setting. - - - - - - - -------------------------- Example 2 -------------------------- - Invoke-AzRestMethod https://graph.microsoft.com/v1.0/me - -Headers : {[Date, System.String[]], [Cache-Control, System.String[]], [Transfer-Encoding, System.String[]], [Strict-Transport-Security, System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : {"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity","businessPhones":["......} - - Get current signed in user via MicrosoftGraph API. This example is equivalent to `Get-AzADUser -SignedIn`. - - - - - - -------------------------- Example 3 -------------------------- - $subscriptionId = (Get-AzContext).Subscription.ID -Invoke-AzRestMethod -SubscriptionId $subscriptionId -ResourceGroupName "test-group" -ResourceProviderName Microsoft.AppPlatform -ResourceType Spring,apps -Name "test-spring-service" -ApiVersion 2020-07-01 -Method GET - -Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [Vary, System.String[]], [x-ms-request-id, - System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : {"value":[{"properties":{"public":true,"url":"https://test-spring-service-demo.azuremicroservices.io","provisioni - ngState":"Succeeded","activeDeploymentName":"default","fqdn":"test-spring-service.azuremicroservices.io","httpsOn - ly":false,"createdTime":"2022-06-22T02:57:13.272Z","temporaryDisk":{"sizeInGB":5,"mountPath":"/tmp"},"pers - istentDisk":{"sizeInGB":0,"mountPath":"/persistent"}},"type":"Microsoft.AppPlatform/Spring/apps","identity - ":null,"location":"eastus","id":"/subscriptions/$subscriptionId/resourceGroups/test-group/providers/Microsoft.AppPlatform/Spring/test-spring-service/apps/demo","name":"demo"},{"properties":{"publ - ic":false,"provisioningState":"Succeeded","activeDeploymentName":"deploy01","fqdn":"test-spring-service.azuremicr - oservices.io","httpsOnly":false,"createdTime":"2022-06-22T07:46:54.9Z","temporaryDisk":{"sizeInGB":5,"moun - tPath":"/tmp"},"persistentDisk":{"sizeInGB":0,"mountPath":"/persistent"}},"type":"Microsoft.AppPlatform/Sp - ring/apps","identity":null,"location":"eastus","id":"/subscriptions/$subscriptionId/r - esourceGroups/test-group/providers/Microsoft.AppPlatform/Spring/test-spring-service/apps/pwsh01","name":"pwsh0 - 1"}]} - - List apps under spring service "test-spring-service" - - - - - - -------------------------- Example 4 -------------------------- - $subscriptionId = (Get-AzContext).Subscription.ID -Invoke-AzRestMethod -SubscriptionId $subscriptionId -ResourceGroupName "test-group" -ResourceProviderName Microsoft.AppPlatform -ResourceType Spring -Name "test-spring-service","demo" -ApiVersion 2020-07-01 -Method GET - -Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [Vary, System.String[]], [x-ms-request-id, - System.String[]]…} -Version : 1.1 -StatusCode : 200 -Method : GET -Content : {"properties":{"public":true,"url":"https://test-spring-service-demo.azuremicroservices.io","provisioningState":" - Succeeded","activeDeploymentName":"default","fqdn":"test-spring-service.azuremicroservices.io","httpsOnly":false, - "createdTime":"2022-06-22T02:57:13.272Z","temporaryDisk":{"sizeInGB":5,"mountPath":"/tmp"},"persistentDisk - ":{"sizeInGB":0,"mountPath":"/persistent"}},"type":"Microsoft.AppPlatform/Spring/apps","identity":null,"lo - cation":"eastus","id":"/subscriptions/$subscriptionId/resourceGroups/test-group/pr - oviders/Microsoft.AppPlatform/Spring/test-spring-service/apps/demo","name":"demo"} - - Get app "demo" under Spring cloud service "test-spring-service" - - - - - - -------------------------- Example 5 -------------------------- - # Replace *** with real values -$payload = @{principalId="***"; resourceId="***"; appRoleId="***"} | ConvertTo-Json -Depth 3 -Invoke-AzRestMethod -Method POST -Uri https://graph.microsoft.com/v1.0/servicePrincipals/***/appRoleAssignedTo -Payload $payload - - Call Microsoft Graph API to assign App Role by constructing a hashtable, converting to a JSON string, and passing the payload to `Invoke-AzRestMethod`. - - - - - - -------------------------- Example 5 -------------------------- - # This example demonstrates creating or updating a resource with a long-running PUT request. -Invoke-AzRestMethod -Method PUT -Uri "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/managedHSMs/{hsm-name}?api-version=2023-07-01" ` - -Payload (@{ - location = "eastus"; - properties = @{ - softDeleteRetentionDays = 7; - tenantId = "{tenant-id}"; - initialAdminObjectIds = @("{admin-object-id}") - }; - sku = @{ - name = "Standard_B1"; - family = "B" - } - } | ConvertTo-Json -Depth 10) ` - -WaitForCompletion - -StatusCode : 200 -Content : { - "sku": { - "family": "B", - "name": "Standard_B1" - }, - "id": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/managedHSMs/{hsm-name}", - "name": "{hsm-name}", - "type": "Microsoft.KeyVault/managedHSMs", - "location": "{region}", - "tags": {}, - "systemData": { - "createdBy": "{user-email}", - "createdByType": "User", - "createdAt": "2024-10-29T05:05:49.229Z", - "lastModifiedBy": "{user-email}", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-10-29T05:05:49.229Z" - }, - "properties": { - "tenantId": "{tenant-id}", - "hsmUri": "https://{hsm-name}.managedhsm.azure.net/", - "initialAdminObjectIds": [ - "{admin-object-id}" - ], - "enableSoftDelete": true, - "softDeleteRetentionInDays": 90, - "enablePurgeProtection": false, - "provisioningState": "Succeeded", - "statusMessage": "The Managed HSM is provisioned and ready to use.", - "networkAcls": { - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], - "virtualNetworkRules": [] - }, - "publicNetworkAccess": "Enabled", - "regions": [], - "securityDomainProperties": { - "activationStatus": "NotActivated", - "activationStatusMessage": "Your HSM has been provisioned, but cannot be used for cryptographic operations until it is activated. To activate the HSM, download the security domain." - } - } - } -Headers : { - "Cache-Control": "no-cache", - "Pragma": "no-cache", - "x-ms-client-request-id": "{client-request-id}", - "x-ms-keyvault-service-version": "1.5.1361.0", - "x-ms-request-id": "{request-id}", - "x-ms-ratelimit-remaining-subscription-reads": "249", - "x-ms-ratelimit-remaining-subscription-global-reads": "3749", - "x-ms-correlation-request-id": "{correlation-request-id}", - "x-ms-routing-request-id": "{routing-request-id}", - "Strict-Transport-Security": "max-age=31536000; includeSubDomains", - "Date": "Tue, 29 Oct 2024 05:18:44 GMT" - } -Method : GET -RequestUri : https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/managedHSMs/{hsm-name}?api-version=2023-07-01 -Version : 1.1 - - Sends a long-running PUT request to create or update a Managed HSM resource in Azure, polling until completion if the operation requires it. This example uses placeholders ({subscription-id}, {resource-group}, {hsm-name}, {tenant-id}, and {admin-object-id}) that the user should replace with their specific values. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/invoke-azrestmethod - - - - - - Open-AzSurveyLink - Open - AzSurveyLink - - Open survey link in default browser. - - - - Open survey link in default browser. - - - - Open-AzSurveyLink - - - - - - - None - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Open-AzSurveyLink - -Opening the default browser to https://aka.ms/azpssurvey?Q_CHL=INTERCEPT - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/open-azsurveylink - - - - - - Register-AzModule - Register - AzModule - - FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets - - - - FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets - - - - Register-AzModule - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Register-AzModule - - Used Internally by AutoRest-generated cmdlets - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/register-azmodule - - - - - - Remove-AzContext - Remove - AzContext - - Remove a context from the set of available contexts - - - - Remove an azure context from the set of contexts - - - - Remove-AzContext - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove context even if it is the default - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - PassThru - - Return the removed context - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzContext - - Name - - The name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove context even if it is the default - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return the removed context - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Remove context even if it is the default - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - Name - - The name of the context - - System.String - - System.String - - - None - - - PassThru - - Return the removed context - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-AzContext -Name Default - - Remove the context named default - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/remove-azcontext - - - - - - Remove-AzEnvironment - Remove - AzEnvironment - - Removes endpoints and metadata for connecting to a given Azure instance. - - - - The Remove-AzEnvironment cmdlet removes endpoints and metadata information for connecting to a given Azure instance. - - - - Remove-AzEnvironment - - Name - - Specifies the name of the environment to remove. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the environment to remove. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ----- Example 1: Creating and removing a test environment ----- - Add-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint TestADEndpoint ` - -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` - -ResourceManagerEndpoint TestRMEndpoint ` - -GalleryEndpoint TestGalleryEndpoint ` - -GraphEndpoint TestGraphEndpoint - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - -Remove-AzEnvironment -Name TestEnvironment - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - - This example shows how to create an environment using Add-AzEnvironment, and then how to delete the environment using Remove-AzEnvironment. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/remove-azenvironment - - - Add-AzEnvironment - - - - Get-AzEnvironment - - - - Set-AzEnvironment - - - - - - - Rename-AzContext - Rename - AzContext - - Rename an Azure context. By default contexts are named by user account and subscription. - - - - Rename an Azure context. By default contexts are named by user account and subscription. - - - - Rename-AzContext - - TargetName - - The new name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Rename the context even if the target context already exists - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - PassThru - - Return the renamed context. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzContext - - SourceName - - The name of the context - - System.String - - System.String - - - None - - - TargetName - - The new name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Rename the context even if the target context already exists - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return the renamed context. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Rename the context even if the target context already exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - PassThru - - Return the renamed context. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - SourceName - - The name of the context - - System.String - - System.String - - - None - - - TargetName - - The new name of the context - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - ------ Example 1: Rename a context using named parameters ------ - Rename-AzContext -SourceName "[user1@contoso.org; 12345-6789-2345-3567890]" -TargetName "Work" - - Rename the context for 'user1@contoso.org' with subscription '12345-6789-2345-3567890' to 'Work'. After this command, you will be able to target the context using 'Select-AzContext Work'. Note that you can tab through the values for 'SourceName' using tab completion. - - - - - - --- Example 2: Rename a context using positional parameters --- - Rename-AzContext "My context" "Work" - - Rename the context named "My context" to "Work". After this command, you will be able to target the context using Select-AzContext Work - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/rename-azcontext - - - - - - Resolve-AzError - Resolve - AzError - - Display detailed information about PowerShell errors, with extended details for Azure PowerShell errors. - - - - Resolves and displays detailed information about errors in the current PowerShell session, including where the error occurred in script, stack trace, and all inner and aggregate exceptions. For Azure PowerShell errors provides additional detail in debugging service issues, including complete detail about the request and server response that caused the error. - - - - Resolve-AzError - - Error - - One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. - - System.Management.Automation.ErrorRecord[] - - System.Management.Automation.ErrorRecord[] - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Resolve-AzError - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Last - - Resolve only the last error that occurred in the session. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Error - - One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. - - System.Management.Automation.ErrorRecord[] - - System.Management.Automation.ErrorRecord[] - - - None - - - Last - - Resolve only the last error that occurred in the session. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Management.Automation.ErrorRecord[] - - - - - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord - - - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord - - - - - - - - Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord - - - - - - - - - - - - - - -------------- Example 1: Resolve the Last Error -------------- - Resolve-AzError -Last - -HistoryId: 3 - - -Message : Run Connect-AzAccount to login. -StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in AzureRmCmdlet.cs:line 85 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in AzureRmCmdlet.cs:line 269 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() inAzurePSCmdlet.cs:line 299 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in AzureRmCmdlet.cs:line 320 - at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in GetAzureRMSubscription.cs:line 49 - at System.Management.Automation.Cmdlet.DoBeginProcessing() - at System.Management.Automation.CommandProcessorBase.DoBegin() -Exception : System.Management.Automation.PSInvalidOperationException -InvocationInfo : {Get-AzSubscription} -Line : Get-AzSubscription -Position : At line:1 char:1 - + Get-AzSubscription - + ~~~~~~~~~~~~~~~~~~~~~~~ -HistoryId : 3 - - Get details of the last error. - - - - - - --------- Example 2: Resolve all Errors in the Session --------- - Resolve-AzError - -HistoryId: 8 - - -RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d -Message : Resource group 'contoso' could not be found. -ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. - (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) -ServerResponse : {NotFound} -RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co - ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} -InvocationInfo : {Get-AzStorageAccount} -Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso -Position : At line:1 char:1 - + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso - + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync - >d__8.MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. - MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc - ountsOperations operations, String resourceGroupName, String accountName) - at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ - zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto - rageAccount.cs:line 70 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in - C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 -HistoryId : 8 - - - HistoryId: 5 - - -Message : Run Connect-AzAccount to login. -StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in C:\zd\azur - e-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 85 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in - C:\zd\azure-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:lin - e 269 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() in - C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 299 - at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in C:\zd\azure-p - owershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 320 - at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in C:\zd\azure- - powershell\src\ResourceManager\Profile\Commands.Profile\Subscription\GetAzureRMSubscription.cs:line 49 - at System.Management.Automation.Cmdlet.DoBeginProcessing() - at System.Management.Automation.CommandProcessorBase.DoBegin() -Exception : System.Management.Automation.PSInvalidOperationException -InvocationInfo : {Get-AzSubscription} -Line : Get-AzSubscription -Position : At line:1 char:1 - + Get-AzSubscription - + ~~~~~~~~~~~~~~~~~~~~~~~ -HistoryId : 5 - - Get details of all errors that have occurred in the current session. - - - - - - ------------- Example 3: Resolve a Specific Error ------------- - Resolve-AzError $Error[0] - -HistoryId: 8 - - -RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d -Message : Resource group 'contoso' could not be found. -ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. - (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) -ServerResponse : {NotFound} -RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co - ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} -InvocationInfo : {Get-AzStorageAccount} -Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso -Position : At line:1 char:1 - + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso - + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync - >d__8.MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. - MoveNext() - --- End of stack trace from previous location where exception was thrown --- - at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() - at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) - at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc - ountsOperations operations, String resourceGroupName, String accountName) - at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ - zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto - rageAccount.cs:line 70 - at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in - C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 -HistoryId : 8 - - Get details of the specified error. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/resolve-azerror - - - - - - Save-AzContext - Save - AzContext - - Saves the current authentication information for use in other PowerShell sessions. - - - - The Save-AzContext cmdlet saves the current authentication information for use in other PowerShell sessions. - - - - Save-AzContext - - Profile - - Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - Path - - Specifies the path of the file to which to save authentication information. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - WithCredential - - Export the credentials to the file - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of the file to which to save authentication information. - - System.String - - System.String - - - None - - - Profile - - Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - None - - - WithCredential - - Export the credentials to the file - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile - - - - - - - - - - - - - - ------- Example 1: Saving the current session's context ------- - Connect-AzAccount -Save-AzContext -Path C:\test.json - - This example saves the current session's Azure context to the JSON file provided. - - - - - - -------------- Example 2: Saving a given context -------------- - Save-AzContext -Profile (Connect-AzAccount) -Path C:\test.json - - This example saves the Azure context that is passed through to the cmdlet to the JSON file provided. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/save-azcontext - - - - - - Select-AzContext - Select - AzContext - - Select a subscription and account to target in Azure PowerShell cmdlets - - - - Select a subscription to target (or account or tenant) in Azure PowerShell cmdlets. After this cmdlet, future cmdlets will target the selected context. - - - - Select-AzContext - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Select-AzContext - - Name - - The name of the context - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, tenant and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A context object, normally passed through the pipeline. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - Name - - The name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - -------------- Example 1: Target a named context -------------- - Select-AzContext "Work" - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... - - Target future Azure PowerShell cmdlets at the account, tenant, and subscription in the 'Work' context. - - - - - - -------------------------- Example 2 -------------------------- - Select-AzContext -Name TestEnvironment -Scope Process - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/select-azcontext - - - - - - Send-Feedback - Send - Feedback - - Sends feedback to the Azure PowerShell team via a set of guided prompts. - - - - The Send-Feedback cmdlet sends feedback to the Azure PowerShell team. - - - - Send-Feedback - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1: -------------------------- - Send-Feedback - -With zero (0) being the least and ten (10) being the most, how likely are you to recommend Azure PowerShell to a friend or colleague? - -10 - -What does Azure PowerShell do well? - -Response. - -Upon what could Azure PowerShell improve? - -Response. - -Please enter your email if you are interested in providing follow up information: - -your@email.com - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/send-feedback - - - - - - Set-AzContext - Set - AzContext - - Sets the tenant, subscription, and environment for cmdlets to use in the current session. - - - - The Set-AzContext cmdlet sets authentication information for cmdlets that you run in the current session. The context includes tenant, subscription, and environment information. - - - - Set-AzContext - - Context - - Specifies the context for the current session. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - Subscription - - The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Tenant - - Tenant domain name or ID - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - SubscriptionObject - - A subscription object - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Tenant - - Tenant domain name or ID - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzContext - - TenantObject - - A Tenant Object - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies the context for the current session. - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - None - - - DefaultProfile - - The credentials, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendedProperty - - Additional context properties - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - System.Collections.Generic.IDictionary`2[System.String,System.String] - - - None - - - Force - - Overwrite the existing context with the same name, if any. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the context - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Subscription - - The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. - - System.String - - System.String - - - None - - - SubscriptionObject - - A subscription object - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - None - - - Tenant - - Tenant domain name or ID - - System.String - - System.String - - - None - - - TenantObject - - A Tenant Object - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureTenant - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext - - - - - - - - - - - - - - ----------- Example 1: Set the subscription context ----------- - Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" - -Name Account SubscriptionName Environment TenantId ----- ------- ---------------- ----------- -------- -Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... - - This command sets the context to use the specified subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/set-azcontext - - - Get-AzContext - - - - - - - Set-AzDefault - Set - AzDefault - - Sets a default in the current context - - - - The Set-AzDefault cmdlet adds or changes the defaults in the current context. - - - - Set-AzDefault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Create a new resource group if specified default does not exist - - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Name of the resource group being set as default - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Create a new resource group if specified default does not exist - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Name of the resource group being set as default - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSResourceGroup - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-AzDefault -ResourceGroupName myResourceGroup - -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup -Name : myResourceGroup -Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties -Location : eastus -ManagedBy : -Tags : - - This command sets the default resource group to the resource group specified by the user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/set-azdefault - - - - - - Set-AzEnvironment - Set - AzEnvironment - - Sets properties for an Azure environment. - - - - The Set-AzEnvironment cmdlet sets endpoints and metadata for connecting to an instance of Azure. - - - - Set-AzEnvironment - - Name - - Specifies the name of the environment to modify. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - - System.Management.Automation.SwitchParameter - - - False - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzEnvironment - - Name - - Specifies the name of the environment to modify. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint. - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - - Process - CurrentUser - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ActiveDirectoryEndpoint - - Specifies the base authority for Azure Active Directory authentication. - - System.String - - System.String - - - None - - - ActiveDirectoryServiceEndpointResourceId - - Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. - - System.String - - System.String - - - None - - - AdTenant - - Specifies the default Active Directory tenant. - - System.String - - System.String - - - None - - - ARMEndpoint - - The Azure Resource Manager endpoint. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointResourceId - - The resource identifier of the Azure Analysis Services resource. - - System.String - - System.String - - - None - - - AzureAnalysisServicesEndpointSuffix - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointResourceId - - The The resource identifier of the Azure Attestation service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureAttestationServiceEndpointSuffix - - Dns suffix of Azure Attestation service. - - System.String - - System.String - - - None - - - AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix - - Dns Suffix of Azure Data Lake Analytics job and catalog services - - System.String - - System.String - - - None - - - AzureDataLakeStoreFileSystemEndpointSuffix - - Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net - - System.String - - System.String - - - None - - - AzureKeyVaultDnsSuffix - - Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net - - System.String - - System.String - - - None - - - AzureKeyVaultServiceEndpointResourceId - - Resource identifier of Azure Key Vault data service that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpoint - - The endpoint to use when communicating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureOperationalInsightsEndpointResourceId - - The audience for tokens authenticating with the Azure Log Analytics API. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointResourceId - - The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. - - System.String - - System.String - - - None - - - AzureSynapseAnalyticsEndpointSuffix - - Dns suffix of Azure Synapse Analytics. - - System.String - - System.String - - - None - - - BatchEndpointResourceId - - The resource identifier of the Azure Batch service that is the recipient of the requested token - - System.String - - System.String - - - None - - - ContainerRegistryEndpointSuffix - - Suffix of Azure Container Registry. - - System.String - - System.String - - - None - - - DataLakeAudience - - The audience for tokens authenticating with the AD Data Lake services Endpoint. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAdfsAuthentication - - Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - GalleryEndpoint - - Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. The parameter is to set the value to `GalleryUrl` of `PSAzureEnvironment`. As `GalleryUrl` is removed from ArmMetadata, Azure PowerShell will no longer provide for the value and so it is not recommended to set `GalleryEndpoint` anymore. - - System.String - - System.String - - - None - - - GraphAudience - - The audience for tokens authenticating with the AD Graph Endpoint. - - System.String - - System.String - - - None - - - GraphEndpoint - - Specifies the URL for Graph (Active Directory metadata) requests. - - System.String - - System.String - - - None - - - ManagementPortalUrl - - Specifies the URL for the Management Portal. - - System.String - - System.String - - - None - - - MicrosoftGraphEndpointResourceId - - The resource identifier of Microsoft Graph - - System.String - - System.String - - - None - - - MicrosoftGraphUrl - - Microsoft Graph Url - - System.String - - System.String - - - None - - - Name - - Specifies the name of the environment to modify. - - System.String - - System.String - - - None - - - PublishSettingsFileUrl - - Specifies the URL from which .publishsettings files can be downloaded. - - System.String - - System.String - - - None - - - ResourceManagerEndpoint - - Specifies the URL for Azure Resource Manager requests. - - System.String - - System.String - - - None - - - Scope - - Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - Microsoft.Azure.Commands.Profile.Common.ContextModificationScope - - - None - - - ServiceEndpoint - - Specifies the endpoint for Service Management (RDFE) requests. - - System.String - - System.String - - - None - - - SqlDatabaseDnsSuffix - - Specifies the domain-name suffix for Azure SQL Database servers. - - System.String - - System.String - - - None - - - StorageEndpoint - - Specifies the endpoint for storage (blob, table, queue, and file) access. - - System.String - - System.String - - - None - - - TrafficManagerDnsSuffix - - Specifies the domain-name suffix for Azure Traffic Manager services. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment - - - - - - - - - - - - - - ----- Example 1: Creating and modifying a new environment ----- - Add-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint TestADEndpoint ` - -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` - -ResourceManagerEndpoint TestRMEndpoint ` - -GalleryEndpoint TestGalleryEndpoint ` - -GraphEndpoint TestGraphEndpoint - -Name Resource Manager Url ActiveDirectory Authority ----- -------------------- ------------------------- -TestEnvironment TestRMEndpoint TestADEndpoint/ - -Set-AzEnvironment -Name TestEnvironment ` - -ActiveDirectoryEndpoint NewTestADEndpoint ` - -GraphEndpoint NewTestGraphEndpoint | Format-List - -Name : TestEnvironment -EnableAdfsAuthentication : False -ActiveDirectoryServiceEndpointResourceId : TestADApplicationId -AdTenant : -GalleryUrl : TestGalleryEndpoint -ManagementPortalUrl : -ServiceManagementUrl : -PublishSettingsFileUrl : -ResourceManagerUrl : TestRMEndpoint -SqlDatabaseDnsSuffix : -StorageEndpointSuffix : -ActiveDirectoryAuthority : NewTestADEndpoint -GraphUrl : NewTestGraphEndpoint -GraphEndpointResourceId : -TrafficManagerDnsSuffix : -AzureKeyVaultDnsSuffix : -AzureDataLakeStoreFileSystemEndpointSuffix : -AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : -AzureKeyVaultServiceEndpointResourceId : -BatchEndpointResourceId : -AzureOperationalInsightsEndpoint : -AzureOperationalInsightsEndpointResourceId : -AzureAttestationServiceEndpointSuffix : -AzureAttestationServiceEndpointResourceId : -AzureSynapseAnalyticsEndpointSuffix : -AzureSynapseAnalyticsEndpointResourceId : - - In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/set-azenvironment - - - Add-AzEnvironment - - - - Get-AzEnvironment - - - - Remove-AzEnvironment - - - - - - - Uninstall-AzureRm - Uninstall - AzureRm - - Removes all AzureRm modules from a machine. - - - - Removes all AzureRm modules from a machine. - - - - Uninstall-AzureRm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return list of Modules removed if specified. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return list of Modules removed if specified. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Uninstall-AzureRm - - Running this command will remove all AzureRm modules from the machine for the version of PowerShell in which the cmdlet is run. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/uninstall-azurerm - - - - - - Update-AzConfig - Update - AzConfig - - Updates the configs of Azure PowerShell. - - - - Updates the configs of Azure PowerShell. Depending on which config to update, you may specify the scope where the config is persisted and to which module or cmdlet it applies to. - > [!NOTE] > It is discouraged to update configs in multiple PowerShell processes. Either do it in one process, or make sure the updates are at Process scope (`-Scope Process`) to avoid unexpected side-effects. - - - - Update-AzConfig - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.String - - System.String - - - None - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Boolean - - System.Boolean - - - None - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Boolean - - System.Boolean - - - None - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Boolean - - System.Boolean - - - None - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Boolean - - System.Boolean - - - None - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Boolean - - System.Boolean - - - None - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Boolean - - System.Boolean - - - None - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Boolean - - System.Boolean - - - None - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Boolean - - System.Boolean - - - None - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - - On - Off - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - - None - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - - CurrentUser - Process - Default - Environment - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AppliesTo - - Specifies what part of Azure PowerShell the config applies to. Possible values are: - "Az": the config applies to all modules and cmdlets of Azure PowerShell. - - Module name: the config applies to a certain module of Azure PowerShell. - For example, "Az.Storage". - Cmdlet name: the config applies to a certain cmdlet of Azure PowerShell. For example, "Get-AzKeyVault". If not specified, when getting or clearing configs, it defaults to all the above; when updating, it defaults to "Az". - - System.String - - System.String - - - None - - - CheckForUpgrade - - When enabled, Azure PowerShell will check for updates automatically and display a hint message when an update is available. The default value is true. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSubscriptionForLogin - - Subscription name or GUID. Sets the default context for Azure PowerShell when logging in without specifying a subscription. - - System.String - - System.String - - - None - - - DisableInstanceDiscovery - - Set it to true to disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to true, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. - - System.Boolean - - System.Boolean - - - None - - - DisplayBreakingChangeWarning - - Controls if warning messages for breaking changes are displayed or suppressed. When enabled, a breaking change warning is displayed when executing cmdlets with breaking changes in a future release. - - System.Boolean - - System.Boolean - - - None - - - DisplayRegionIdentified - - When enabled, Azure PowerShell displays recommendations on regions which may reduce your costs. - - System.Boolean - - System.Boolean - - - None - - - DisplaySecretsWarning - - When enabled, a warning message will be displayed when the cmdlet output contains secrets. Learn more at https://go.microsoft.com/fwlink/?linkid=2258844 - - System.Boolean - - System.Boolean - - - None - - - DisplaySurveyMessage - - When enabled, you are prompted infrequently to participate in user experience surveys for Azure PowerShell. - - System.Boolean - - System.Boolean - - - None - - - EnableDataCollection - - When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: https://aka.ms/privacy - - System.Boolean - - System.Boolean - - - None - - - EnableErrorRecordsPersistence - - When enabled, error records will be written to ~/.Azure/ErrorRecords. - - System.Boolean - - System.Boolean - - - None - - - EnableLoginByWam - - [Preview] When enabled, Web Account Manager (WAM) will be the default interactive login experience. It will fall back to using the browser if the platform does not support WAM. Note that this feature is under preview. Microsoft Account (MSA) is currently not supported. Feel free to reach out to Azure PowerShell team if you have any feedbacks: https://aka.ms/azpsissue - - System.Boolean - - System.Boolean - - - None - - - LoginExperienceV2 - - Only active when authenticating interactively, allows the user to choose the subscription and tenant used in subsequent commands. Possible values ad 'On' (Default) and 'Off'. 'On' requires user's input. 'Off' will use the first tenant and subscription returned by Azure, can change without notice and lead to command execution in an unwanted context (not recommended). - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - Microsoft.Azure.Commands.Common.Authentication.Config.Models.LoginExperienceConfig - - - None - - - Scope - - Determines the scope of config changes, for example, whether changes apply only to the current process, or to all sessions started by this user. By default it is CurrentUser. - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - Microsoft.Azure.PowerShell.Common.Config.ConfigScope - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.Boolean - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Profile.Models.PSConfig - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Update-AzConfig -DefaultSubscriptionForLogin "Name of subscription" - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -DefaultSubscriptionForLogin Name of subscription Az CurrentUser Subscription name or GUID. Sets the default context for Azure PowerShell when lo… - - Sets the "DefaultSubscriptionForLogin" config as "Name of subscription". When `Connect-AzAccount` the specified subscription will be selected as the default subscription. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzConfig -DisplayBreakingChangeWarning $false -AppliesTo "Az.KeyVault" - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -DisplayBreakingChangeWarning False Az.KeyVault CurrentUser Controls if warning messages for breaking changes are displayed or suppressed. When enabled,… - - Sets the "DisplayBreakingChangeWarnings" config as "$false" for "Az.KeyVault" module. This prevents all the warning messages for upcoming breaking changes in Az.KeyVault module from prompting. - - - - - - -------------------------- Example 3 -------------------------- - Update-AzConfig -EnableDataCollection $true - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -EnableDataCollection True Az CurrentUser When enabled, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experi… - - Sets the "EnableDataCollection" config as "$true". This enables sending the telemetry data. Setting this config is equivalent to `Enable-AzDataCollection` and `Disable-AzDataCollection`. - - - - - - -------------------------- Example 4 -------------------------- - Update-AzConfig -DisplaySecretsWarning $true - -Key Value Applies To Scope Help Message ---- ----- ---------- ----- ------------ -DisplaySecretsWarning True Az CurrentUser When enabled, a warning message for secrets redaction will be displ… - - Sets the "DisplaySecretsWarning" config as "$true". This enables the secrets detection during the cmdlet execution and displays a warning message if any secrets are found in the output. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.accounts/update-azconfig - - - - \ No newline at end of file diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.Share.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.Share.dll deleted file mode 100644 index 55185ba74cd7..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.Share.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.dll deleted file mode 100644 index d5609cf9109f..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Common.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Storage.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Storage.dll deleted file mode 100644 index 0363dbdf57d8..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Storage.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Strategies.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Strategies.dll deleted file mode 100644 index ffd2dd62cda8..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Azure.PowerShell.Strategies.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.Azure.dll deleted file mode 100644 index 1d99c7015912..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.Azure.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.dll b/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.dll deleted file mode 100644 index a4fca7488baf..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.Rest.ClientRuntime.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/Microsoft.WindowsAzure.Storage.dll b/Modules/Az.Accounts/4.0.2/Microsoft.WindowsAzure.Storage.dll deleted file mode 100644 index 70c5ed6806c6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/Microsoft.WindowsAzure.Storage.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/PSGetModuleInfo.xml b/Modules/Az.Accounts/4.0.2/PSGetModuleInfo.xml deleted file mode 100644 index e5c37af624ce..000000000000 --- a/Modules/Az.Accounts/4.0.2/PSGetModuleInfo.xml +++ /dev/null @@ -1,204 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.Accounts - 4.0.2 - Module - Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on account credential management, please visit the following: https://learn.microsoft.com/powershell/azure/authenticate-azureps - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-15T06:24:11-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - Accounts - Authentication - Environment - Subscription - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Cmdlet - - - - Disable-AzDataCollection - Disable-AzContextAutosave - Enable-AzDataCollection - Enable-AzContextAutosave - Remove-AzEnvironment - Get-AzEnvironment - Set-AzEnvironment - Add-AzEnvironment - Get-AzSubscription - Connect-AzAccount - Get-AzContext - Set-AzContext - Import-AzContext - Save-AzContext - Get-AzTenant - Send-Feedback - Resolve-AzError - Select-AzContext - Rename-AzContext - Remove-AzContext - Clear-AzContext - Disconnect-AzAccount - Get-AzContextAutosaveSetting - Set-AzDefault - Get-AzDefault - Clear-AzDefault - Register-AzModule - Enable-AzureRmAlias - Disable-AzureRmAlias - Uninstall-AzureRm - Invoke-AzRestMethod - Get-AzAccessToken - Open-AzSurveyLink - Get-AzConfig - Update-AzConfig - Clear-AzConfig - Export-AzConfig - Import-AzConfig - - - - - DscResource - - - - Workflow - - - - Command - - - - Disable-AzDataCollection - Disable-AzContextAutosave - Enable-AzDataCollection - Enable-AzContextAutosave - Remove-AzEnvironment - Get-AzEnvironment - Set-AzEnvironment - Add-AzEnvironment - Get-AzSubscription - Connect-AzAccount - Get-AzContext - Set-AzContext - Import-AzContext - Save-AzContext - Get-AzTenant - Send-Feedback - Resolve-AzError - Select-AzContext - Rename-AzContext - Remove-AzContext - Clear-AzContext - Disconnect-AzAccount - Get-AzContextAutosaveSetting - Set-AzDefault - Get-AzDefault - Clear-AzDefault - Register-AzModule - Enable-AzureRmAlias - Disable-AzureRmAlias - Uninstall-AzureRm - Invoke-AzRestMethod - Get-AzAccessToken - Open-AzSurveyLink - Get-AzConfig - Update-AzConfig - Clear-AzConfig - Export-AzConfig - Import-AzConfig - - - - - - - * Fixed unsigned dll:_x000D__x000A_ - 'System.Buffers.dll'_x000D__x000A_ - 'System.Memory.dll' - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on account credential management, please visit the following: https://learn.microsoft.com/powershell/azure/authenticate-azureps - True - * Fixed unsigned dll:_x000D__x000A_ - 'System.Buffers.dll'_x000D__x000A_ - 'System.Memory.dll' - True - True - 13034220 - 540474261 - 9958477 - 1/15/2025 6:24:11 AM -05:00 - 1/15/2025 6:24:11 AM -05:00 - 1/30/2025 5:40:00 PM -05:00 - Azure ResourceManager ARM Accounts Authentication Environment Subscription PSModule PSEdition_Core PSEdition_Desktop PSCmdlet_Disable-AzDataCollection PSCommand_Disable-AzDataCollection PSCmdlet_Disable-AzContextAutosave PSCommand_Disable-AzContextAutosave PSCmdlet_Enable-AzDataCollection PSCommand_Enable-AzDataCollection PSCmdlet_Enable-AzContextAutosave PSCommand_Enable-AzContextAutosave PSCmdlet_Remove-AzEnvironment PSCommand_Remove-AzEnvironment PSCmdlet_Get-AzEnvironment PSCommand_Get-AzEnvironment PSCmdlet_Set-AzEnvironment PSCommand_Set-AzEnvironment PSCmdlet_Add-AzEnvironment PSCommand_Add-AzEnvironment PSCmdlet_Get-AzSubscription PSCommand_Get-AzSubscription PSCmdlet_Connect-AzAccount PSCommand_Connect-AzAccount PSCmdlet_Get-AzContext PSCommand_Get-AzContext PSCmdlet_Set-AzContext PSCommand_Set-AzContext PSCmdlet_Import-AzContext PSCommand_Import-AzContext PSCmdlet_Save-AzContext PSCommand_Save-AzContext PSCmdlet_Get-AzTenant PSCommand_Get-AzTenant PSCmdlet_Send-Feedback PSCommand_Send-Feedback PSCmdlet_Resolve-AzError PSCommand_Resolve-AzError PSCmdlet_Select-AzContext PSCommand_Select-AzContext PSCmdlet_Rename-AzContext PSCommand_Rename-AzContext PSCmdlet_Remove-AzContext PSCommand_Remove-AzContext PSCmdlet_Clear-AzContext PSCommand_Clear-AzContext PSCmdlet_Disconnect-AzAccount PSCommand_Disconnect-AzAccount PSCmdlet_Get-AzContextAutosaveSetting PSCommand_Get-AzContextAutosaveSetting PSCmdlet_Set-AzDefault PSCommand_Set-AzDefault PSCmdlet_Get-AzDefault PSCommand_Get-AzDefault PSCmdlet_Clear-AzDefault PSCommand_Clear-AzDefault PSCmdlet_Register-AzModule PSCommand_Register-AzModule PSCmdlet_Enable-AzureRmAlias PSCommand_Enable-AzureRmAlias PSCmdlet_Disable-AzureRmAlias PSCommand_Disable-AzureRmAlias PSCmdlet_Uninstall-AzureRm PSCommand_Uninstall-AzureRm PSCmdlet_Invoke-AzRestMethod PSCommand_Invoke-AzRestMethod PSCmdlet_Get-AzAccessToken PSCommand_Get-AzAccessToken PSCmdlet_Open-AzSurveyLink PSCommand_Open-AzSurveyLink PSCmdlet_Get-AzConfig PSCommand_Get-AzConfig PSCmdlet_Update-AzConfig PSCommand_Update-AzConfig PSCmdlet_Clear-AzConfig PSCommand_Clear-AzConfig PSCmdlet_Export-AzConfig PSCommand_Export-AzConfig PSCmdlet_Import-AzConfig PSCommand_Import-AzConfig PSIncludes_Cmdlet - False - 2025-01-30T17:40:00Z - 4.0.2 - Microsoft Corporation - false - Module - Az.Accounts.nuspec|Accounts.format.ps1xml|Az.Accounts.psm1|Microsoft.Azure.PowerShell.AssemblyLoading.dll|Microsoft.Azure.PowerShell.Authenticators.dll|Microsoft.Azure.PowerShell.Clients.KeyVault.dll|Microsoft.Azure.PowerShell.Clients.Storage.Management.dll|Microsoft.Azure.PowerShell.Common.Share.dll|Microsoft.WindowsAzure.Storage.dll|lib\netfx\System.Reflection.DispatchProxy.dll|lib\netfx\System.Xml.ReaderWriter.dll|lib\netstandard2.0\Microsoft.Identity.Client.Broker.dll|lib\netstandard2.0\Microsoft.IdentityModel.Abstractions.dll|lib\netstandard2.0\System.Buffers.dll|lib\netstandard2.0\System.Net.Http.WinHttpHandler.dll|lib\netstandard2.0\System.Security.Principal.Windows.dll|PostImportScripts\LoadAuthenticators.ps1|Accounts.generated.format.ps1xml|FuzzySharp.dll|Microsoft.Azure.PowerShell.Authentication.Abstractions.dll|Microsoft.Azure.PowerShell.Clients.Aks.dll|Microsoft.Azure.PowerShell.Clients.Monitor.dll|Microsoft.Azure.PowerShell.Clients.Websites.dll|Microsoft.Azure.PowerShell.Storage.dll|en-US\about_az.help.txt|lib\netfx\System.Runtime.CompilerServices.Unsafe.dll|lib\netstandard2.0\Azure.Core.dll|lib\netstandard2.0\Microsoft.Identity.Client.dll|lib\netstandard2.0\msalruntime.dll|lib\netstandard2.0\System.ClientModel.dll|lib\netstandard2.0\System.Private.ServiceModel.dll|lib\netstandard2.0\System.ServiceModel.Primitives.dll|StartupScripts\AzError.ps1|Accounts.types.ps1xml|Hyak.Common.dll|Microsoft.Azure.PowerShell.Authentication.dll|Microsoft.Azure.PowerShell.Clients.Authorization.dll|Microsoft.Azure.PowerShell.Clients.Network.dll|Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll|Microsoft.Azure.PowerShell.Strategies.dll|lib\netfx\Newtonsoft.Json.dll|lib\netfx\System.Security.Cryptography.Cng.dll|lib\netstandard2.0\Azure.Identity.Broker.dll|lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll|lib\netstandard2.0\msalruntime_arm64.dll|lib\netstandard2.0\System.Memory.Data.dll|lib\netstandard2.0\System.Security.AccessControl.dll|lib\netstandard2.0\System.Text.Json.dll|StartupScripts\InitializeAssemblyResolver.ps1|Microsoft.ApplicationInsights.dll|Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll|Microsoft.Azure.PowerShell.Clients.Compute.dll|Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll|Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml|Microsoft.Rest.ClientRuntime.Azure.dll|lib\netfx\System.Diagnostics.DiagnosticSource.dll|lib\netfx\System.Security.Cryptography.ProtectedData.dll|lib\netstandard2.0\Azure.Identity.dll|lib\netstandard2.0\Microsoft.Identity.Client.NativeInterop.dll|lib\netstandard2.0\msalruntime_x005F_x86.dll|lib\netstandard2.0\System.Memory.dll|lib\netstandard2.0\System.Security.Permissions.dll|lib\netstandard2.0\System.Threading.Tasks.Extensions.dll|StartupScripts\InitializePSStyle.ps1|Az.Accounts.psd1|Microsoft.Azure.Common.dll|Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll|Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll|Microsoft.Azure.PowerShell.Clients.ResourceManager.dll|Microsoft.Azure.PowerShell.Common.dll|Microsoft.Rest.ClientRuntime.dll|lib\netfx\System.Numerics.Vectors.dll|lib\netfx\System.Text.Encodings.Web.dll|lib\netstandard2.0\Microsoft.Bcl.AsyncInterfaces.dll|.signature.p7s - 17a2feff-488b-47f9-8729-e2cec094624c - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.Accounts\4.0.2 -
-
-
diff --git a/Modules/Az.Accounts/4.0.2/StartupScripts/AzError.ps1 b/Modules/Az.Accounts/4.0.2/StartupScripts/AzError.ps1 deleted file mode 100644 index 234818bc266a..000000000000 --- a/Modules/Az.Accounts/4.0.2/StartupScripts/AzError.ps1 +++ /dev/null @@ -1,281 +0,0 @@ -function Write-InstallationCheckToFile -{ - Param($installationchecks) - if (Get-Module AzureRM.Profile -ListAvailable -ErrorAction Ignore) - { - Write-Warning ("Both Az and AzureRM modules were detected on this machine. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide") - } - - $installationchecks.Add("AzSideBySideCheck","true") - try - { - if (Test-Path $pathToInstallationChecks -ErrorAction Ignore) - { - Remove-Item -Path $pathToInstallationChecks -ErrorAction Stop - } - - $pathToInstallDir = Split-Path -Path $pathToInstallationChecks -Parent -ErrorAction Stop - if (Test-Path $pathToInstallDir -ErrorAction Ignore) - { - New-Item -Path $pathToInstallationChecks -ErrorAction Stop -ItemType File -Value ($installationchecks | ConvertTo-Json -ErrorAction Stop) - } - } - catch - { - Write-Verbose "Installation checks failed to write to file." - } -} - -if (!($env:SkipAzInstallationChecks -eq "true")) -{ - $pathToInstallationChecks = Join-Path (Join-Path $HOME ".Azure") "AzInstallationChecks.json" - $installationchecks = @{} - if (!(Test-Path $pathToInstallationChecks -ErrorAction Ignore)) - { - Write-InstallationCheckToFile $installationchecks - } - else - { - try - { - ((Get-Content $pathToInstallationChecks -ErrorAction Stop) | ConvertFrom-Json -ErrorAction Stop).PSObject.Properties | Foreach { $installationchecks[$_.Name] = $_.Value } - } - catch - { - Write-InstallationCheckToFile $installationchecks - } - - if (!$installationchecks.ContainsKey("AzSideBySideCheck")) - { - Write-InstallationCheckToFile $installationchecks - } - } -} - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -Update-TypeData -AppendPath (Join-Path (Get-Item $PSScriptRoot).Parent.FullName Accounts.types.ps1xml) -ErrorAction Ignore -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT3s8rOGw0kP8l -# AbYXJ7G9hr2fOKBRtW5xO6fWVEOZvqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKR+w/DaLVp8ra2PXQQVXZI6 -# DyW6fyW+fzmibTR/vTxzMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIkOneLbKAFEt6rSpWu0CknY3JQR45gu/3lZ8V7eK0/Y8ndM1yVDFcd2e -# rGcJMn2Wqt2M7u3V69hgPa73PkAmnNdiJDgFdbRmk2zKtuU9xXrmTahZsvuhYNWq -# BT8bmoH3N3YA1BmKXBbmWprdVV+dnplFNGwyoO0FYnMxN1WadM7n/M95gVduHSx5 -# YzKrmwAY/umW3GLxG9lcBoq7R6ZTfrDj56ubhNqb23V5icOvmz14QBmnBeF9aLVu -# vDtZ3SOxW9OpTc86leDahzD9reKp8IOB62xImCb0TLe0VjFOvrnFsR96tVXRwfFj -# DuA5NaICutwvLqJCOdcvOoCJD9p6K6GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAiWcBQwhSp7tm0pyvq5/Kxi3N0cs5qdUxirFgR4T5ylgIGZ1reY9Z0 -# GBMyMDI1MDExNTA1MDYwNi4zOTVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OEQwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfPFCkOuA8wdMQABAAAB8zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ2 -# MDJaFw0yNTAzMDUxODQ2MDJaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OEQwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQD+n6ba4SuB9iSO5WMhbngqYAb+z3IfzNpZIWS/sgfX -# hlLYmGnsUtrGX3OVcg+8krJdixuNUMO7ZAOqCZsXUjOz8zcn1aUD5D2r2PhzVKjH -# tivWGgGj4x5wqWe1Qov3vMz8WHsKsfadIlWjfBMnVKVomOybQ7+2jc4afzj2XJQQ -# SmE9jQRoBogDwmqZakeYnIx0EmOuucPr674T6/YaTPiIYlGf+XV2u6oQHAkMG56x -# YPQikitQjjNWHADfBqbBEaqppastxpRNc4id2S1xVQxcQGXjnAgeeVbbPbAoELhb -# w+z3VetRwuEFJRzT6hbWEgvz9LMYPSbioHL8w+ZiWo3xuw3R7fJsqe7pqsnjwvni -# P7sfE1utfi7k0NQZMpviOs//239H6eA6IOVtF8w66ipE71EYrcSNrOGlTm5uqq+s -# yO1udZOeKM0xY728NcGDFqnjuFPbEEm6+etZKftU9jxLCSzqXOVOzdqA8O5Xa3E4 -# 1j3s7MlTF4Q7BYrQmbpxqhTvfuIlYwI2AzeO3OivcezJwBj2FQgTiVHacvMQDgSA -# 7E5vytak0+MLBm0AcW4IPer8A4gOGD9oSprmyAu1J6wFkBrf2Sjn+ieNq6Fx0tWj -# 8Ipg3uQvcug37jSadF6q1rUEaoPIajZCGVk+o5wn6rt+cwdJ39REU43aWCwn0C+X -# xwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFMNkFfalEVEMjA3ApoUx9qDrDQokMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDfxByP/NH+79vc3liO4c7nXM/UKFcAm5w6 -# 1FxRxPxCXRXliNjZ7sDqNP0DzUTBU9tS5DqkqRSiIV15j7q8e6elg8/cD3bv0sW4 -# Go9AML4lhA5MBg3wzKdihfJ0E/HIqcHX11mwtbpTiC2sgAUh7+OZnb9TwJE7pbEB -# PJQUxxuCiS5/r0s2QVipBmi/8MEW2eIi4mJ+vHI5DCaAGooT4A15/7oNj9zyzRAB -# TUICNNrS19KfryEN5dh5kqOG4Qgca9w6L7CL+SuuTZi0SZ8Zq65iK2hQ8IMAOVxe -# wCpD4lZL6NDsVNSwBNXOUlsxOAO3G0wNT+cBug/HD43B7E2odVfs6H2EYCZxUS1r -# gReGd2uqQxgQ2wrMuTb5ykO+qd+4nhaf/9SN3getomtQn5IzhfCkraT1KnZF8TI3 -# ye1Z3pner0Cn/p15H7wNwDkBAiZ+2iz9NUEeYLfMGm9vErDVBDRMjGsE/HqqY7QT -# STtDvU7+zZwRPGjiYYUFXT+VgkfdHiFpKw42Xsm0MfL5aOa31FyCM17/pPTIKTRi -# KsDF370SwIwZAjVziD/9QhEFBu9pojFULOZvzuL5iSEJIcqopVAwdbNdroZi2HN8 -# nfDjzJa8CMTkQeSfQsQpKr83OhBmE3MF2sz8gqe3loc05DW8JNvZ328Jps3LJCAL -# t0rQPJYnOzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBu -# +gYs2LRha5pFO79g3LkfwKRnKKCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6zGFDTAiGA8yMDI1MDExNTAwNTEy -# NVoYDzIwMjUwMTE2MDA1MTI1WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrMYUN -# AgEAMAoCAQACAgrMAgH/MAcCAQACAhMJMAoCBQDrMtaNAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAAZjU3anvEfVORtCvkiaK66qTBCJqkISq3FowLVK6y+h -# QSso9H+Oycd5GS0IhpbNzbDu7ByROhQ/wsz7q8QuEUUS/mzhQQYNUEIwQy9riQao -# YKCraxfy9D4rKjHrDRYNmgsarMXvBw5nBMPcDYgncK902xs2zAvIgLv98wG3YyBb -# XwUEZ4agPJ462fd48Y1Reu10WtkI2OhFWPAVCjM+n8SVdC0C5AlLX+9qzxzId1s7 -# /7ZQn1myOynmO04kICpcJ0pnoGMhSrWe/hPKQby67pptEdzrdVyzmOrUMKA32+AE -# a3PDK5/LbJo0tvigQ7FjGczdh4iKGuGQQxIuRSZi6kwxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfPFCkOuA8wdMQABAAAB -# 8zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCBzbhj87V4/3v2CtNVbcDzOY/3P1VN5A79ASD464Cxp -# XjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIBi82TSLtuG4Vkp8wBmJk/T+ -# RAh841sG/aDOwxg6O2LoMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHzxQpDrgPMHTEAAQAAAfMwIgQg7FOb0fJffGni3GNh+rtRxX3o -# mNES5vUb6EkxuC86BIkwDQYJKoZIhvcNAQELBQAEggIAYym812YaSD/sdVUrTcv7 -# bvYv+h29d3ZCjOm5u5V0xe8bfjcO1ri6wV3rsMOTlQwAyuf4o8HDxt2VTD2BwRUy -# Rbe20O3wi3GcRdJKN8Htjwd8ZfsQ3jLyfVRmLWQOPvl2oNNKvbAkS+9Qt5eoIkG7 -# DO1wDyVWDQLLVBqDoO8grw/RtqaHoBSWXUB9QAPYRhk90kcUZ1qaFhuQNbv3oWJN -# 4gAJNNHpBkMVUjcYAk8m7nLR412caM2TRPs2M5JmYFILI7QMW6qGjyk6u9/JgFdk -# 3nwqfGSuL1/Y3motaZQ+WplENhLKlrvp11mIwQoiaKjJCC5w0F6Bq+nfHwMq1x72 -# 8GU40A98UrzWyaogrI+K4wAwzC1oHIusSmWOtPf05ZvoKoJ0cD5/DUgtgAqyFDOA -# yP/kSMFu1I0d1aHxmvKYoQ+eTrv5pims4cq0VP1cGwqrTLvK1kWTHKHOe4oovoIX -# aarejH8c/6FsxvXm6EBA/bv2R/OF5rEY+pH5Ld3870waI0TiDbjD2lR1fYBEhChl -# DF4IahrmWA0ZbhrWM1HcnzCvsgUMvHg3GStGBzy0BE/kpblaVTf8ZOFJswLXxX9N -# g6Kdabo2o1WCKgP22nqDQm9fGLMThorgS96u5/xaLNkeCbBtH0yyG2pVklzxcM5R -# oSseM1VcqxmxwEIlGLWes0Y= -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/StartupScripts/InitializePSStyle.ps1 b/Modules/Az.Accounts/4.0.2/StartupScripts/InitializePSStyle.ps1 deleted file mode 100644 index 050c5e21c07e..000000000000 --- a/Modules/Az.Accounts/4.0.2/StartupScripts/InitializePSStyle.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -try{ - Write-Debug "Initializing PSStyle." - [Microsoft.WindowsAzure.Commands.Common.PSStyle]::Initialize($Host) -} -catch{ - Write-Warning $_ -} -# SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAicDUGs8kLtLeW -# rm0RVJ2esSWZX51RAgjtxZX5o7KQQ6CCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHAO -# kjEFx7XGawuy8pH5X1Wjm+ijTb94E2lDPwWd119jMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAHyJ8LUmMG+GkeJrz1d17ksKcnwl5La5OQnOQ -# SaI8V4Z6AaahfkuIHAQ18pHGpo7sjzECOM9givdD2g8xjIBn8nFkPYrraCqxtxJk -# gJt6FHmKkzb4F06w76zox9pNOSB/IGTD7N72T1Cyn7q1cuXHTuNea5pzn9EQcK9H -# ExCJ+mrCdCJL6RVHvEQM1pI6qNK9AmHM4EVBPn5OcrAfhfXK5B9SCw7D9XqjM+1u -# 3nxJ+dndloJ3GNLyQzH9zJxqAK6zGz5avuUjJFvwBWY3hNelS18c7sQ5oFkgMSRg -# lljYHkf38Lk1RlQAM7AQh2pzEllRV4vkz3gsyT/VeF9rvvRne6GCF5cwgheTBgor -# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCrs9UIVOa7lNZCGpik88VObDpWrqSGcGix -# Dd52oGglgwIGZ1sNnBnsGBMyMDI1MDExNTA1MDYwNy45ODJaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046MzMwMy0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAebZQp7qAPh94QAB -# AAAB5jANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1MTVaFw0yNTAzMDUxODQ1MTVaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9vph84tgluEzm/wpNKlAj -# cElGzflvKADZ1D+2d/ieYYEtF2HKMrKGFDOLpLWWG5DEyiKblYKrE2nt540OGu35 -# Zx0gXJBE0zWanZEAjCjt4eGBi+uakZsk70zHTQHHyfP+B3m2BSSNFPhgsVIPp6vo -# /9t6OeNezIwX5E5+VwEG37nZgEexQF2fQZYbxQ1AauqDvRdXsSpK1dh1UBt9EaMs -# zuucaR5nMwQN6sDjG99FzdK9Atzbn4SmlsoLUtRAh/768sKd0Y1hMmKVHwIX8/4J -# uURUBRZ0JWu0NYQBp8khku18Q8CAQ500tFB7VH3pD8zoA4lcA7JkxTGoPKrufm+l -# RZAA4iMgbcLZ2P/xSdnKFxU8vL31RoNlZJiGL5MqTXvvyBLz+MRP4En9Nye1N8x/ -# lJD1stdNo5wJG+mgXsE/zfzg2GaVqQczFHg0Nl8bpIqnNFUReQRq3C1jVYMCSceg -# NzHeYtw5OmZ/7eVnRmjXlCsLvdsxOzc1YVn6nZLkQD5y31HYrB9iIHuswhaMv2hJ -# NNjVndkpWy934PIZuWTMk360kjXPFwl2Wv1Tzm9tOrCq8+l408KIL6J+efoGNkR8 -# YB3M+u1tYeVDO/TcObGHxaGFB6QZxAUpnfB5N/MmBNxMOqzG1N8QiwW8gtjjMJiF -# Bf6iYYrCjtRwF7IPdQLFtQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFOUEMXntN54+ -# 11ZM+Qu7Q5rg3Fc9MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBhbuogTapRsuwS -# kaFMQ6dyu8ZCYUpWQ8iIrbi40tU2hK6pHgu0hj0z/9zFRRx5DfhukjvbjA/dS5VY -# fxz1EIbPlt897MJ2sBGO2YLYwYelfJpDwbB0XS9Zkrqpzq6X/lmDQDn3G5vcYpYQ -# CJ55LLvyFlJ195AVo4Wy8UX5p7g9W3MgNHQMpM+EV64+cszj4Ho5aQmeKGtKy7w7 -# 2eRY/vWDuptrvzruFNmKCIt12UcA5BOsXp1Ptkjx2yRsCj77DSml0zVYjqW/ISWk -# rGjyeVJ+khzctxaLkklVwCxigokD6fkWby0hCEKTOTPMzhugPIAcxcHsR2sx01YR -# a9pH2zvddsuBEfSFG6Cj0QSvEZ/M9mJ+h4miaQSR7AEbVGDbyRKkYn80S+3AmRlh -# 3ZOe+BFqJ57OXdeIDSHbvHzJ7oTqG896l3eUhPsZg69fNgxTxlvRNmRE/+61Yj7Z -# 1uB0XYQP60rsMLdTlVYEyZUl5MLTL5LvqFozZlS2Xoji4BEP6ddVTzmHJ4odOZMW -# TTeQ0IwnWG98vWv/roPegCr1G61FVrdXLE3AXIft4ZN4ZkDTnoAhPw7DZNPRlSW4 -# TbVj/Lw0XvnLYNwMUA9ouY/wx9teTaJ8vTkbgYyaOYKFz6rNRXZ4af6e3IXwMCff -# CaspKUXC72YMu5W8L/zyTxsNUEgBbTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMzMDMtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDiWNBeFJ9jvaErN64D1G86eL0mu6CBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6zG0SzAi -# GA8yMDI1MDExNTA0MTI1OVoYDzIwMjUwMTE2MDQxMjU5WjB3MD0GCisGAQQBhFkK -# BAExLzAtMAoCBQDrMbRLAgEAMAoCAQACAhsGAgH/MAcCAQACAhJxMAoCBQDrMwXL -# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh -# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACYE/sS9Ti6hCoUlfEp1jxS+ -# AW1z2g0Lf3HL6XlE5SDWxvK4Is6pDp3dWzHRIuIVj8EQaY+LynNCM3ahzMe6dHdy -# gnYCsdKr0EH+OB0CEVaHaWEwqJiD+8cEgbFsJnffka5tmQl1k3AJEaGe4b1GZmiA -# QNeWFo5OiKG2UjTohpVURH0zbH83CLFOXjC8vWQGrZG9gB5RT6YWbbOmWAFCOPB4 -# To74HMzknMf/Ino2wr0mQJ/Nk+k72uZQzVN4KegGVZl5rCUcm9UBJ0EU+C7mp1xo -# leEPQh3q0eFjT4oElc3uuduo8PkPaM07qtsRDR58Yr7u9g3EHuidVYq9bmjU/pkx -# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv -# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 -# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA -# AebZQp7qAPh94QABAAAB5jANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD -# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCBBjhM2q7E213WwtC/+lDyn -# XbXGdG00SUp0v8SJg6GKUzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM+7 -# o4aoHrMJaG8gnLO1q16hIYcRnoy6FnOCbnSD0sZZMIGYMIGApH4wfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHm2UKe6gD4feEAAQAAAeYwIgQg7zn+ -# t1B0qSC0Bw0dakeHDJmV6DW+NmnpWc6kQvyYfmwwDQYJKoZIhvcNAQELBQAEggIA -# hM5vdmR7J4I9cOE51Qpmc9nQTWniChX6ZbJ2jKnfOyr7sDde9LEJZ6Og6qaMvJ9P -# xZo3ILpdSjGtiMjBQv5YHUvB+XqqXUd12VJMExzH8+ddbQ2m3+9nyNsT3tqx/NF5 -# onAwJjUmLjvstpNgQlodVfpTPFdCZomz/o4aFyf9AwtUoD0E1vnFydU5XZGNZz4m -# 8jK9NdvUG79GGYFomsfpPMPPq2zI+hqnDlVSRpjO2IRrW/AeeqJv/wdCVAhMMub2 -# HsfYjaw0VKy+4qcc2WsqSj2zEc1CN1pnPpBkSWIBpXQFAEhp+hAqAI9n6A+iXxWb -# YL48vrBluSYYAmGX1XXcB4n17qbU3IHGEGCxBaAvOGujCkBjgTepzVKiqSCjzM5T -# H/uE8C2e9pI0s63ujp2I4NXziPx/BvlNzGSbz0Tra5Zr5YDC7aEB8vCG12e6Ge6/ -# J/9X6mFWeXBx9CwvlVPeaOb4YOm/8G6xM2z0J48wUjfcAGRqa5l0s1aaQy9TYxOl -# jbcLRSXdE8ihX46XLbB0w7iXs+KbAXx9jp9L6g7QFuJWLemb0CCgXt2XEE327ZBW -# Qj0D22ZBGmZ5f0sNkttQt+VwXjj5mAJwh1lcY+Wzp+A3H65sS7UrW9eR8+JlxhUs -# d4KuCdsT1cpFFINgBMxqUTdwlsgoG6QmWZm7kUbc9YA= -# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/en-US/about_az.help.txt b/Modules/Az.Accounts/4.0.2/en-US/about_az.help.txt deleted file mode 100644 index fb4a5e9becd1..000000000000 --- a/Modules/Az.Accounts/4.0.2/en-US/about_az.help.txt +++ /dev/null @@ -1,50 +0,0 @@ -About topic for Azure PowerShell - about_az - -TOPIC - -about_Az - -SHORT DESCRIPTION - -The Azure Az PowerShell module is a set of cmdlets for managing Azure -resources directly from the PowerShell command line and in PowerShell -scripts. - -LONG DESCRIPTION - -Azure PowerShell provides cross-platform cmdlets for managing Azure -services. All Azure PowerShell cmdlets work on Windows PowerShell 5.1 and -supported versions of PowerShell 7. - -The Azure PowerShell cmdlets follow the naming convention {verb}-Az{noun}. - -- {verb} is an approved PowerShell verb reflecting the corresponding HTTP - operation. - -- {noun} matches or has a close equivalent to the name of the resource. - -The cmdlets produce .NET objects that can be piped between commands -simplifying the sequencing of commands making Azure PowerShell a powerful -solution for scripting and automation purposes. - -A PowerShell module is available for each Azure service. For convenience, -we provide a wrapper module named "Az" that comprises the stable modules. -Modules in preview must be installed independently or via the "AzPreview" -wrapper module. - -Azure PowerShell is frequently updated to include bug fixes and service -updates. It is recommended to plan to update to the most recent version -regularly (a minimum of twice a year). - -GETTING STARTED - -1. Connect to Azure using Connect-AzAccount - -2. Run your first command. For example, create a resource group in the - east US region. - - New-AzResourceGroup -Name "MyResoureGroup" -location "eastus" - -SEE ALSO - -Azure PowerShell documentation: https://learn.microsoft.com/powershell/azure diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/Newtonsoft.Json.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/Newtonsoft.Json.dll deleted file mode 100644 index 10f270ffae96..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/Newtonsoft.Json.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Diagnostics.DiagnosticSource.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Diagnostics.DiagnosticSource.dll deleted file mode 100644 index 92419a27e0c2..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Diagnostics.DiagnosticSource.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Numerics.Vectors.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Numerics.Vectors.dll deleted file mode 100644 index 08659724d4f8..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Numerics.Vectors.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Reflection.DispatchProxy.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Reflection.DispatchProxy.dll deleted file mode 100644 index 674ced0460de..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Reflection.DispatchProxy.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Runtime.CompilerServices.Unsafe.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index c5ba4e4047a1..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Runtime.CompilerServices.Unsafe.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.Cng.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.Cng.dll deleted file mode 100644 index 4f4c30e080bd..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.Cng.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.ProtectedData.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.ProtectedData.dll deleted file mode 100644 index a7029b32f95d..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Security.Cryptography.ProtectedData.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Text.Encodings.Web.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Text.Encodings.Web.dll deleted file mode 100644 index a85aa43cfef5..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Text.Encodings.Web.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Xml.ReaderWriter.dll b/Modules/Az.Accounts/4.0.2/lib/netfx/System.Xml.ReaderWriter.dll deleted file mode 100644 index 022e63a21a86..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netfx/System.Xml.ReaderWriter.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Core.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Core.dll deleted file mode 100644 index 390182c78ad8..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Core.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.Broker.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.Broker.dll deleted file mode 100644 index efdd237a2113..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.Broker.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.dll deleted file mode 100644 index 23654ed1c021..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Azure.Identity.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll deleted file mode 100644 index 39fd1311f266..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll deleted file mode 100644 index 1741b8db681b..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll deleted file mode 100644 index 8db4ae9570f6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll deleted file mode 100644 index ff53bc8ebd08..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.dll deleted file mode 100644 index 880b889c5d98..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.Identity.Client.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll deleted file mode 100644 index 96db40f55703..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Buffers.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Buffers.dll deleted file mode 100644 index c0970c078522..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Buffers.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ClientModel.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ClientModel.dll deleted file mode 100644 index 0cb4427b10db..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ClientModel.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.Data.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.Data.dll deleted file mode 100644 index ed4f7b399813..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.Data.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.dll deleted file mode 100644 index 1e6aef802063..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Memory.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll deleted file mode 100644 index 598cb6335808..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Net.Http.WinHttpHandler.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Private.ServiceModel.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Private.ServiceModel.dll deleted file mode 100644 index 3f9f84edf0ed..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Private.ServiceModel.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.AccessControl.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.AccessControl.dll deleted file mode 100644 index 36fb33af4590..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.AccessControl.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Permissions.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Permissions.dll deleted file mode 100644 index 2a353ee22eec..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Permissions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Principal.Windows.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Principal.Windows.dll deleted file mode 100644 index 19d0fc0e971c..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Security.Principal.Windows.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ServiceModel.Primitives.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ServiceModel.Primitives.dll deleted file mode 100644 index c1aa0a64f8f9..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.ServiceModel.Primitives.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Text.Json.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Text.Json.dll deleted file mode 100644 index c1df9f92f2ca..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Text.Json.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll deleted file mode 100644 index dfab23478ab4..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime.dll deleted file mode 100644 index 723572aa3ad6..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_arm64.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_arm64.dll deleted file mode 100644 index 713a43e6612f..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_arm64.dll and /dev/null differ diff --git a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_x86.dll b/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_x86.dll deleted file mode 100644 index 69cc22280f03..000000000000 Binary files a/Modules/Az.Accounts/4.0.2/lib/netstandard2.0/msalruntime_x86.dll and /dev/null differ diff --git a/Modules/Az.Functions/4.2.0/.signature.p7s b/Modules/Az.Functions/4.2.0/.signature.p7s deleted file mode 100644 index a74e3c921128..000000000000 Binary files a/Modules/Az.Functions/4.2.0/.signature.p7s and /dev/null differ diff --git a/Modules/Az.Functions/4.2.0/Az.Functions.psm1 b/Modules/Az.Functions/4.2.0/Az.Functions.psm1 deleted file mode 100644 index 6bf1f7730127..000000000000 --- a/Modules/Az.Functions/4.2.0/Az.Functions.psm1 +++ /dev/null @@ -1,361 +0,0 @@ -# -# Script module for module 'Az.Functions' that is executed when 'Az.Functions' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/09/2025 06:20:57 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - -if ($true -and ($PSEdition -eq 'Core')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') - { - throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." - } -} - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies - - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -$module = Get-Module Az.Accounts - if ($module -ne $null -and $module.Version -lt [System.Version]"4.0.1") -{ - Write-Error "This module requires Az.Accounts version 4.0.1. An earlier version of Az.Accounts is imported in the current PowerShell session. Please open a new session before importing this module. This error could indicate that multiple incompatible versions of the Azure PowerShell cmdlets are installed on your system. Please see https://aka.ms/azps-version-error for troubleshooting information." -ErrorAction Stop -} -elseif ($module -eq $null) -{ - Import-Module Az.Accounts -MinimumVersion 4.0.1 -Scope Global -} - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @() - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - - - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIT6Uy09qUeDeZ -# fR4mBJDAvDhicnzmyGeuRB+OjHwKqqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJFxC6LGxp8iJzUihY0Hdfce -# hgl004K2mrUtQDu7WxyQMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEArO56WcyEwuT8vEKyf3AiV7OcBFqfVodqEsiw0b4jtFcn/r6wZuYKcHHF -# LN7AuIIZLQHq/JE2ijRT5feRaHo+tiUTD+wp8PYB1qbhg7NLfWBeKCbuV197TmQs -# wrkF9Z0AX2gutC2UgLZH5RPTUMQx5A9I0XSMUkKsie1iOFDVi+beMkUFr2GbE9u4 -# 5PQn3AYnVCglNNcwZxtwe1jIo4W2U49Duxq2KkP4SE3NO4Qj6u9wULugoO5epPjr -# AfgVxBwLJ6KBxt7Lp5YTOqkEjY+WT6KetKJPKQn3dk9Fy4BOwg/8zFWebx48ZEH0 -# jQX/3O5l6Q7aKZm9dTgx2ikCsM+WCKGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCeeUxUYg5OFW1EvREjZk6oS8UtykKvBdBBv7VdtZXWNwIGZ1rjbLrD -# GBMyMDI1MDEwOTA2MzY0My45OTNaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCCC0lGihVbTzSmHrTFF0t8ysEziC7nVoMCxmfyySo0V -# 3TCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIApMI7XhsoFso24RQdFuGh -# LYPdGtfZhawzTVTzyc2Zkoz1NSPXmYNOh5MsF8RG/sC9UP6KrA5SATei2WeGePG3 -# Lq13xBLlazKfBCfermIajkjSWgVr0oEfRJVwuJ40MXEPnc6XTvwDBupoLVFy7bac -# jriA4z4g09hjQKm188JYe6p7SxgGO/HYQvby7UnpZueoXlGOau2JZr0agBB2ht1T -# GAf/z5uk3NPK9MI2t3Y54RuSkureo3Mpc09rlvvMs543nQebfXrFRNr3NdYwq/+p -# CZETfgloYO/Dbx3nQtnFZdUyXgoTNs6taAeJeEDo41aeEEENg7APDTkO//IhI9f4 -# Gsr+rAVlVB5DH+DLeqyyX/7Q4QsTosFl7LU3QtNVDHEF55PBSQOpBhLTL3obBiWG -# H3L8valabbR9skrl7qvtrtOwTbWPHr6gsHAKbzid9+TEF2kqzEU+luuK4cOJZks9 -# 6W5yWF/07MPjsOCbeJBYSYw6wFrWS+V1bpq6d570S8GJbceOAlbcghasNo6yOG7q -# KFV4goJ8cOae1wDmJdKAVmK0P1wa0qo9Akh48jht4RJCXmT+kP0cUh8636kqy0Xb -# quKpRZ5PMuqkwD9L2pCMwAO8kZrUmS0jKVzXnZUWUURVdN7jAT0HcSRk0Waw/bNL -# iyNpg4SmMKnDkmuQzQxBbzA= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.format.ps1xml b/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.format.ps1xml deleted file mode 100644 index af83b63eecd2..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.format.ps1xml +++ /dev/null @@ -1,25710 +0,0 @@ - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.FunctionsIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.FunctionsIdentity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccountName - - - ActionName - - - AnalysisName - - - AppSettingKey - - - Authprovider - - - BackupId - - - BaseAddress - - - BasicAuthName - - - BlobServicesName - - - CertificateOrderName - - - ConnectionStringKey - - - ContainerName - - - DatabaseConnectionName - - - DeletedSiteId - - - DetectorName - - - DiagnosticCategory - - - DiagnosticsName - - - DomainName - - - DomainOwnershipIdentifierName - - - EntityName - - - EnvironmentName - - - FunctionAppName - - - FunctionName - - - GatewayName - - - HistoryName - - - HostName - - - HostingEnvironmentName - - - Id1 - - - ImmutabilityPolicyName - - - Instance - - - InstanceId - - - KeyId - - - KeyName - - - KeyType - - - LinkedBackendName - - - Location - - - ManagementPolicyName - - - Name - - - NamespaceName - - - OperationId - - - PremierAddOnName - - - PrivateEndpointConnectionName - - - ProcessId - - - PublicCertificateName - - - PurgeId - - - RelayName - - - RepetitionName - - - RequestHistoryName - - - ResourceGroupName - - - ResourceName - - - RouteName - - - RunName - - - Scope - - - SiteExtensionId - - - SiteName - - - Slot - - - SnapshotId - - - SourceControlType - - - SubscriptionId - - - TriggerName - - - Userid - - - VersionId - - - View - - - VnetName - - - WebJobName - - - WorkerName - - - WorkerPoolName - - - WorkflowName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AccountSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AccountSasParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPAddressOrRange - - - KeyToSign - - - Permission - - - Protocol - - - ResourceType - - - Service - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ActiveDirectoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ActiveDirectoryProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - AzureStorageSid - - - DomainGuid - - - DomainName - - - DomainSid - - - ForestName - - - NetBiosDomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AzureFilesIdentityBasedAuthentication - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.AzureFilesIdentityBasedAuthentication - - - - - - - - - - - - DirectoryServiceOption - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobContainer - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobContainer - - - - - - - - - - - - - - - Etag - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServiceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServiceProperties - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServicePropertiesAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.BlobServicePropertiesAutoGenerated - - - - - - - - - - - - - - - AutomaticSnapshotPolicyEnabled - - - DefaultServiceVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ChangeFeed - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ChangeFeed - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CheckNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CheckNameAvailabilityResult - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HasImmutabilityPolicy - - - HasLegalHold - - - LastModifiedTime - - - LeaseDuration - - - LeaseState - - - LeaseStatus - - - PublicAccess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerPropertiesMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ContainerPropertiesMetadata - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CorsRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CorsRule - - - - - - - - - - - - - - - - - - - - - - - - AllowedHeader - - - AllowedMethod - - - AllowedOrigin - - - ExposedHeader - - - MaxAgeInSecond - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CustomDomain - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.CustomDomain - - - - - - - - - - - - - - - Name - - - UseSubDomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterCreation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterCreation - - - - - - - - - - - - DaysAfterCreationGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterModification - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DateAfterModification - - - - - - - - - - - - DaysAfterModificationGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DeleteRetentionPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DeleteRetentionPolicy - - - - - - - - - - - - - - - Day - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DimensionAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.DimensionAutoGenerated - - - - - - - - - - - - - - - DisplayName - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Encryption - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Encryption - - - - - - - - - - - - KeySource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.EncryptionService - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.EncryptionService - - - - - - - - - - - - - - - Enabled - - - LastEnabledTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Endpoints - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Endpoints - - - - - - - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Queue - - - Table - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.GeoReplicationStats - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.GeoReplicationStats - - - - - - - - - - - - - - - - - - CanFailover - - - LastSyncTime - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Identity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Identity - - - - - - - - - - - - - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicy - - - - - - - - - - - - - - - - - - Etag - - - Name - - - ETag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperties - - - - - - - - - - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperty - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ImmutabilityPolicyProperty - - - - - - - - - - - - - - - ImmutabilityPeriodSinceCreationInDay - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IPRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IPRule - - - - - - - - - - - - - - - Action - - - IPAddressOrRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.KeyVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.KeyVaultProperties - - - - - - - - - - - - - - - - - - KeyName - - - KeyVaultUri - - - KeyVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerRequest - - - - - - - - - - - - - - - - - - - - - - - - Action - - - BreakPeriod - - - LeaseDuration - - - LeaseId - - - ProposedLeaseId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LeaseContainerResponse - - - - - - - - - - - - - - - LeaseId - - - LeaseTimeSecond - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHold - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHold - - - - - - - - - - - - - - - HasLegalHold - - - Tag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHoldProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.LegalHoldProperties - - - - - - - - - - - - HasLegalHold - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListAccountSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListAccountSasResponse - - - - - - - - - - - - AccountSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItem - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItem - - - - - - - - - - - - - - - Etag - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItems - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListContainerItems - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListServiceSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ListServiceSasResponse - - - - - - - - - - - - ServiceSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicy - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyFilter - - - - - - - - - - - - - - - BlobType - - - PrefixMatch - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyProperties - - - - - - - - - - - - LastModifiedTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ManagementPolicyRule - - - - - - - - - - - - - - - Enabled - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.MetricSpecificationAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.MetricSpecificationAutoGenerated - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AggregationType - - - Category - - - DisplayDescription - - - DisplayName - - - FillGapWithZero - - - Name - - - ResourceIdDimensionNameOverride - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.NetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.NetworkRuleSet - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationAutoGenerated - - - - - - - - - - - - - - - Name - - - Origin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationDisplay - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.OperationDisplay - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Restriction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Restriction - - - - - - - - - - - - - - - ReasonCode - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ServiceSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.ServiceSasParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CacheControl - - - CanonicalizedResource - - - ContentDisposition - - - ContentEncoding - - - ContentLanguage - - - ContentType - - - IPAddressOrRange - - - Identifier - - - KeyToSign - - - PartitionKeyEnd - - - PartitionKeyStart - - - Permission - - - Protocol - - - Resource - - - RowKeyEnd - - - RowKeyStart - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Sku - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.Sku - - - - - - - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - ResourceType - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.SkuCapability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.SkuCapability - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccount - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccount - - - - - - - - - - - - - - - - - - Location - - - Name - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCheckNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCheckNameAvailabilityParameters - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParameters - - - - - - - - - - - - - - - Kind - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountCreateParametersTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountKey - - - - - - - - - - - - - - - - - - KeyName - - - Permission - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowSharedKeyAccess - - - CreationTime - - - EnableHttpsTrafficOnly - - - FailoverInProgress - - - IsHnsEnabled - - - LargeFileSharesState - - - LastGeoFailoverTime - - - MinimumTlsVersion - - - PrimaryLocation - - - ProvisioningState - - - SecondaryLocation - - - StatusOfPrimary - - - StatusOfSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesCreateParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowSharedKeyAccess - - - EnableHttpsTrafficOnly - - - IsHnsEnabled - - - LargeFileSharesState - - - MinimumTlsVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountPropertiesUpdateParameters - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowSharedKeyAccess - - - EnableHttpsTrafficOnly - - - LargeFileSharesState - - - MinimumTlsVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountRegenerateKeyParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountRegenerateKeyParameters - - - - - - - - - - - - KeyName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParameters - - - - - - - - - - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.StorageAccountUpdateParametersTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.TagProperty - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.TagProperty - - - - - - - - - - - - - - - - - - - - - - - - ObjectIdentifier - - - Tag - - - TenantId - - - Timestamp - - - Upn - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UpdateHistoryProperty - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UpdateHistoryProperty - - - - - - - - - - - - - - - - - - - - - - - - - - - ImmutabilityPeriodSinceCreationInDay - - - ObjectIdentifier - - - TenantId - - - Timestamp - - - Update - - - Upn - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageAutoGenerated - - - - - - - - - - - - - - - - - - CurrentValue - - - Limit - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageName - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.UsageName - - - - - - - - - - - - - - - LocalizedValue - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.VirtualNetworkRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.VirtualNetworkRule - - - - - - - - - - - - - - - - - - Action - - - State - - - VirtualNetworkResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.CloudErrorBody - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.CloudErrorBody - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityAutoGenerated - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdate - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdateTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IdentityUpdateTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationAutoGenerated2 - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationAutoGenerated2 - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationDisplayAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationDisplayAutoGenerated - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationListResultAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.OperationListResultAutoGenerated - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentity - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityProperties - - - - - - - - - - - - - - - - - - - - - ClientId - - - ClientSecretUrl - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.SystemAssignedIdentityTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentitiesListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentitiesListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.UserAssignedIdentityProperties - - - - - - - - - - - - - - - - - - ClientId - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApiKeyRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApiKeyRequest - - - - - - - - - - - - - - - - - - LinkedReadProperty - - - LinkedWriteProperty - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponent - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponent - - - - - - - - - - - - - - - - - - Location - - - Name - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentApiKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentApiKey - - - - - - - - - - - - - - - - - - - - - - - - ApiKey - - - CreatedDate - - - LinkedReadProperty - - - LinkedWriteProperty - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ApplicationInsightsComponentProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppId - - - ApplicationId - - - ApplicationType - - - CreationDate - - - FlowType - - - HockeyAppId - - - HockeyAppToken - - - InstrumentationKey - - - ProvisioningState - - - RequestSource - - - SamplingPercentage - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBody - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBody - - - - - - - - - - - - Table - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBodyFilters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeBodyFilters - - - - - - - - - - - - - - - - - - Column - - - Key - - - Operator - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeResponse - - - - - - - - - - - - OperationId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeStatusResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentPurgeStatusResponse - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResource - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.ComponentsResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.TagsResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.TagsResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.AzureEntityResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.AzureEntityResource - - - - - - - - - - - - - - - Name - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ProxyResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ProxyResource - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ResourceAutoGenerated - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ResourceAutoGenerated - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResource - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.TrackedResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AbnormalTimePeriod - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AbnormalTimePeriod - - - - - - - - - - - - - - - EndTime - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Address - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Address - - - - - - - - - - - - - - - - - - - - - - - - - - - Address1 - - - Address2 - - - City - - - Country - - - PostalCode - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponseProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AddressResponseProperties - - - - - - - - - - - - - - - - - - InternalIPAddress - - - OutboundIPAddress - - - ServiceIPAddress - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedAudiencesValidation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedAudiencesValidation - - - - - - - - - - - - AllowedAudience - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedPrincipals - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AllowedPrincipals - - - - - - - - - - - - - - - Group - - - Identity - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisData - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisData - - - - - - - - - - - - Source - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinition - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinitionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AnalysisDefinitionProperties - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiDefinitionInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiDefinitionInfo - - - - - - - - - - - - Url - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReference - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReference - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApiKvReferenceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActiveVersion - - - Detail - - - Reference - - - SecretName - - - SecretVersion - - - Source - - - Status - - - VaultName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppInsightsWebAppStackSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppInsightsWebAppStackSettings - - - - - - - - - - - - - - - IsDefaultOff - - - IsSupported - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Apple - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Apple - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppleRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppleRegistration - - - - - - - - - - - - - - - ClientId - - - ClientSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStack - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStack - - - - - - - - - - - - - - - - - - Dependency - - - Display - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ApplicationStackResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppRegistration - - - - - - - - - - - - - - - AppId - - - AppSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificate - - - - - - - - - - - - - - - - - - KeyVaultId - - - KeyVaultSecretName - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrder - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrder - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppServiceCertificateNotRenewableReason - - - AutoRenew - - - Csr - - - DistinguishedName - - - DomainVerificationToken - - - ExpirationTime - - - IsPrivateKeyExternal - - - KeySize - - - LastCertificateIssuanceTime - - - NextAutoRenewalTimeStamp - - - ProductType - - - ProvisioningState - - - SerialNumber - - - Status - - - ValidityInYear - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateOrderProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppServiceCertificateNotRenewableReason - - - AutoRenew - - - Csr - - - DistinguishedName - - - DomainVerificationToken - - - ExpirationTime - - - IsPrivateKeyExternal - - - KeySize - - - LastCertificateIssuanceTime - - - NextAutoRenewalTimeStamp - - - ProductType - - - ProvisioningState - - - SerialNumber - - - Status - - - ValidityInYear - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificatePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificatePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceCertificateResource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironment - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironment - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DedicatedHostCount - - - DnsSuffix - - - FrontEndScaleFactor - - - HasLinuxWorker - - - InternalLoadBalancingMode - - - IpsslAddressCount - - - MaximumNumberOfMachine - - - MultiRoleCount - - - MultiSize - - - ProvisioningState - - - Status - - - Suspended - - - UpgradeAvailability - - - UpgradePreference - - - UserWhitelistedIPRange - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServiceEnvironmentResource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubToken - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubToken - - - - - - - - - - - - - - - - - - - - - - - - AccessToken - - - ErrorMessage - - - GotToken - - - Scope - - - TokenType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubTokenRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppserviceGithubTokenRequest - - - - - - - - - - - - - - - Code - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ElasticScaleEnabled - - - FreeOfferExpirationTime - - - GeoRegion - - - HyperV - - - IsSpot - - - IsXenon - - - MaximumElasticWorkerCount - - - MaximumNumberOfWorker - - - NumberOfSite - - - NumberOfWorker - - - PerSiteScaling - - - ProvisioningState - - - Reserved - - - ResourceGroup - - - SpotExpirationTime - - - Status - - - Subscription - - - TargetWorkerCount - - - TargetWorkerSizeId - - - WorkerTierName - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlanProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ElasticScaleEnabled - - - FreeOfferExpirationTime - - - GeoRegion - - - HyperV - - - IsSpot - - - IsXenon - - - MaximumElasticWorkerCount - - - MaximumNumberOfWorker - - - NumberOfSite - - - NumberOfWorker - - - PerSiteScaling - - - ProvisioningState - - - Reserved - - - ResourceGroup - - - SpotExpirationTime - - - Status - - - Subscription - - - TargetWorkerCount - - - TargetWorkerSizeId - - - WorkerTierName - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ArmPlan - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ArmPlan - - - - - - - - - - - - - - - - - - - - - - - - Name - - - Product - - - PromotionCode - - - Publisher - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegion - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseRegionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailableOS - - - AvailableSku - - - DedicatedHost - - - DisplayName - - - Standard - - - ZoneRedundant - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfiguration - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfigurationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AseV3NetworkingConfigurationProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowNewPrivateEndpointConnection - - - ExternalInboundIPAddress - - - FtpEnabled - - - InboundIPAddressOverride - - - InternalInboundIPAddress - - - LinuxOutboundIPAddress - - - RemoteDebugEnabled - - - WindowsOutboundIPAddress - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AuthPlatform - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AuthPlatform - - - - - - - - - - - - - - - - - - ConfigFilePath - - - Enabled - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealActions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealActions - - - - - - - - - - - - - - - ActionType - - - MinProcessExecutionTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealCustomAction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealCustomAction - - - - - - - - - - - - - - - Exe - - - Parameter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealTriggers - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AutoHealTriggers - - - - - - - - - - - - PrivateBytesInKb - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectory - - - - - - - - - - - - - - - Enabled - - - IsAutoProvisioned - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryLogin - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryLogin - - - - - - - - - - - - - - - DisableWwwAuthenticate - - - LoginParameter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryRegistration - - - - - - - - - - - - - - - - - - - - - - - - - - - ClientId - - - ClientSecretCertificateIssuer - - - ClientSecretCertificateSubjectAlternativeName - - - ClientSecretCertificateThumbprint - - - ClientSecretSettingName - - - OpenIdIssuer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryValidation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureActiveDirectoryValidation - - - - - - - - - - - - AllowedAudience - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageApplicationLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageApplicationLogsConfig - - - - - - - - - - - - - - - - - - Level - - - RetentionInDay - - - SasUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageHttpLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureBlobStorageHttpLogsConfig - - - - - - - - - - - - - - - - - - Enabled - - - RetentionInDay - - - SasUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureResourceErrorInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureResourceErrorInfo - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebApps - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebApps - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebAppsRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStaticWebAppsRegistration - - - - - - - - - - - - ClientId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStorageInfoValue - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStorageInfoValue - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessKey - - - AccountName - - - MountPath - - - Protocol - - - ShareName - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStoragePropertyDictionaryResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureStoragePropertyDictionaryResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureTableStorageApplicationLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AzureTableStorageApplicationLogsConfig - - - - - - - - - - - - - - - Level - - - SasUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItem - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItem - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupItemProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BackupId - - - BlobName - - - CorrelationId - - - Created - - - FinishedTimeStamp - - - LastRestoreTimeStamp - - - Log - - - Name - - - Scheduled - - - SizeInByte - - - Status - - - StorageAccountUrl - - - WebsiteSizeInByte - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupRequestProperties - - - - - - - - - - - - - - - - - - BackupName - - - Enabled - - - StorageAccountUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupSchedule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BackupSchedule - - - - - - - - - - - - - - - - - - - - - - - - - - - FrequencyInterval - - - FrequencyUnit - - - KeepAtLeastOneBackup - - - LastExecutionTime - - - RetentionPeriodInDay - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeter - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BillingMeterProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BillingLocation - - - FriendlyName - - - MeterId - - - Multiplier - - - OSType - - - ResourceType - - - ShortName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BlobStorageTokenStore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.BlobStorageTokenStore - - - - - - - - - - - - SasUrlSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Capability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Capability - - - - - - - - - - - - - - - - - - Name - - - Reason - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Certificate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Certificate - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateDetails - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateDetails - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Issuer - - - NotAfter - - - NotBefore - - - RawData - - - SerialNumber - - - SignatureAlgorithm - - - Subject - - - Thumbprint - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateEmail - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateEmail - - - - - - - - - - - - - - - EmailId - - - TimeStamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderAction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderAction - - - - - - - - - - - - - - - ActionType - - - CreatedAt - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderContact - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateOrderContact - - - - - - - - - - - - - - - - - - - - - Email - - - NameFirst - - - NameLast - - - Phone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificatePatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CanonicalName - - - CerBlob - - - DomainValidationMethod - - - ExpirationDate - - - FriendlyName - - - HostName - - - IssueDate - - - Issuer - - - KeyVaultId - - - KeyVaultSecretName - - - KeyVaultSecretStatus - - - Password - - - PfxBlob - - - PublicKeyHash - - - SelfLink - - - ServerFarmId - - - SiteName - - - SubjectName - - - Thumbprint - - - Valid - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CertificateProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CanonicalName - - - CerBlob - - - DomainValidationMethod - - - ExpirationDate - - - FriendlyName - - - HostName - - - IssueDate - - - Issuer - - - KeyVaultId - - - KeyVaultSecretName - - - KeyVaultSecretStatus - - - Password - - - PfxBlob - - - PublicKeyHash - - - SelfLink - - - ServerFarmId - - - SiteName - - - SubjectName - - - Thumbprint - - - Valid - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ClientRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ClientRegistration - - - - - - - - - - - - - - - ClientId - - - ClientSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CloneCustomHostName - - - CloneSourceControl - - - ConfigureLoadBalancing - - - CorrelationId - - - HostingEnvironment - - - Overwrite - - - SourceWebAppId - - - SourceWebAppLocation - - - TrafficManagerProfileId - - - TrafficManagerProfileName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfoAppSettingsOverrides - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CloningInfoAppSettingsOverrides - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnectionStringDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnectionStringDictionary - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringInfo - - - - - - - - - - - - - - - ConnectionString - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringValueTypePair - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ConnStringValueTypePair - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Contact - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Contact - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Email - - - Fax - - - JobTitle - - - NameFirst - - - NameLast - - - NameMiddle - - - Organization - - - Phone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Container - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Container - - - - - - - - - - - - - - - - - - - - - Arg - - - Command - - - Image - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuStatistics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuStatistics - - - - - - - - - - - - - - - OnlineCpuCount - - - SystemCpuUsage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuUsage - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerCpuUsage - - - - - - - - - - - - - - - - - - - - - KernelModeUsage - - - PerCpuUsage - - - TotalUsage - - - UserModeUsage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerInfo - - - - - - - - - - - - - - - - - - CurrentTimeStamp - - - Name - - - PreviousTimeStamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerMemoryStatistics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerMemoryStatistics - - - - - - - - - - - - - - - - - - Limit - - - MaxUsage - - - Usage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerNetworkInterfaceStatistics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerNetworkInterfaceStatistics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RxByte - - - RxDropped - - - RxError - - - RxPacket - - - TxByte - - - TxDropped - - - TxError - - - TxPacket - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerResources - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerResources - - - - - - - - - - - - - - - Cpu - - - Memory - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerThrottlingData - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContainerThrottlingData - - - - - - - - - - - - - - - - - - Period - - - ThrottledPeriod - - - ThrottledTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentHash - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentHash - - - - - - - - - - - - - - - Algorithm - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentLink - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContentLink - - - - - - - - - - - - - - - - - - ContentSize - - - ContentVersion - - - Uri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJob - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJob - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ContinuousWebJobProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DetailedStatus - - - Error - - - ExtraInfoUrl - - - LogUrl - - - RunCommand - - - Status - - - Url - - - UsingSdk - - - WebJobType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CookieExpiration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CookieExpiration - - - - - - - - - - - - - - - Convention - - - TimeToExpiration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Correlation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Correlation - - - - - - - - - - - - ClientTrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CorsSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CorsSettings - - - - - - - - - - - - - - - AllowedOrigin - - - SupportCredentials - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmDeploymentStatusProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - DeploymentId - - - FailedInstancesLog - - - NumberOfInstancesFailed - - - NumberOfInstancesInProgress - - - NumberOfInstancesSuccessful - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmMoveResourceEnvelope - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmMoveResourceEnvelope - - - - - - - - - - - - - - - Resource - - - TargetResourceGroup - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDescription - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDescription - - - - - - - - - - - - - - - - - - IsDataAction - - - Name - - - Origin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDisplay - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmOperationDisplay - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntity - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingCredentialsPoliciesEntityProperties - - - - - - - - - - - - Allow - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingProfileOptions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmPublishingProfileOptions - - - - - - - - - - - - - - - Format - - - IncludeDisasterRecoveryEndpoint - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmSlotEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmSlotEntity - - - - - - - - - - - - - - - PreserveVnet - - - TargetSlot - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuota - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuota - - - - - - - - - - - - - - - - - - - - - CurrentValue - - - Limit - - - NextResetTime - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuotaCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CsmUsageQuotaCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfiguration - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfigurationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomDnsSuffixConfigurationProperties - - - - - - - - - - - - - - - - - - - - - - - - CertificateUrl - - - DnsSuffix - - - KeyVaultReferenceIdentity - - - ProvisioningDetail - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResult - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameAnalysisResultProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARecord - - - AlternateCNameRecord - - - AlternateTxtRecord - - - CNameRecord - - - ConflictingAppResourceId - - - CustomDomainVerificationTest - - - HasConflictAcrossSubscription - - - HasConflictOnScaleUnit - - - IsHostnameAlreadyVerified - - - TxtRecord - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSites - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSites - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomHostnameSitesProperties - - - - - - - - - - - - - - - CustomHostname - - - Region - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomOpenIdConnectProvider - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomOpenIdConnectProvider - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomScaleRuleMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.CustomScaleRuleMetadata - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dapr - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dapr - - - - - - - - - - - - - - - - - - AppId - - - AppPort - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprComponent - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprComponent - - - - - - - - - - - - - - - Name - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppId - - - AppPort - - - EnableApiLogging - - - Enabled - - - HttpMaxRequestSize - - - HttpReadBufferSize - - - LogLevel - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DaprMetadata - - - - - - - - - - - - - - - - - - Name - - - SecretRef - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseBackupSetting - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseBackupSetting - - - - - - - - - - - - - - - - - - - - - ConnectionString - - - ConnectionStringName - - - DatabaseType - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnection - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionOverview - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionOverview - - - - - - - - - - - - - - - - - - - - - ConnectionIdentity - - - Name - - - Region - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionPatchRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionPatchRequestProperties - - - - - - - - - - - - - - - - - - - - - ConnectionIdentity - - - ConnectionString - - - Region - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DatabaseConnectionProperties - - - - - - - - - - - - - - - - - - - - - ConnectionIdentity - - - ConnectionString - - - Region - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataProviderMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataProviderMetadata - - - - - - - - - - - - ProviderName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataSource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataSource - - - - - - - - - - - - Instruction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseColumn - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseColumn - - - - - - - - - - - - - - - - - - ColumnName - - - ColumnType - - - DataType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseObject - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DataTableResponseObject - - - - - - - - - - - - - - - Row - - - TableName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultAuthorizationPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultAuthorizationPolicy - - - - - - - - - - - - AllowedApplication - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseError - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseError - - - - - - - - - - - - - - - - - - - - - Code - - - Innererror - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseErrorDetailsItem - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DefaultErrorResponseErrorDetailsItem - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedAppRestoreRequestProperties - - - - - - - - - - - - - - - - - - - - - DeletedSiteId - - - RecoverConfiguration - - - SnapshotTime - - - UseDrSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSite - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSite - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSiteProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedSiteProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DeletedSiteId - - - DeletedSiteName - - - DeletedTimestamp - - - GeoRegionName - - - Kind - - - ResourceGroup - - - Slot - - - Subscription - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedWebAppCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeletedWebAppCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Deployment - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Deployment - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DeploymentProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Active - - - Author - - - AuthorEmail - - - Deployer - - - Detail - - - EndTime - - - Message - - - StartTime - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorAbnormalTimePeriod - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorAbnormalTimePeriod - - - - - - - - - - - - - - - - - - - - - - - - EndTime - - - Message - - - Priority - - - Source - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinition - - - - - - - - - - - - - - - - - - - - - Description - - - DisplayName - - - IsEnabled - - - Rank - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinitionResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorDefinitionResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - AnalysisType - - - Author - - - Category - - - Description - - - Name - - - Score - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponseCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DetectorResponseCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysis - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysis - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticAnalysisProperties - - - - - - - - - - - - - - - EndTime - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategory - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticCategoryProperties - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponseProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticDetectorResponseProperties - - - - - - - - - - - - - - - - - - EndTime - - - IssueDetected - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSample - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSample - - - - - - - - - - - - - - - - - - - - - - - - - - - IsAggregated - - - Maximum - - - Minimum - - - RoleInstance - - - Timestamp - - - Total - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DiagnosticMetricSet - - - - - - - - - - - - - - - - - - - - - - - - EndTime - - - Name - - - StartTime - - - TimeGrain - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dimension - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Dimension - - - - - - - - - - - - - - - - - - - - - DisplayName - - - InternalName - - - Name - - - ToBeExportedForShoebox - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Domain - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Domain - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainAvailabilityCheckResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainAvailabilityCheckResult - - - - - - - - - - - - - - - - - - Available - - - DomainType - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainControlCenterSsoRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainControlCenterSsoRequest - - - - - - - - - - - - - - - - - - PostParameterKey - - - PostParameterValue - - - Url - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifier - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifier - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainOwnershipIdentifierProperties - - - - - - - - - - - - OwnershipId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthCode - - - AutoRenew - - - CreatedTime - - - DnsType - - - DnsZoneId - - - DomainNotRenewableReason - - - ExpirationTime - - - LastRenewedTime - - - NameServer - - - Privacy - - - ProvisioningState - - - ReadyForDnsRecordManagement - - - RegistrationStatus - - - TargetDnsType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthCode - - - AutoRenew - - - CreatedTime - - - DnsType - - - DnsZoneId - - - DomainNotRenewableReason - - - ExpirationTime - - - LastRenewedTime - - - NameServer - - - Privacy - - - ProvisioningState - - - ReadyForDnsRecordManagement - - - RegistrationStatus - - - TargetDnsType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPurchaseConsent - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainPurchaseConsent - - - - - - - - - - - - - - - - - - AgreedAt - - - AgreedBy - - - AgreementKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainRecommendationSearchParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.DomainRecommendationSearchParameters - - - - - - - - - - - - - - - Keyword - - - MaxDomainRecommendation - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnabledConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnabledConfig - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDependency - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDependency - - - - - - - - - - - - DomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDetail - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EndpointDetail - - - - - - - - - - - - - - - - - - - - - IPAddress - - - IsAccessible - - - Latency - - - Port - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVar - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVar - - - - - - - - - - - - - - - - - - Name - - - SecretRef - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVariable - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.EnvironmentVariable - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorEntity - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - ExtendedCode - - - Message - - - MessageTemplate - - - Parameter - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorInfo - - - - - - - - - - - - Code - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ErrorProperties - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Expression - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Expression - - - - - - - - - - - - Text - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionRoot - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionRoot - - - - - - - - - - - - - - - - - - - - - Code - - - Message - - - Text - - - Path - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionTraces - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExpressionTraces - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExtendedLocation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ExtendedLocation - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Facebook - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Facebook - - - - - - - - - - - - - - - Enabled - - - GraphApiVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemApplicationLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemApplicationLogsConfig - - - - - - - - - - - - Level - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemHttpLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemHttpLogsConfig - - - - - - - - - - - - - - - - - - Enabled - - - RetentionInDay - - - RetentionInMb - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemTokenStore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FileSystemTokenStore - - - - - - - - - - - - Directory - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ForwardProxy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ForwardProxy - - - - - - - - - - - - - - - - - - Convention - - - CustomHostHeaderName - - - CustomProtoHeaderName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMajorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMajorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMinorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppMinorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDefault - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - RemoteDebuggingSupported - - - RuntimeVersion - - - SupportedFunctionsExtensionVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettingsAppSettingsDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppRuntimeSettingsAppSettingsDictionary - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStack - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStack - - - - - - - - - - - - - - - - - - Kind - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionAppStackProperties - - - - - - - - - - - - - - - - - - DisplayText - - - PreferredOS - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelope - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelope - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopeProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ConfigHref - - - FunctionAppId - - - Href - - - InvokeUrlTemplate - - - IsDisabled - - - Language - - - ScriptHref - - - ScriptRootPathHref - - - SecretsFileHref - - - TestData - - - TestDataHref - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopePropertiesFiles - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionEnvelopePropertiesFiles - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsAlwaysReadyConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsAlwaysReadyConfig - - - - - - - - - - - - - - - InstanceCount - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorage - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorage - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorageAuthentication - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsDeploymentStorageAuthentication - - - - - - - - - - - - - - - StorageAccountConnectionStringName - - - UserAssignedIdentityResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionSecrets - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionSecrets - - - - - - - - - - - - - - - Key - - - TriggerUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsRuntime - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsRuntime - - - - - - - - - - - - - - - Name - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrency - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrency - - - - - - - - - - - - - - - InstanceMemoryMb - - - MaximumInstanceCount - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrencyTriggersHttp - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.FunctionsScaleAndConcurrencyTriggersHttp - - - - - - - - - - - - PerInstanceConcurrency - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegion - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GeoRegionProperties - - - - - - - - - - - - - - - - - - Description - - - DisplayName - - - OrgDomain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHub - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHub - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionCodeConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionCodeConfiguration - - - - - - - - - - - - - - - RuntimeStack - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionConfiguration - - - - - - - - - - - - - - - GenerateWorkflowFile - - - IsLinux - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionContainerConfiguration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionContainerConfiguration - - - - - - - - - - - - - - - - - - - - - ImageName - - - Password - - - ServerUrl - - - Username - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionWebAppStackSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GitHubActionWebAppStackSettings - - - - - - - - - - - - - - - IsSupported - - - SupportedVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalCsmSkuDescription - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalCsmSkuDescription - - - - - - - - - - - - - - - - - - - - - - - - Family - - - Location - - - Name - - - Size - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalValidation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.GlobalValidation - - - - - - - - - - - - - - - - - - - - - ExcludedPath - - - RedirectToProvider - - - RequireAuthentication - - - UnauthenticatedClientAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Google - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Google - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HandlerMapping - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HandlerMapping - - - - - - - - - - - - - - - - - - Argument - - - Extension - - - ScriptProcessor - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDeploymentInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDeploymentInfo - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDiagnostics - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentDiagnostics - - - - - - - - - - - - - - - DiagnosticsOutput - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentProfile - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostingEnvironmentProfile - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeys - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeys - - - - - - - - - - - - MasterKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysFunctionKeys - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysFunctionKeys - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysSystemKeys - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostKeysSystemKeys - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostName - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostName - - - - - - - - - - - - - - - - - - - - - - - - AzureResourceName - - - AzureResourceType - - - CustomHostNameDnsRecordType - - - Name - - - SiteName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBinding - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBinding - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameBindingProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AzureResourceName - - - AzureResourceType - - - CustomHostNameDnsRecordType - - - DomainId - - - HostNameType - - - SiteName - - - SslState - - - Thumbprint - - - VirtualIP - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameSslState - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HostNameSslState - - - - - - - - - - - - - - - - - - - - - - - - - - - HostType - - - Name - - - SslState - - - Thumbprint - - - ToUpdate - - - VirtualIP - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpScaleRuleMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpScaleRuleMetadata - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettings - - - - - - - - - - - - RequireHttps - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettingsRoutes - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HttpSettingsRoutes - - - - - - - - - - - - ApiPrefix - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnection - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKey - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKeyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionKeyProperties - - - - - - - - - - - - - - - SendKeyName - - - SendKeyValue - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimits - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimits - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimitsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionLimitsProperties - - - - - - - - - - - - - - - Current - - - Maximum - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.HybridConnectionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hostname - - - Port - - - RelayArmUri - - - RelayName - - - SendKeyName - - - SendKeyValue - - - ServiceBusNamespace - - - ServiceBusSuffix - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Identifier - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Identifier - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IdentifierProperties - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpoint - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpoint - - - - - - - - - - - - - - - - - - Description - - - Endpoint - - - Port - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpointCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.InboundEnvironmentEndpointCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddress - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddress - - - - - - - - - - - - Address - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddressRange - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPAddressRange - - - - - - - - - - - - AddressRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestriction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestriction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Action - - - Description - - - IPAddress - - - Name - - - Priority - - - SubnetMask - - - SubnetTrafficTag - - - Tag - - - VnetSubnetResourceId - - - VnetTrafficTag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestrictionHeaders - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IPSecurityRestrictionHeaders - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JsonSchema - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JsonSchema - - - - - - - - - - - - - - - Content - - - Title - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JwtClaimChecks - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.JwtClaimChecks - - - - - - - - - - - - - - - AllowedClientApplication - - - AllowedGroup - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyInfo - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyValuePairStringObject - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KeyValuePairStringObject - - - - - - - - - - - - Key - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KubeEnvironmentProfile - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.KubeEnvironmentProfile - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LegacyMicrosoftAccount - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LegacyMicrosoftAccount - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LinuxJavaContainerSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LinuxJavaContainerSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - Java11Runtime - - - Java8Runtime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LocalizableString - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LocalizableString - - - - - - - - - - - - - - - LocalizedValue - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Login - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Login - - - - - - - - - - - - - - - AllowedExternalRedirectUrl - - - PreserveUrlFragmentsForLogin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginRoutes - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginRoutes - - - - - - - - - - - - LogoutEndpoint - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginScopes - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LoginScopes - - - - - - - - - - - - Scope - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LogSpecification - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.LogSpecification - - - - - - - - - - - - - - - - - - - - - BlobDuration - - - DisplayName - - - LogFilterPattern - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentity - - - - - - - - - - - - - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricAvailability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricAvailability - - - - - - - - - - - - - - - BlobDuration - - - TimeGrain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricSpecification - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MetricSpecification - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AggregationType - - - Category - - - DisplayDescription - - - DisplayName - - - EnableRegionalMdmAccount - - - FillGapWithZero - - - IsInternal - - - MetricFilterPattern - - - Name - - - SourceMdmAccount - - - SourceMdmNamespace - - - SupportedAggregationType - - - SupportedTimeGrainType - - - SupportsInstanceLevelAggregation - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlRequestProperties - - - - - - - - - - - - - - - ConnectionString - - - MigrationType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MigrateMySqlStatusProperties - - - - - - - - - - - - - - - - - - LocalMySqlEnabled - - - MigrationOperationStatus - - - OperationId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeploy - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeploy - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCore - - - - - - - - - - - - - - - - - - - - - - - - - - - AppOffline - - - ConnectionString - - - DbType - - - PackageUri - - - SetParametersXmlFileUri - - - SkipAppData - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCoreSetParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployCoreSetParameters - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLog - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLog - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLogEntry - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployLogEntry - - - - - - - - - - - - - - - Message - - - Time - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.MSDeployStatusProperties - - - - - - - - - - - - - - - - - - - - - - - - Complete - - - Deployer - - - EndTime - - - ProvisioningState - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifier - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifier - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifierCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameIdentifierCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameValuePair - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameValuePair - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeatures - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeatures - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeaturesProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkFeaturesProperties - - - - - - - - - - - - VirtualNetworkName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkTrace - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NetworkTrace - - - - - - - - - - - - - - - - - - Message - - - Path - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Nonce - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Nonce - - - - - - - - - - - - - - - ExpirationInterval - - - ValidateNonce - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenAuthenticationPolicyClaim - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenAuthenticationPolicyClaim - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectClientCredential - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectClientCredential - - - - - - - - - - - - - - - ClientSecretSettingName - - - Method - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectConfig - - - - - - - - - - - - - - - - - - - - - - - - AuthorizationEndpoint - - - CertificationUri - - - Issuer - - - TokenEndpoint - - - WellKnownOpenIdConfiguration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectLogin - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectLogin - - - - - - - - - - - - - - - NameClaimType - - - Scope - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OpenIdConnectRegistration - - - - - - - - - - - - ClientId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Operation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Operation - - - - - - - - - - - - - - - - - - - - - - - - - - - CreatedTime - - - ExpirationTime - - - GeoMasterOperationId - - - ModifiedTime - - - Name - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResult - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationActionTrackingId - - - CorrelationClientKeyword - - - CorrelationClientTrackingId - - - EndTime - - - StartTime - - - Status - - - IterationCount - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OperationResultProperties - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - StartTime - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpoint - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpoint - - - - - - - - - - - - Category - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpointCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.OutboundEnvironmentEndpointCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonCounterCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonCounterCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonResponse - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSample - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSample - - - - - - - - - - - - - - - - - - InstanceName - - - Time - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PerfMonSet - - - - - - - - - - - - - - - - - - - - - EndTime - - - Name - - - StartTime - - - TimeGrain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOn - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOn - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOffer - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOffer - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnOfferProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LegalTermsUrl - - - MarketplaceOffer - - - MarketplacePublisher - - - PrivacyPolicyUrl - - - Product - - - PromoCodeRequired - - - Quota - - - Sku - - - Vendor - - - WebHostingPlanRestriction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnPatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - MarketplaceOffer - - - MarketplacePublisher - - - Product - - - Sku - - - Vendor - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PremierAddOnProperties - - - - - - - - - - - - - - - - - - - - - - - - MarketplaceOffer - - - MarketplacePublisher - - - Product - - - Sku - - - Vendor - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccess - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccess - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessProperties - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessSubnet - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessSubnet - - - - - - - - - - - - - - - Key - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessVirtualNetwork - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateAccessVirtualNetwork - - - - - - - - - - - - - - - - - - Key - - - Name - - - ResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateEndpointConnectionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateEndpointConnectionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionApprovalRequestResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionApprovalRequestResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkConnectionState - - - - - - - - - - - - - - - - - - ActionsRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResource - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PrivateLinkResourceProperties - - - - - - - - - - - - - - - - - - GroupId - - - RequiredMember - - - RequiredZoneName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Child - - - CommandLine - - - DeploymentName - - - Description - - - FileName - - - HandleCount - - - Href - - - Identifier - - - IisProfileTimeoutInSecond - - - IsIisProfileRunning - - - IsProfileRunning - - - IsScmSite - - - IsWebjob - - - Minidump - - - ModuleCount - - - NonPagedSystemMemory - - - OpenFileHandle - - - PagedMemory - - - PagedSystemMemory - - - Parent - - - PeakPagedMemory - - - PeakVirtualMemory - - - PeakWorkingSet - - - PrivateMemory - - - PrivilegedCpuTime - - - StartTime - - - ThreadCount - - - TimeStamp - - - TotalCpuTime - - - UserCpuTime - - - UserName - - - VirtualMemory - - - WorkingSet - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoPropertiesEnvironmentVariables - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessInfoPropertiesEnvironmentVariables - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessModuleInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BaseAddress - - - FileDescription - - - FileName - - - FilePath - - - FileVersion - - - Href - - - IsDebug - - - Language - - - ModuleMemorySize - - - Product - - - ProductVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProcessThreadInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BasePriority - - - CurrentPriority - - - Href - - - Identifier - - - PriorityLevel - - - Process - - - StartAddress - - - StartTime - - - State - - - TotalProcessorTime - - - UserProcessorTime - - - WaitReason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProxyOnlyResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ProxyOnlyResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificate - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificate - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublicCertificateProperties - - - - - - - - - - - - - - - - - - Blob - - - PublicCertificateLocation - - - Thumbprint - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublishingCredentialsPoliciesCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PublishingCredentialsPoliciesCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettings - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettingsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.PushSettingsProperties - - - - - - - - - - - - - - - - - - - - - DynamicTagsJson - - - IsPushEnabled - - - TagWhitelistJson - - - TagsRequiringAuth - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResult - - - - - - - - - - - - Score - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResults - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueryUtterancesResults - - - - - - - - - - - - Query - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueueScaleRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.QueueScaleRule - - - - - - - - - - - - - - - QueueLength - - - QueueName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RampUpRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RampUpRule - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActionHostName - - - ChangeDecisionCallbackUrl - - - ChangeIntervalInMinute - - - ChangeStep - - - MaxReroutePercentage - - - MinReroutePercentage - - - Name - - - ReroutePercentage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Recommendation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Recommendation - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActionName - - - BladeName - - - CategoryTag - - - Channel - - - CreationTime - - - DisplayName - - - Enabled - - - EndTime - - - ExtensionName - - - ForwardLink - - - IsDynamic - - - Level - - - Message - - - NextNotificationTime - - - NotificationExpirationTime - - - NotifiedTime - - - RecommendationId - - - ResourceId - - - ResourceScope - - - RuleName - - - Score - - - StartTime - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRule - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRuleProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecommendationRuleProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActionName - - - BladeName - - - CategoryTag - - - Channel - - - Description - - - DisplayName - - - ExtensionName - - - ForwardLink - - - IsDynamic - - - Level - - - Message - - - RecommendationId - - - RecommendationName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceSchedule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceSchedule - - - - - - - - - - - - - - - - - - - - - Hour - - - Minute - - - MonthDay - - - WeekDay - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceScheduleOccurrence - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RecurrenceScheduleOccurrence - - - - - - - - - - - - - - - Day - - - Occurrence - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RegenerateActionParameter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RegenerateActionParameter - - - - - - - - - - - - KeyType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ReissueCertificateOrderRequestProperties - - - - - - - - - - - - - - - - - - - - - Csr - - - DelayExistingRevokeInHour - - - IsPrivateKeyExternal - - - KeySize - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntity - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntityProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RelayServiceConnectionEntityProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BiztalkUri - - - EntityConnectionString - - - EntityName - - - Hostname - - - Port - - - ResourceConnectionString - - - ResourceType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnection - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionArmResourceProperties - - - - - - - - - - - - - - - IPAddress - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RemotePrivateEndpointConnectionProperties - - - - - - - - - - - - - - - IPAddress - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Rendering - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Rendering - - - - - - - - - - - - - - - Description - - - Title - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RenewCertificateOrderRequestProperties - - - - - - - - - - - - - - - - - - Csr - - - IsPrivateKeyExternal - - - KeySize - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RepetitionIndex - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RepetitionIndex - - - - - - - - - - - - - - - ItemIndex - - - ScopeName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Request - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Request - - - - - - - - - - - - - - - Method - - - Uri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistory - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestHistoryProperties - - - - - - - - - - - - - - - EndTime - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestsBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RequestsBasedTrigger - - - - - - - - - - - - - - - Count - - - TimeInterval - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Resource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Resource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceCollection - - - - - - - - - - - - - - - NextLink - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceConfig - - - - - - - - - - - - - - - Cpu - - - Memory - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadata - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadata - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceHealthMetadataProperties - - - - - - - - - - - - - - - Category - - - SignalAvailability - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricAvailability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricAvailability - - - - - - - - - - - - - - - Retention - - - TimeGrain - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinition - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties1 - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceMetricDefinitionProperties1 - - - - - - - - - - - - - - - - - - PrimaryAggregationType - - - ResourceUri - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailability - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailabilityRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceNameAvailabilityRequest - - - - - - - - - - - - - - - - - - EnvironmentId - - - IsFqdn - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceReference - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceReference - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Response - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Response - - - - - - - - - - - - StatusCode - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnection - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - Status - - - Zone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnectionTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResponseMessageEnvelopeRemotePrivateEndpointConnectionTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RestoreRequestProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AdjustConnectionString - - - AppServicePlan - - - BlobName - - - HostingEnvironment - - - IgnoreConflictingHostName - - - IgnoreDatabase - - - OperationType - - - Overwrite - - - SiteName - - - StorageAccountUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RetryHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RetryHistory - - - - - - - - - - - - - - - - - - - - - - - - ClientRequestId - - - Code - - - EndTime - - - ServiceRequestId - - - StartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunActionCorrelation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunActionCorrelation - - - - - - - - - - - - - - - - - - ClientKeyword - - - ClientTrackingId - - - ActionTrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunCorrelation - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.RunCorrelation - - - - - - - - - - - - - - - ClientKeyword - - - ClientTrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SampleUtterance - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SampleUtterance - - - - - - - - - - - - - - - - - - Link - - - Qid - - - Text - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Scale - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Scale - - - - - - - - - - - - - - - MaxReplica - - - MinReplica - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRule - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRule - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRuleAuth - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ScaleRuleAuth - - - - - - - - - - - - - - - SecretRef - - - TriggerParameter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettings - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AadClaimsAuthorization - - - AdditionalLoginParam - - - AllowedAudience - - - AllowedExternalRedirectUrl - - - AuthFilePath - - - ClientId - - - ClientSecret - - - ClientSecretCertificateThumbprint - - - ClientSecretSettingName - - - ConfigVersion - - - DefaultProvider - - - Enabled - - - FacebookAppId - - - FacebookAppSecret - - - FacebookAppSecretSettingName - - - FacebookOAuthScope - - - GitHubClientId - - - GitHubClientSecret - - - GitHubClientSecretSettingName - - - GitHubOAuthScope - - - GoogleClientId - - - GoogleClientSecret - - - GoogleClientSecretSettingName - - - GoogleOAuthScope - - - IsAuthFromFile - - - Issuer - - - MicrosoftAccountClientId - - - MicrosoftAccountClientSecret - - - MicrosoftAccountClientSecretSettingName - - - MicrosoftAccountOAuthScope - - - RuntimeVersion - - - TokenRefreshExtensionHour - - - TokenStoreEnabled - - - TwitterConsumerKey - - - TwitterConsumerSecret - - - TwitterConsumerSecretSettingName - - - UnauthenticatedClientAction - - - ValidateIssuer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsV2 - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteAuthSettingsV2 - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneability - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneability - - - - - - - - - - - - Result - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneabilityCriterion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteCloneabilityCriterion - - - - - - - - - - - - - - - Description - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AcrUseManagedIdentityCred - - - AcrUserManagedIdentityId - - - AlwaysOn - - - AppCommandLine - - - AutoHealEnabled - - - AutoSwapSlotName - - - DefaultDocument - - - DetailedErrorLoggingEnabled - - - DocumentRoot - - - ElasticWebAppScaleLimit - - - FtpsState - - - FunctionAppScaleLimit - - - FunctionsRuntimeScaleMonitoringEnabled - - - HealthCheckPath - - - Http20Enabled - - - HttpLoggingEnabled - - - IPSecurityRestrictionsDefaultAction - - - JavaContainer - - - JavaContainerVersion - - - JavaVersion - - - KeyVaultReferenceIdentity - - - LinuxFxVersion - - - LoadBalancing - - - LocalMySqlEnabled - - - LogsDirectorySizeLimit - - - ManagedPipelineMode - - - ManagedServiceIdentityId - - - MinTlsCipherSuite - - - MinTlsVersion - - - MinimumElasticInstanceCount - - - NetFrameworkVersion - - - NodeVersion - - - NumberOfWorker - - - PhpVersion - - - PowerShellVersion - - - PreWarmedInstanceCount - - - PublicNetworkAccess - - - PublishingUsername - - - PythonVersion - - - RemoteDebuggingEnabled - - - RemoteDebuggingVersion - - - RequestTracingEnabled - - - RequestTracingExpirationTime - - - ScmIPSecurityRestrictionsDefaultAction - - - ScmIPSecurityRestrictionsUseMain - - - ScmMinTlsVersion - - - ScmType - - - TracingOption - - - Use32BitWorkerProcess - - - VnetName - - - VnetPrivatePortsCount - - - VnetRouteAllEnabled - - - WebSocketsEnabled - - - WebsiteTimeZone - - - WindowsFxVersion - - - XManagedServiceIdentityId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigPropertiesDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigPropertiesDictionary - - - - - - - - - - - - - - - - - - - - - JavaVersion - - - LinuxFxVersion - - - PowerShellVersion - - - Use32BitWorkerProcess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResourceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigResourceCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfigurationSnapshotInfoProperties - - - - - - - - - - - - - - - SnapshotId - - - Time - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainer - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainer - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteContainerProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthType - - - CreatedTime - - - Image - - - IsMain - - - LastModifiedTime - - - PasswordSecret - - - StartUpCommand - - - TargetPort - - - UserManagedIdentityClientId - - - UserName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteDnsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteDnsConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - DnsAltServer - - - DnsLegacySortOrder - - - DnsMaxCacheTimeout - - - DnsRetryAttemptCount - - - DnsRetryAttemptTimeout - - - DnsServer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfo - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteExtensionInfoProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Author - - - Comment - - - Description - - - DownloadCount - - - ExtensionId - - - ExtensionType - - - ExtensionUrl - - - FeedUrl - - - IconUrl - - - InstalledDateTime - - - InstallerCommandLineParam - - - LicenseUrl - - - LocalIsLatestVersion - - - LocalPath - - - ProjectUrl - - - ProvisioningState - - - PublishedDateTime - - - Summary - - - Title - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLimits - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLimits - - - - - - - - - - - - - - - - - - MaxDiskSizeInMb - - - MaxMemoryInMb - - - MaxPercentageCpu - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLogsConfig - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteLogsConfig - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteMachineKey - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteMachineKey - - - - - - - - - - - - - - - - - - - - - Decryption - - - DecryptionKey - - - Validation - - - ValidationKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePatchResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailabilityState - - - ClientAffinityEnabled - - - ClientCertEnabled - - - ClientCertExclusionPath - - - ClientCertMode - - - ContainerSize - - - CustomDomainVerificationId - - - DailyMemoryTimeQuota - - - DefaultHostName - - - Enabled - - - EnabledHostName - - - HostName - - - HostNamesDisabled - - - HttpsOnly - - - HyperV - - - InProgressOperationId - - - IsDefaultContainer - - - IsXenon - - - KeyVaultReferenceIdentity - - - LastModifiedTimeUtc - - - MaxNumberOfWorker - - - OutboundIPAddress - - - PossibleOutboundIPAddress - - - RedundancyMode - - - RepositorySiteName - - - Reserved - - - ResourceGroup - - - ScmSiteAlsoStopped - - - ServerFarmId - - - State - - - StorageAccountRequired - - - SuspendedTill - - - TargetSwapSlot - - - TrafficManagerHostName - - - UsageState - - - VirtualNetworkSubnetId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlag - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlag - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlagProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SitePhpErrorLogFlagProperties - - - - - - - - - - - - - - - - - - - - - LocalLogError - - - LocalLogErrorsMaxLength - - - MasterLogError - - - MasterLogErrorsMaxLength - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailabilityState - - - ClientAffinityEnabled - - - ClientCertEnabled - - - ClientCertExclusionPath - - - ClientCertMode - - - ContainerSize - - - CustomDomainVerificationId - - - DailyMemoryTimeQuota - - - DefaultHostName - - - Enabled - - - EnabledHostName - - - HostName - - - HostNamesDisabled - - - HttpsOnly - - - HyperV - - - InProgressOperationId - - - IsDefaultContainer - - - IsXenon - - - KeyVaultReferenceIdentity - - - LastModifiedTimeUtc - - - ManagedEnvironmentId - - - MaxNumberOfWorker - - - OutboundIPAddress - - - PossibleOutboundIPAddress - - - PublicNetworkAccess - - - RedundancyMode - - - RepositorySiteName - - - Reserved - - - ResourceGroup - - - ScmSiteAlsoStopped - - - ServerFarmId - - - State - - - StorageAccountRequired - - - SuspendedTill - - - TargetSwapSlot - - - TrafficManagerHostName - - - UsageState - - - VirtualNetworkSubnetId - - - VnetBackupRestoreEnabled - - - VnetContentShareEnabled - - - VnetImagePullEnabled - - - VnetRouteAllEnabled - - - WorkloadProfileName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSeal - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSeal - - - - - - - - - - - - Html - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSealRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSealRequest - - - - - - - - - - - - - - - LightTheme - - - Locale - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControl - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControl - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControlProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteSourceControlProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - Branch - - - DeploymentRollbackEnabled - - - IsGitHubAction - - - IsManualIntegration - - - IsMercurial - - - RepoUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuCapacity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuCapacity - - - - - - - - - - - - - - - - - - - - - - - - Default - - - ElasticMaximum - - - Maximum - - - Minimum - - - ScaleType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuDescription - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuDescription - - - - - - - - - - - - - - - - - - - - - - - - - - - Capacity - - - Family - - - Location - - - Name - - - Size - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfo - - - - - - - - - - - - ResourceType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfoCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfoCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfos - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SkuInfos - - - - - - - - - - - - ResourceType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNames - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNames - - - - - - - - - - - - - - - - - - AppSettingName - - - AzureStorageConfigName - - - ConnectionStringName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNamesResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotConfigNamesResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifference - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifference - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotDifferenceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Description - - - DiffRule - - - Level - - - SettingName - - - SettingType - - - ValueInCurrentSlot - - - ValueInTargetSlot - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotSwapStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlotSwapStatus - - - - - - - - - - - - - - - - - - DestinationSlotName - - - SourceSlotName - - - TimestampUtc - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlowRequestsBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SlowRequestsBasedTrigger - - - - - - - - - - - - - - - - - - - - - Count - - - Path - - - TimeInterval - - - TimeTaken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Snapshot - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Snapshot - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotProperties - - - - - - - - - - - - Time - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRecoverySource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRecoverySource - - - - - - - - - - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SnapshotRestoreRequestProperties - - - - - - - - - - - - - - - - - - - - - - - - IgnoreConflictingHostName - - - Overwrite - - - RecoverConfiguration - - - SnapshotTime - - - UseDrSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Solution - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Solution - - - - - - - - - - - - - - - - - - Description - - - DisplayName - - - Order - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControl - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControl - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SourceControlProperties - - - - - - - - - - - - - - - - - - - - - ExpirationTime - - - RefreshToken - - - Token - - - TokenSecret - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMajorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMajorVersion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApplicationInsight - - - DisplayVersion - - - IsDefault - - - IsDeprecated - - - IsHidden - - - IsPreview - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMinorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StackMinorVersion - - - - - - - - - - - - - - - - - - - - - DisplayVersion - - - IsDefault - - - IsRemoteDebuggingEnabled - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AvailableCapacity - - - ComputeMode - - - ExcludeFromCapacityAllocation - - - IsApplicableForAllComputeMode - - - IsLinux - - - Name - - - SiteMode - - - TotalCapacity - - - Unit - - - WorkerSize - - - WorkerSizeId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacityCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StampCapacityCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSite - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSite - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowConfigFileUpdate - - - Branch - - - ContentDistributionEndpoint - - - CustomDomain - - - DefaultHostname - - - EnterpriseGradeCdnStatus - - - KeyVaultReferenceIdentity - - - Provider - - - PublicNetworkAccess - - - RepositoryToken - - - RepositoryUrl - - - StagingEnvironmentPolicy - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteArmResource - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesArmResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - ApplicableEnvironmentsMode - - - Environment - - - Password - - - SecretState - - - SecretUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBasicAuthPropertiesCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildArmResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BuildId - - - CreatedTimeUtc - - - Hostname - - - LastUpdatedOn - - - PullRequestTitle - - - SourceBranch - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteBuildProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApiBuildCommand - - - ApiLocation - - - AppArtifactLocation - - - AppBuildCommand - - - AppLocation - - - GithubActionSecretNameOverride - - - OutputLocation - - - SkipGithubActionWorkflowGeneration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewArmResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - CreatedOn - - - DomainName - - - ErrorMessage - - - Status - - - ValidationToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainOverviewCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteCustomDomainRequestPropertiesArmResourceProperties - - - - - - - - - - - - ValidationMethod - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteDatabaseConnectionConfigurationFileOverview - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteDatabaseConnectionConfigurationFileOverview - - - - - - - - - - - - - - - Content - - - FileName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewArmResourceProperties - - - - - - - - - - - - - - - FunctionName - - - TriggerType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteFunctionOverviewCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackend - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackend - - - - - - - - - - - - - - - - - - - - - BackendResourceId - - - CreatedOn - - - ProvisioningState - - - Region - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendArmResourceProperties - - - - - - - - - - - - - - - - - - - - - BackendResourceId - - - CreatedOn - - - ProvisioningState - - - Region - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendsCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteLinkedBackendsCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitePatchResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitePatchResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteResetPropertiesArmResourceProperties - - - - - - - - - - - - - - - RepositoryToken - - - ShouldUpdateRepository - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreview - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreview - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewProperties - - - - - - - - - - - - - - - Content - - - Path - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequest - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequestProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSitesWorkflowPreviewRequestProperties - - - - - - - - - - - - - - - Branch - - - RepositoryUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteTemplateOptions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteTemplateOptions - - - - - - - - - - - - - - - - - - - - - - - - Description - - - IsPrivate - - - Owner - - - RepositoryName - - - TemplateRepositoryUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserArmResourceProperties - - - - - - - - - - - - - - - - - - - - - DisplayName - - - Provider - - - Role - - - UserId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationRequestResourceProperties - - - - - - - - - - - - - - - - - - - - - - - - Domain - - - NumHoursToExpiration - - - Provider - - - Role - - - UserDetail - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserInvitationResponseResourceProperties - - - - - - - - - - - - - - - ExpiresOn - - - InvitationUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionApp - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionApp - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppArmResourceProperties - - - - - - - - - - - - - - - - - - CreatedOn - - - FunctionAppRegion - - - FunctionAppResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppProperties - - - - - - - - - - - - - - - - - - CreatedOn - - - FunctionAppRegion - - - FunctionAppResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppsCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteUserProvidedFunctionAppsCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeployment - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeployment - - - - - - - - - - - - - - - - - - - - - - - - ApiZipUrl - - - AppZipUrl - - - DeploymentTitle - - - FunctionLanguage - - - Provider - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeploymentArmResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StaticSiteZipDeploymentArmResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Status - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Status - - - - - - - - - - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesBasedTrigger - - - - - - - - - - - - - - - - - - - - - - - - - - - Count - - - Path - - - Status - - - SubStatus - - - TimeInterval - - - Win32Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesRangeBasedTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StatusCodesRangeBasedTrigger - - - - - - - - - - - - - - - - - - - - - Count - - - Path - - - StatusCode - - - TimeInterval - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptions - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptions - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptionsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationOptionsProperties - - - - - - - - - - - - - - - - - - - - - AzurefilesConnectionString - - - AzurefilesShare - - - BlockWriteAccessToSite - - - SwitchSiteAfterMigration - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponse - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponseProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StorageMigrationResponseProperties - - - - - - - - - - - - OperationId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionary - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionary - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionaryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionaryProperties - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringList - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringList - - - - - - - - - - - - - - - - - - Kind - - - Name - - - Property - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SupportTopic - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SupportTopic - - - - - - - - - - - - PesId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetwork - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetwork - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetworkProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SwiftVirtualNetworkProperties - - - - - - - - - - - - - - - SubnetResourceId - - - SwiftSupported - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Template - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Template - - - - - - - - - - - - RevisionSuffix - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreement - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreement - - - - - - - - - - - - - - - - - - - - - AgreementKey - - - Content - - - Title - - - Url - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreementCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TldLegalAgreementCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TokenStore - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TokenStore - - - - - - - - - - - - - - - Enabled - - - TokenRefreshExtensionHour - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomain - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomain - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainAgreementOption - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainAgreementOption - - - - - - - - - - - - - - - ForTransfer - - - IncludePrivacy - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TopLevelDomainProperties - - - - - - - - - - - - Privacy - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistory - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistoryCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobHistoryCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobRun - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredJobRun - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Duration - - - EndTime - - - ErrorUrl - - - JobName - - - OutputUrl - - - StartTime - - - Status - - - Trigger - - - Url - - - WebJobId - - - WebJobName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJob - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJob - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TriggeredWebJobProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Error - - - ExtraInfoUrl - - - HistoryUrl - - - PublicNetworkAccess - - - RunCommand - - - SchedulerLogsUrl - - - StorageAccountRequired - - - Url - - - UsingSdk - - - WebJobType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Twitter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Twitter - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TwitterRegistration - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.TwitterRegistration - - - - - - - - - - - - - - - ConsumerKey - - - ConsumerSecretSettingName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Usage - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Usage - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UsageProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ComputeMode - - - CurrentValue - - - DisplayName - - - Limit - - - NextResetTime - - - ResourceName - - - SiteMode - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.User - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.User - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserAssignedIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserAssignedIdentity - - - - - - - - - - - - - - - ClientId - - - PrincipalId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.UserProperties - - - - - - - - - - - - - - - PublishingUserName - - - ScmUri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Capacity - - - ContainerImagePlatform - - - ContainerImageRepository - - - ContainerImageTag - - - ContainerRegistryBaseUrl - - - ContainerRegistryPassword - - - ContainerRegistryUsername - - - HostingEnvironment - - - IsSpot - - - IsXenon - - - NeedLinuxWorker - - - ServerFarmId - - - SkuName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateRequest - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateRequest - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponse - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponse - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponseError - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ValidateResponseError - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualApplication - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualApplication - - - - - - - - - - - - - - - - - - PhysicalPath - - - PreloadEnabled - - - VirtualPath - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualDirectory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualDirectory - - - - - - - - - - - - - - - PhysicalPath - - - VirtualPath - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualIPMapping - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualIPMapping - - - - - - - - - - - - - - - - - - - - - - - - InUse - - - InternalHttpPort - - - InternalHttpsPort - - - ServiceName - - - VirtualIP - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualNetworkProfile - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VirtualNetworkProfile - - - - - - - - - - - - - - - Name - - - Subnet - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGateway - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGateway - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGatewayProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetGatewayProperties - - - - - - - - - - - - - - - VnetName - - - VpnPackageUri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfo - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - CertBlob - - - CertThumbprint - - - DnsServer - - - IsSwift - - - ResyncRequired - - - VnetResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfoResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetInfoResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParameters - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParameters - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParametersProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetParametersProperties - - - - - - - - - - - - - - - - - - - - - SubnetResourceId - - - VnetName - - - VnetResourceGroup - - - VnetSubnetName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRoute - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRoute - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRouteProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetRouteProperties - - - - - - - - - - - - - - - - - - EndAddress - - - RouteType - - - StartAddress - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetails - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetails - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetailsProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationFailureDetailsProperties - - - - - - - - - - - - - - - Failed - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailure - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailure - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailureProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VnetValidationTestFailureProperties - - - - - - - - - - - - - - - Detail - - - TestName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VolumeMount - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.VolumeMount - - - - - - - - - - - - - - - - - - - - - ContainerMountPath - - - Data - - - ReadOnly - - - VolumeSubPath - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppInstanceStatusCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppInstanceStatusCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMajorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMajorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMinorVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppMinorVersion - - - - - - - - - - - - - - - DisplayText - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppRuntimeSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppRuntimeSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - RemoteDebuggingSupported - - - RuntimeVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStack - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStack - - - - - - - - - - - - - - - - - - Kind - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebAppStackProperties - - - - - - - - - - - - - - - - - - DisplayText - - - PreferredOS - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJob - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJob - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebJobProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - Error - - - ExtraInfoUrl - - - RunCommand - - - Url - - - UsingSdk - - - WebJobType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatus - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatus - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatusProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WebSiteInstanceStatusProperties - - - - - - - - - - - - - - - - - - - - - - - - ConsoleUrl - - - DetectorUrl - - - HealthCheckUrl - - - State - - - StatusUrl - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WindowsJavaContainerSettings - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WindowsJavaContainerSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EndOfLifeDate - - - IsAutoUpdate - - - IsDeprecated - - - IsEarlyAccess - - - IsHidden - - - IsPreview - - - JavaContainer - - - JavaContainerVersion - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPool - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPool - - - - - - - - - - - - - - - - - - - - - - - - ComputeMode - - - InstanceName - - - WorkerCount - - - WorkerSize - - - WorkerSizeId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkerPoolResource - - - - - - - - - - - - - - - Kind - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Workflow - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Workflow - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowArtifacts - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowArtifacts - - - - - - - - - - - - FilesToDelete - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelope - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelope - - - - - - - - - - - - - - - - - - Kind - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowEnvelopeProperties - - - - - - - - - - - - FlowState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowFilter - - - - - - - - - - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowHealth - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowHealth - - - - - - - - - - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowOutputParameter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowOutputParameter - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowParameter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowParameter - - - - - - - - - - - - Description - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessEndpoint - - - ChangedTime - - - CreatedTime - - - Kind - - - ProvisioningState - - - State - - - Version - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResource - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResource - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowResourceTags - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRun - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRun - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunAction - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunAction - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionFilter - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionProperties - - - - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinition - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinitionCollection - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionDefinitionCollection - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunActionRepetitionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationActionTrackingId - - - CorrelationClientKeyword - - - CorrelationClientTrackingId - - - EndTime - - - InputLinkContentSize - - - InputLinkContentVersion - - - InputLinkUri - - - InputsLinkContentHashAlgorithm - - - InputsLinkContentHashValue - - - IterationCount - - - OutputLinkContentSize - - - OutputLinkContentVersion - - - OutputLinkUri - - - OutputsLinkContentHashAlgorithm - - - OutputsLinkContentHashValue - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunFilter - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationId - - - EndTime - - - StartTime - - - Status - - - WaitEndTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowRunTrigger - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - Name - - - ScheduledTime - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowSku - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowSku - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTrigger - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTrigger - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerCallbackUrl - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerCallbackUrl - - - - - - - - - - - - - - - - - - - - - - - - BasePath - - - Method - - - RelativePath - - - RelativePathParameter - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerFilter - - - - - - - - - - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistory - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistory - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryFilter - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryFilter - - - - - - - - - - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerHistoryProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - EndTime - - - Fired - - - ScheduledTime - - - StartTime - - - Status - - - TrackingId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListCallbackUrlQueries - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListCallbackUrlQueries - - - - - - - - - - - - - - - - - - - - - - - - ApiVersion - - - Se - - - Sig - - - Sp - - - Sv - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ChangedTime - - - CreatedTime - - - LastExecutionTime - - - NextExecutionTime - - - ProvisioningState - - - State - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerRecurrence - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowTriggerRecurrence - - - - - - - - - - - - - - - - - - - - - - - - EndTime - - - Frequency - - - Interval - - - StartTime - - - TimeZone - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersion - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersion - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionListResult - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionListResult - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.WorkflowVersionProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessEndpoint - - - ChangedTime - - - CreatedTime - - - ProvisioningState - - - State - - - Version - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.psm1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.psm1 deleted file mode 100644 index d5e3b4363b96..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/Az.Functions.psm1 +++ /dev/null @@ -1,337 +0,0 @@ -# region Generated - # ---------------------------------------------------------------------------------- - # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. - # ---------------------------------------------------------------------------------- - # Load required Az.Accounts module - $accountsName = 'Az.Accounts' - $accountsModule = Get-Module -Name $accountsName - if(-not $accountsModule) { - $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules' - if(Test-Path -Path $localAccountsPath) { - $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 - if($localAccounts) { - $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru - } - } - if(-not $accountsModule) { - $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 - if($hasAdequateVersion) { - $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru - } - } - } - - if(-not $accountsModule) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://learn.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop - } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop - } - Write-Information "Loaded Module '$($accountsModule.Name)'" - - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.Functions.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Functions.Module]::Instance - - # Ask for the shared functionality table - $VTable = Register-AzModule - - # Tweaks the pipeline on module load - $instance.OnModuleLoad = $VTable.OnModuleLoad - - # Following two delegates are added for telemetry - $instance.GetTelemetryId = $VTable.GetTelemetryId - $instance.Telemetry = $VTable.Telemetry - - # Delegate to sanitize the output object - $instance.SanitizeOutput = $VTable.SanitizerHandler - - # Delegate to get the telemetry info - $instance.GetTelemetryInfo = $VTable.GetTelemetryInfo - - # Tweaks the pipeline per call - $instance.OnNewRequest = $VTable.OnNewRequest - - # Gets shared parameter values - $instance.GetParameterValue = $VTable.GetParameterValue - - # Allows shared module to listen to events from this module - $instance.EventListener = $VTable.EventListener - - # Gets shared argument completers - $instance.ArgumentCompleter = $VTable.ArgumentCompleter - - # The name of the currently selected Azure profile - $instance.ProfileName = $VTable.ProfileName - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Az.Functions.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIkG77Mivd8H5w -# UkvPP+E8qQCCeiXE7G1Yu6KXWtC+3aCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIDD2DxGt3YaYFLkuW0RVSApJ -# IXWk4mz3Kc6gVi15vOprMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAX8cLw0/aWCtBP1KcIFoGEOMiLLpVuyd4YpxoHzj5mxFXq9ObomD7kH7J -# jMFMLAsItmU9cw+86Wi0iz1ZmYPbVTH+Gq4JrReETREFcapr1Mp+jsMFKbwBmVQ1 -# ZbubzlVABC75uiU6PKvE9iHcQx47+Di3YXOLTGRrEm6kSt5dg6NPrsTjA2exYy7y -# i6FYwviz3XRUp2X1dKMq7x+4UbvWVuGUT+aKGlSTjZoZYuIWzvfu/ziP0PKPM+Yf -# mQEmOdqYorV2fs+NQwGbFcJsiK9s/6ZxywAbMcRVz80wTn+BvLTWBCxJiNnNAVxq -# IvW/dBlB4rf3S9RH0jpfTOSpACSzJqGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCADMp2pKa4c8G5awuHA/b/+awZOjhqS/R+1MP4EGp05RAIGZ1rYDqNP -# GBMyMDI1MDEwOTA2MzY0My40NjlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAevgGGy1tu847QABAAAB6zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzRaFw0yNTAzMDUxODQ1MzRaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDBFWgh2lbgV3eJp01oqiaFBuYbNc7hSKmktvJ15NrB -# /DBboUow8WPOTPxbn7gcmIOGmwJkd+TyFx7KOnzrxnoB3huvv91fZuUugIsKTnAv -# g2BU/nfN7Zzn9Kk1mpuJ27S6xUDH4odFiX51ICcKl6EG4cxKgcDAinihT8xroJWV -# ATL7p8bbfnwsc1pihZmcvIuYGnb1TY9tnpdChWr9EARuCo3TiRGjM2Lp4piT2lD5 -# hnd3VaGTepNqyakpkCGV0+cK8Vu/HkIZdvy+z5EL3ojTdFLL5vJ9IAogWf3XAu3d -# 7SpFaaoeix0e1q55AD94ZwDP+izqLadsBR3tzjq2RfrCNL+Tmi/jalRto/J6bh4f -# PhHETnDC78T1yfXUQdGtmJ/utI/ANxi7HV8gAPzid9TYjMPbYqG8y5xz+gI/SFyj -# +aKtHHWmKzEXPttXzAcexJ1EH7wbuiVk3sErPK9MLg1Xb6hM5HIWA0jEAZhKEyd5 -# hH2XMibzakbp2s2EJQWasQc4DMaF1EsQ1CzgClDYIYG6rUhudfI7k8L9KKCEufRb -# K5ldRYNAqddr/ySJfuZv3PS3+vtD6X6q1H4UOmjDKdjoW3qs7JRMZmH9fkFkMzb6 -# YSzr6eX1LoYm3PrO1Jea43SYzlB3Tz84OvuVSV7NcidVtNqiZeWWpVjfavR+Jj/J -# OQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHSeBazWVcxu4qT9O5jT2B+qAerhMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCDdN8voPd8C+VWZP3+W87c/QbdbWK0sOt9 -# Z4kEOWng7Kmh+WD2LnPJTJKIEaxniOct9wMgJ8yQywR8WHgDOvbwqdqsLUaM4Nre -# rtI6FI9rhjheaKxNNnBZzHZLDwlkL9vCEDe9Rc0dGSVd5Bg3CWknV3uvVau14F55 -# ESTWIBNaQS9Cpo2Opz3cRgAYVfaLFGbArNcRvSWvSUbeI2IDqRxC4xBbRiNQ+1qH -# XDCPn0hGsXfL+ynDZncCfszNrlgZT24XghvTzYMHcXioLVYo/2Hkyow6dI7uULJb -# KxLX8wHhsiwriXIDCnjLVsG0E5bR82QgcseEhxbU2d1RVHcQtkUE7W9zxZqZ6/jP -# maojZgXQO33XjxOHYYVa/BXcIuu8SMzPjjAAbujwTawpazLBv997LRB0ZObNckJY -# yQQpETSflN36jW+z7R/nGyJqRZ3HtZ1lXW1f6zECAeP+9dy6nmcCrVcOqbQHX7Zr -# 8WPcghHJAADlm5ExPh5xi1tNRk+i6F2a9SpTeQnZXP50w+JoTxISQq7vBij2nitA -# sSLaVeMqoPi+NXlTUNZ2NdtbFr6Iir9ZK9ufaz3FxfvDZo365vLOozmQOe/Z+pu4 -# vY5zPmtNiVIcQnFy7JZOiZVDI5bIdwQRai2quHKJ6ltUdsi3HjNnieuE72fT4eWh -# xtmnN5HYCDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkEwMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCA -# Bol1u1wwwYgUtUowMnqYvbul3qCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymWNTAiGA8yMDI1MDEwOTAwMjYy -# OVoYDzIwMjUwMTEwMDAyNjI5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKZY1 -# AgEAMAcCAQACAhUpMAcCAQACAhMJMAoCBQDrKue1AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAIHAmhLTSl+tqfMPnHFg24foG1zMFnOXn0DIotbJRVZDtlhF -# nPqSqCYuWMG+vt5lcw61eK9qKCrEL1Z3DME2BYjzUw4pvqj9S4ij9UXBcY7EsuZF -# xKynfZfrdMCTOQx8920OBKrkMuEZQIyhTbNOGFKIbVqAF1ZuNWC3k3d938tCrz6k -# O5nVvlHq0eMKKt0dmLBFNI5t6CmeGfb0gGg5/DxT5b7DLoU2WO/iX3YhbPO8FNpc -# g+onP0f7LP1tI4/67GHNCchp1IYsV2KHZ7V50TN63bGfo1U4AWWahgpxKX44Wl5K -# RAfCFw4sMxpUmJCvGkkLX92WpRPfW0D8+81HOZQxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAevgGGy1tu847QABAAAB6zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCDMt2LscXBvZwgRd1ikORdAG8ha44i2AWWa9/bqUf9NcjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM63a75faQPhf8SBDTtk2DSUgIbd -# izXsz76h1JdhLCz4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHr4BhstbbvOO0AAQAAAeswIgQg3a/qZy5c5u5kLf4EWs4lzDywFVJR -# 2BigcuxSIs4sgoQwDQYJKoZIhvcNAQELBQAEggIAIHwmB3dlcL1hgE5jw1yfMJQK -# EIEaNUJxSIqZH83894fjY9lyjnSAjFtdzRU5Z0Mwh3RKF1MuPEXWfOTz/DB3uydX -# DGjzkVYgdkBNpJErQgJfX4QA9XRMPX0i/pZjZM/SFDUAkeJ6WlzEN1lb1tC3YFf+ -# JZMwk3uPMBOVGxm/1YrBaJbSZBqc+0OFHXxOVtlwfQ2hYYG7Jv3ShsK733ApTl7b -# GtKNrjrj7nNond9akh6KRsFTqBNjFpTLQa2Gvsoeaxc4zU9xlR9FdkVtmRmhDdwR -# I4oZD7EMihjUDccVaPAXgfAiOnhjlSE4+FMJlQE78qbADTnVLA69WEE53fatsczV -# hp4VocmBs6ukdE3IUqRQl+avw6d5iR87D54hP6fVJdGb4fG/5pEEQkwj8794iPiX -# cvKjVZqyOv8yqI5uM26eWjCHiFsosDL0aZp6o7Kt9/U4W346k9MO3oX8nnBoZC9r -# O8oxU1SwApRgBKHB74GQeowM+5lj8rBV3trTqKUn7SeWi3VpV8saAAyhpahfFWrj -# IPDrqruVhRHuh2sR30EAdlYArUU59TpYvPzg2IQLDnug5NA+Jh5Qxs/+N6X3i55E -# A/6F+B5JBLHye6mMDSa4dneRxpumosi+atPxdojkQ9Z8smEQvElLnBbEPuXUG2Rz -# zIEn39f8RQuqJyt+EzE= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/bin/Az.Functions.private.dll b/Modules/Az.Functions/4.2.0/Functions.Autorest/bin/Az.Functions.private.dll deleted file mode 100644 index 6580d9029110..000000000000 Binary files a/Modules/Az.Functions/4.2.0/Functions.Autorest/bin/Az.Functions.private.dll and /dev/null differ diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/AppServicePlan.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/AppServicePlan.cs deleted file mode 100644 index 1e527dc9efef..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/AppServicePlan.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201 -{ - public partial class AppServicePlan : - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlanInternal, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.IValidates - { - // This gets set via PowerShell. For more info, please see custom/HelperScripts/HelperFunctions.ps1 - /// The Service plan worker type. - public string WorkerType { get; set; } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/Site.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/Site.cs deleted file mode 100644 index 03f6f7a718f5..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Api20231201/Site.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201 -{ - public partial class Site : - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteInternal, - Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.IValidates - { - - // Function app settings. These gets set via PowerShell. For more info, please see custom/HelperScripts/HelperFunctions.ps1 - - public System.Collections.Hashtable ApplicationSettings { get; set; } - - public System.Collections.Hashtable SiteConfig { get; set; } - - public string Runtime { get; set; } - - public string OSType { get; set; } - - public string AppServicePlan { get; set; } - - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Az.Functions.custom.psm1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Az.Functions.custom.psm1 deleted file mode 100644 index 314cfd221d34..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Az.Functions.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Functions.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Az.Functions.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC/ZwXlMNo/NO4b -# orjLo8kSlKIAg1cHes2N4DKjOSOdhaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIH4/ImHkbdSWfASnTq1HBkVn -# S0Peht6aq6Hm0AHX52nZMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAlLxUTFESZNThwGSDLOSPj5X0+s5bt2NFPuNz5dpcijLajzGUTnj3RITB -# 3ydgowjRv97bNGHi7fG1XemvnwKZEv3kcvOHFXm+K5kSw8T4tUMZS39tPIJjLwv2 -# D75UbS4z7+0J1Is47Wiwv1PGlXHHQC5QHiykoqYvugDE5rcPS0lAPzFMA146uFxm -# ycdmCjlxI1V3bgm3ryh+kmYsZ4TPnspyUIBnDtLoi/qPhTEtfep2cbhAAOcJXBIF -# jCIDNqx9WCK5VW99yY2Ive+LAOG8aZEpAoz8/szyIHGB245BNTA2ST4wwChTnjlx -# Xz5gKfxlOxxOW7xREB1xt/7RvcGaI6GCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDpxRq+80oMBG3xZcr5+b+Z+JQtR1aLQXr8a47Z7yM1QwIGZ2f84IIG -# GBIyMDI1MDEwOTA2MzY0Ny44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB6pokctVZP2FjAAEAAAHqMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUz -# MFoXDTI1MDMwNTE4NDUzMFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBALULX/FIPyAH1fsu52ijatZvaSypoXrlC0mRtCmaxzob -# huDkw6/pY/+4nhc4m8pf9zW3R6PihYGp0YPpVuNdfhPQp/KVO6WvMq2DGfFmHurW -# 4PQPL/DkbQMkM9vqjFCvPq8xXZnfL1nGN9moGcN+oaif/hUMedmF1qzbay9ILkYf -# LCxDYn3Qwzsvh5xjxOcsjzmRddNURJvT23Eva0cxisH4ocLLTx2zfpqfshw4Z9Ga -# EdsWg9rmib1galUpLzF5PsQDBbtZtcv+Wjmn0pFEiMCWwEEcPVN0YG5ysYLdNBdJ -# On2zsOOS+80W5RrQEqzPpSIIvEkZBJmF3aI4lMR8nV/FiTadjpIIqxX5Wa1XlqI/ -# Nj+xagVjnjb7POsA+vh6Wu+v24HpyL8pyL/8Q4RFkRRME9cwT+Jr63yOtPbLe6DX -# kxIJW6E6w2ua5kXBpEKtEQPTLPhX3CUxMYcglbnmI0zcc9UknX285K+sI/2WwRwT -# BZkhDUULI86eQzV+zvzzR1qEBrlSY+oyTlYQrHMM9WnTzVflFDocZVTPpl2BDSNx -# Pn0Qb4IoM9EPqbHyi/MilL+v/AQc8q3mQ6FiuPJAddz0ocpNZ9ekBWPVLKq3lfie -# v4yl65u/438+NAQ+vSJgkONLMmuoguEGzmnK1vq/JHwdRUyn6YADiteM7Dja+Qd9 -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUK4FFJaJR5ukXQFTUxMhyiwVuWV4wHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBACiDrVZeP37+fFVtfcbfsqC/Kg0Ce67bDceh -# ZmPcfRgJ5Ddv0pJlOFVOFbiIVwesqeEUwFtclfi5AjneQ5ZJpYJpXfELOelG3dzj -# +BKfd287/UY/cwmSkl+CjnoKBL3Ms6I/fWR+alR0+p6RlviK8xHoug9vkc2WrRZs -# GnMVu2xOM2tPJ+qpyoDBzqv30N/ZRBOoNrS/PCkDwLGICDYqVs/IzAE49yv2ElPy -# walf9mEsOHXV1lxtQDNcejVEmitJJ+1Vr2EtafPEbMQZp89TAuagROKE4YuohCUK -# m+v3geJqTQarTBjqV25RCOT+XFngTMDD9wYx6TwndB2I1Ly726NiHUHs0uvq3ciC -# V9JwNXdt1VZ63WK1NSgpVEsiK9EPABPt1EfXcKrfaPYkbkFi79eK1ETxx3NomYNU -# HNiGU+X1Be8L7qpHwjo0g3/33XhtOr9LiDoUXh/V2LFTETiqV9Q8yLEavQW3j9LQ -# /h/CaGz5YdGfrY8HiPfMIeLEokKxGf0hHcTEFApB0yLlq6KoHrFAEANR/4XuFIpl -# 9sDywVIWt4tKqG+P6pRAXzg1zG5rGlslZWmw7XwgvhBu3jkLP9AxrsSYwY2ftrww -# ze5NA6VDLS7pz+OrXXWLUmoyNrJNx5Bk0wEwzkQxzkOvmbdPhsOP1ZM0uA/xIV7c -# SpNpZUw5MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAInb -# HtxB+OlGyQnxQYhy04KSYSSPoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKYy6MCIYDzIwMjUwMTA4MjM0NjAy -# WhgPMjAyNTAxMDkyMzQ2MDJaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspjLoC -# AQAwBwIBAAICKWYwBwIBAAICE0wwCgIFAOsq3joCAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEAPzYOqsYoF4vIH+qFoefmwvzgHqMi9mzhL5Ns4u1zJ5vY4ZS8 -# k9AtuzZuhZVjfXE27tgL5I7mje8xEQtw4RCWX8PQEEA52SGh442mh4wYnLrj7uSP -# yI7wdXwFkXkOJta8GQ7kP4jzoHDaM6ebP4znIqr8QUyo+OmL6bBhnFQt9Hu4INQ5 -# HDrGQJ3S1tsGrBHwMhYnZEwur4iJeBnp0J+1riv/IMUgSt2x6aw0dJjAqj34+PU9 -# dultTkWxQblIwUIKRDsqXV2+Y6eOdLsSeiLX5nSStkIgPUKlyuuycTVAqRv5y0PW -# Yg0NoxmLKmig0DruHImo12kfbim+rM3wijnknzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB6pokctVZP2FjAAEAAAHqMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIOrDQ1sJehwwg8w6aAMkVvAWIowekevxNEIm+NRASlYsMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgKY+h1eNkNHiLCDSW0sA1cGHkbW4q -# ooi+ryyMp6S4ZngwgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAeqaJHLVWT9hYwABAAAB6jAiBCDEuGX8o4H1v7nIXWx+VCpEdZPl9z0y -# pkMrr1Rv5i5OtTANBgkqhkiG9w0BAQsFAASCAgAEedAcGyMhTvHpo+9EkHIGBM+C -# QibUvkPJ/LIIa3J8cbO9lt/0Quv2ZsHkBa6I7JXNoET6yO7+jRNxGMnuqRT8JV2e -# ttTg6VTue4x3Quc62GQUJPutIZJhc9Uv44KRdGeM4Kg3Z/bfo1oeOg2ZNtOvEGBK -# bduaw0TZfU+bweaBt57yxTxYNCEqwx/zeI9OUuOxkuw8pRImpCz8MfOCb8YNEbql -# hxAFzqCf7tYn7FfAI7jrbOqxnR7oV4PCTYIDIow48sT4STUhUHok2AcxwZDN6CIX -# OuWsKvI7jsCLWpSkBSvA3QnhIIXOJb24fZ5GNPyAmJib8wC+hA6cVtqgwxSBCRly -# vkEJ4ipMvmo0cVlrmrL/xld1uEKVq9cYwjxXYgOJ5H+zYEvhAdAOi8khu0qQ6ZOm -# m5yuovNSiaW77SStsuzL06fVdDV7U21hLuYgEhYLnDmy8VwzDz8FvURqxP8EiUbN -# +DU9VJU/4+2HpJDTrbqfIg6ChTkVa3S/rHUSs26a6jXYOc4I6O0wg16wge/ud253 -# 9oZclGFiI0POuetXVqtmwP6zQP7tEPOLTZo/7J+YvTvFnnQDj/VCo6OmccTFbvZW -# a5nhr0pcwDBXDnraICdHx3dTy+KOxzluaLlujYaG9WRrAPvr9H8SK84v9Lb2Baki -# 6MFnvtzs3h7OBtpFEw== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.format.ps1xml b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.format.ps1xml deleted file mode 100644 index 3de02d85c574..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.format.ps1xml +++ /dev/null @@ -1,285 +0,0 @@ - - - - - FunctionApp - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - - - - 7 - 8 - 13 - - - - - - - - - Name - Status - OSType - Runtime - Location - AppServicePlan - ResourceGroupName - SubscriptionId - - - - - - - FunctionAppPlan - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - - - - - - - - - - - - - - Name - WorkerType - SkuTier - SkuName - Location - ResourceGroupName - SubscriptionId - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.types.ps1xml b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.types.ps1xml deleted file mode 100644 index a6c656b9f198..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Functions.types.ps1xml +++ /dev/null @@ -1,260 +0,0 @@ - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - - Status - State - - - ResourceGroupName - ResourceGroup - - - SubscriptionId - - if ($this.ManagedEnvironmentId) - { - ($this.ManagedEnvironmentId -split "/")[2] - } - else - { - ($this.ServerFarmId -split "/")[2] - } - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - - ResourceGroupName - ResourceGroup - - - SubscriptionId - ($this.Id -split "/")[2] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/FunctionsStack/functionAppStacks.json b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/FunctionsStack/functionAppStacks.json deleted file mode 100644 index c2447258d88e..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/FunctionsStack/functionAppStacks.json +++ /dev/null @@ -1,1745 +0,0 @@ -[ - { - "id": null, - "name": "dotnet", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": ".NET", - "value": "dotnet", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": ".NET 8 Isolated", - "value": "dotnet8isolated", - "minorVersions": [ - { - "displayText": ".NET 8 Isolated", - "value": "8 (LTS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v8.0", - "isHidden": false, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|8.0", - "isHidden": false, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 7 Isolated", - "value": "dotnet7isolated", - "minorVersions": [ - { - "displayText": ".NET 7 Isolated", - "value": "7 (STS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v7.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "7.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v7.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|7.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "7.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|7.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 6 Isolated", - "value": "dotnet6isolated", - "minorVersions": [ - { - "displayText": ".NET 6 (LTS) Isolated", - "value": "6 (LTS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET Framework 4.8", - "value": "dotnetframework48", - "minorVersions": [ - { - "displayText": ".NET Framework 4.8", - "value": ".NET Framework 4.8, isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v4.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "4.8.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v4.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ] - } - } - } - ] - }, - { - "displayText": ".NET 8 In-process", - "value": "dotnet8", - "minorVersions": [ - { - "displayText": ".NET 8 (LTS) In-process", - "value": "8 (LTS), in-process model", - "stackSettings": { - "windowsRuntimeSettings": { - "isHidden": true, - "runtimeVersion": "v8.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet", - "FUNCTIONS_INPROC_NET8_ENABLED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "isHidden": true, - "runtimeVersion": "DOTNET|8.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet", - "FUNCTIONS_INPROC_NET8_ENABLED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "linuxFxVersion": "DOTNET|8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 6 In-process", - "value": "dotnet6", - "minorVersions": [ - { - "displayText": ".NET 6 (LTS) In-process", - "value": "6 (LTS), in-process model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET|6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "linuxFxVersion": "DOTNET|6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET Core 2", - "value": "dotnetcore2", - "minorVersions": [ - { - "displayText": ".NET Core 2.2", - "value": "2.2", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "2.2", - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "2.2.207" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ] - }, - "linuxRuntimeSettings": { - "runtimeVersion": "dotnet|2.2", - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "2.2.207" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "dotnet|2.2" - }, - "supportedFunctionsExtensionVersions": [ - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ] - } - } - } - ] - }, - { - "displayText": ".NET Framework 4", - "value": "dotnetframework4", - "minorVersions": [ - { - "displayText": ".NET Framework 4.7", - "value": "4.7", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "4.7", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": {}, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~1" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~1", - "isDeprecated": true, - "isDefault": true - } - ] - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "node", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Node.js", - "value": "node", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Node.js 20", - "value": "20", - "minorVersions": [ - { - "displayText": "Node.js 20 LTS", - "value": "20 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~20", - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "20.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~20" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat May 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|20", - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "20.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|20" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat May 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 18", - "value": "18", - "minorVersions": [ - { - "displayText": "Node.js 18 LTS", - "value": "18 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~18", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "18.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~18" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|18", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "18.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|18" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 16", - "value": "16", - "minorVersions": [ - { - "displayText": "Node.js 16 LTS", - "value": "16 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~16", - "isPreview": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "16.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~16" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|16", - "isPreview": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "16.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|16" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 14", - "value": "14", - "minorVersions": [ - { - "displayText": "Node.js 14 LTS", - "value": "14 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~14", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "14.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~14" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|14", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "14.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|14" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 8", - "value": "8", - "minorVersions": [ - { - "displayText": "Node.js 8 LTS", - "value": "8 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~8", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~8" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Dec 31 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 6", - "value": "6", - "minorVersions": [ - { - "displayText": "Node.js 6 LTS", - "value": "6 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~6", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": { - "WEBSITE_NODE_DEFAULT_VERSION": "~6" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true - }, - "supportedFunctionsExtensionVersions": [ - "~1" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~1", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Apr 30 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "python", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Python", - "value": "python", - "preferredOs": "linux", - "majorVersions": [ - { - "displayText": "Python 3", - "value": "3", - "minorVersions": [ - { - "displayText": "Python 3.11", - "value": "3.11", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.11", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": true, - "isHidden": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.11" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.11" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Oct 31 2027 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.10", - "value": "3.10", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.10", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": true, - "isHidden": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.10" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.10" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat Oct 31 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.9", - "value": "3.9", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.9", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.9" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.9" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Oct 31 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.8", - "value": "3.8", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.8", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.8" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.8" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Thu Oct 31 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.7", - "value": "3.7", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.7", - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.7" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "python" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.7" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Jun 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "java", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Java", - "value": "java", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Java 21", - "value": "21", - "minorVersions": [ - { - "displayText": "Java 21", - "value": "21.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "21", - "isPreview": true, - "isHidden": true, - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "21" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "21", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|21", - "isPreview": true, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "21" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|21" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 17", - "value": "17", - "minorVersions": [ - { - "displayText": "Java 17", - "value": "17.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "17", - "isPreview": false, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "17" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "17", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|17", - "isPreview": false, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "17" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|17" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 11", - "value": "11", - "minorVersions": [ - { - "displayText": "Java 11", - "value": "11.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "11", - "isAutoUpdate": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "11" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "11", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Sep 01 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|11", - "isAutoUpdate": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "11" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|11" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Sep 01 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 8", - "value": "8", - "minorVersions": [ - { - "displayText": "Java 8", - "value": "8.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "1.8", - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "1.8", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sat Mar 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|8", - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "java" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|8" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sat Mar 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "powershell", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "PowerShell Core", - "value": "powershell", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "PowerShell 7", - "value": "7", - "minorVersions": [ - { - "displayText": "PowerShell 7.4", - "value": "7.4", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "7.4", - "isDefault": false, - "isPreview": true, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "7.4", - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "PowerShell|7.4", - "isDefault": false, - "isPreview": true, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "PowerShell|7.4" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "PowerShell 7.2", - "value": "7.2", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "7.2", - "isDefault": true, - "isPreview": false, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "7.2", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "PowerShell|7.2", - "isDefault": true, - "isPreview": false, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { - "isSupported": true - }, - "gitHubActionSettings": { - "isSupported": true - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "powershell" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "PowerShell|7.2" - }, - "supportedFunctionsExtensionVersions": [ - "~4" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "custom", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Custom Handler", - "value": "custom", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Custom Handler", - "value": "custom", - "minorVersions": [ - { - "displayText": "Custom Handler", - "value": "custom", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "custom", - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "custom" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ] - }, - "linuxRuntimeSettings": { - "runtimeVersion": "", - "isPreview": false, - "appInsightsSettings": { - "isSupported": true - }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": false - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "custom" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "" - }, - "supportedFunctionsExtensionVersions": [ - "~4", - "~3", - "~2" - ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ] - } - } - } - ] - } - ] - } - } -] diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionApp.ps1 deleted file mode 100644 index 0d0b21988d20..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionApp.ps1 +++ /dev/null @@ -1,330 +0,0 @@ -function Get-AzFunctionApp { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Gets function apps in a subscription.')] - [CmdletBinding(DefaultParametersetname="GetAll")] - param( - [Parameter(ParameterSetName="ByName", HelpMessage='The Azure subscription ID.')] - [Parameter(ParameterSetName="GetAll")] - [Parameter(ParameterSetName="ByResourceGroupName")] - [Parameter(ParameterSetName="ByLocation")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName="ByResourceGroupName", HelpMessage='The name of the resource group.')] - [Parameter(Mandatory=$true, ParameterSetName="ByName")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName="ByName", HelpMessage='The name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(Mandatory=$true, ParameterSetName="ByLocation", HelpMessage='The location of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Location}, - - [Parameter(Mandatory=$false, ParameterSetName="ByResourceGroupName", HelpMessage='Use to specify whether to include deployment slots in results.')] - [System.Management.Automation.SwitchParameter] - ${IncludeSlot}, - - [Parameter(HelpMessage=' The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - $apps = $null - $locationToUse = $null - $parameterSetName = $PsCmdlet.ParameterSetName - - if (($parameterSetName -eq "GetAll") -or ($parameterSetName -eq "ByLocation")) - { - if ($PSBoundParameters.ContainsKey("Location")) - { - $locationToUse = $Location - $PSBoundParameters.Remove("Location") | Out-Null - } - } - - $apps = @(Az.Functions.internal\Get-AzFunctionApp @PSBoundParameters) - - if ($apps.Count -gt 0) - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - GetFunctionApps -Apps $apps -Location $locationToUse @params - } - } -} - -# SIG # Begin signature block -# MIIoOwYJKoZIhvcNAQcCoIIoLDCCKCgCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDHr4TzAnqYA3lg -# YAFzBKIB9dEwnKH4ASKkLt84xaEym6CCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgwwghoIAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJEC -# +T9U8R/A7fmja09ZcPbAaLWxo+KF+5GvzaCUHnDhMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAMmbwbNyQ67YBwILUhn78ouxpXF5xuOotE5ch -# grxdfM6DyVEHVDm1YV8hlKIP8/dTu+jZOJgszUQwZspaqeMLDld5riKkz2o7G2qd -# +8cOgSY6nYNvlQM/nogRlJrETah53I4SzYU+lEiGH9UsMoOJS/uB96h7PlzhkU4U -# MBoTKaY0tnVT9MN/7z0Vs8PaukAnhy+cZZXtVBLK0HOFnitHzOrb8DoFopqF75rv -# ml2o881v8slwpYyjkTj83lSZK2qDl+ugsWJADR4Kro9mbYVUpeQyXu3RxN8ZezIL -# aFLOuN4Nqj5RyZFOHoNRYkJ8dVF+VbJWrGJFfYUDf8WPGCAxsKGCF5YwgheSBgor -# BgEEAYI3AwMBMYIXgjCCF34GCSqGSIb3DQEHAqCCF28wghdrAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCA41ZRtn/jhuNw8jFDwpktpXbW+kfgq3yzk -# 1+VoDAqN5gIGZ1sAySV0GBIyMDI1MDEwOTA2Mzc0Ni4zOFowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjpGMDAyLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEe0wggcgMIIFCKADAgECAhMzAAAB8j4y12SscJGUAAEA -# AAHyMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDU1OFoXDTI1MDMwNTE4NDU1OFowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpGMDAyLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALzl88sXCmliDHBjGRIR5i9A -# G2dglO0oqPYUrHMfHR+BXpeAgiuYJaakqX0g7O858n+TqI/RGehGjkXz0B3b153M -# Z2VZsKPVDLHkdQc1jzK70SUk6Z2B6429MrhFbjC72IHn/PZJ4K5irJf+/zPo+m/b -# 2HW201axJz8o8566HNIBeqQDbrkFIVPmTKTG/MHQvGjFLqhahdYrrDHXvY1ElFhw -# g19cOFRG9R8PvSOKgT3atb86CNw4rFmR9DEuXBoVKtKcazteEyun1OxSCbCzJxMQ -# 4F0ZWZ/UcIPtY5rPkQRxDIhLYGlFhjCw8xsHre4eInXnyo2HVIle6gvnAYO79tlT -# M34HNwuP3qLELvAkZAwGLFYf1375XxuXXRFh1cNmWWNEC9LqIXA3OtqG7gOthvtv -# wzu+/CEQvTEI69vtYUyyy2xxd+R0TmD41JpymGAV9yh+1Dmo8PY81WasbfwOYcOh -# iGCP26o8s/u+ehd/uPr4tbxWifXnwPRauaTsK6a5xBOIdHJ6kRpUOecDYaSImh6H -# +vd9KEvoIeA+hMHuhhT93ok6dxGKgNiqpF9XbCWkpU7xv5VgcvyGfXUlEXHqnr2Y -# vwFG1Jnp0b8YURUT59WaDFh8gJSumCHJCURMk8hMQFLXkixpS5bQa9eUtKh8Z/a3 -# kMCgOS4oJsL7dV0+aVhVAgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUlVuHACbq0DEE -# zlwfwGDT5jrihnkwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAD1Lp47gex8HTRek -# 6A9ptw3dBl7KKmCKVxBINnyDpUK/0VUfN1Kr1ekCyWNlIo1ZIKWEkTPk6jdSb+1o -# +ehsX7wKQB2RwtCEt2RKF+v3WTPL28M+s6aUIDYVD2NWEVpq3ZAzffPWn4YI/m26 -# +KsVpRbNRZUMU6mj87nMOnOg9i1OvRwWDe5dpEtPnhRDdji49heqfrC6dm1RBEyI -# kzPGlSW919YZS0K+dbd4MGKQOSLHVcT3xVxgjPb7l91y+sdV5RqsZfLgtG3DObCm -# wK1SHu1HrCEKtViRvoW50F1YztNW+OLukaB+N6yCcBJoP8KEu7Hro8bBohoX7EvO -# TRs3GwCPS6F3pB1avpNPf2b9I1nX9RdTuTMSh3S8BjeYifxfkDgj7397WcE2lREn -# piIMpB3lhWDGy5kJa/hDBvSZeEch70K5t9KpmO8NrB/Yjbb03cuy0MlRKvW8YUHy -# JDlbxkszk/BPy+2woQHAcRibCy5aazGSKYgXkFBtLOD3DPU7qN1ZPEYbQ5S3VxdY -# 4wlQnPIQfhZIpkc7HnepwC8P2HRTqMQXZ+4GO0n9AOtZtvi6u8B+u+o2f2UfuBU+ -# mWo08Mi9DwORneW9tCxiqXPrXt7vqBrtJjTDvX5A/XrkI93NRjfp63ZKbim+ykQr -# yGWWrchhzJfS/z3v5f1h55wzU9vWMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA1AwggI4AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RjAwMi0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAGuL3jdwUsfZN9AR8HTlIsgKDvgIoIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKb72MCIY -# DzIwMjUwMTA5MDMyMDIyWhgPMjAyNTAxMTAwMzIwMjJaMHcwPQYKKwYBBAGEWQoE -# ATEvMC0wCgIFAOspvvYCAQAwCgIBAAICG00CAf8wBwIBAAICE+MwCgIFAOsrEHYC -# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK -# MAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAiC0JBk9p6YdyVFQ4avHCUyNm -# PzRaKj8g9i/FPoLrej2uXIr2t2F5uklVVIDBIW/xUuLW/RucMODVhzr3Ea6tsXzI -# lACKNhjQVmYmAa4OEAsft9hao0CwEzBmmRnoKvGqMRlG5oJTxKkNb/7B9fEJ8j5V -# 5iq9nPjflIZtvnV94J7530TQLWN2KJMBsakmJ5mQkrcl594Ldt4Z+jRYTrRcHoZ6 -# x9TkghCkM5Yr+UxpgdP07+BTRVjJldSM3SoWkEa/uk8iOb2OkLtOPdT+QoDYN9AR -# OmdoM9axjP37XZaoZb44UhBd/yMOBsOtW6G1XXnNKLaJqq79dJywBztY2n26jjGC -# BA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 8j4y12SscJGUAAEAAAHyMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMx -# DQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIFaMq7fAJbS7gNcL+sgpV4cs -# Izu5Ive4PJLJ9ZJcBZsaMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg+No+ -# HS4xUlzTj5jhG7kFRRscTiy5nqdEdJS7RddKQ0QwgZgwgYCkfjB8MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg -# VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfI+MtdkrHCRlAABAAAB8jAiBCBAbZbu -# D1lx85tT8OkVBiheFMuIPY4uO2xqiEEOL2O6oTANBgkqhkiG9w0BAQsFAASCAgAw -# AlEF5JfIfjhoTmQV9lwrGlZKtEuo9ziGioKCcNylsZX/lujpty6d/KLw3G70Ucja -# qbka6BKznBdgzFYmIJwZ42RQhKiIUOQ9Iilm8X61TBqR2GAbmmlF1FesvY/BsfzE -# cChrDDS7LyAq3ygXBWN6XumOKsMjhWzeDKKVcBiD5O4G15DrdYkK+Ukypcs7u2+F -# KPkwREZvHNmJqDGWcMjxSKBqLwyR6y9iwxrgYjbpKL7oQBkVA7Q/q/N+72Qv3pQN -# u9OvuhpLih7kdSVYZlMymtWzHR4cqAwxskl7Hr+xZhD0Du6KUeCGf/4Vsu+6s/Um -# NNYuS/WW1NuLOQPURM+dERaY8R3FP2CWqNaXbFZTeTa316Fsz3XlMXz99EGzIGye -# CZDUdAk/yPMnvy0ns1T2lgiUYRZ4FhNnYx3Wq34zO69+1bzcKxlzX8GunWD8mf7b -# HE+eMgYy3OgnjeQaAYqBTrR243BO+U5eXUJxHC75A0oyn5QnMDegUVp3LU0p40yW -# uICt5e0vX3x5auGPqo1D8fnihB/KAhL0I/FHK2qEEJ3FOC4CzTlLKLm3ONMcXpet -# Vg/7TXsB4nhtHKXRX1lo3bxqRYlfRJo2MqiLzUUW5uBqLNaJ+EMV3v6OqP4Epd6D -# SGyl0zQLN/CbEzfKSRWgYHN+kc8Bp2j1sZx2bGuuDg== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppAvailableLocation.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppAvailableLocation.ps1 deleted file mode 100644 index 1fed4452fa11..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppAvailableLocation.ps1 +++ /dev/null @@ -1,344 +0,0 @@ -function Get-AzFunctionAppAvailableLocation { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Gets the location where a function app for the given os and plan type is available.')] - [CmdletBinding()] - param( - [Parameter(HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(HelpMessage="The plan type. Valid inputs: Consumption or Premium")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AvailablePlanType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Plan type (Consumption or Premium) - ${PlanType}, - - [Parameter(HelpMessage='The OS type for the service plan.')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [ValidateNotNullOrEmpty()] - [System.String] - # OS type (Linux or Windows) - ${OSType}, - - [Parameter(HelpMessage=' The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - $paramsToRemove = @( - "OSType", - "PlanType" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - # Set default values for PlanType and OSType - if (-not $PlanType) - { - $PlanType = "Premium" - Write-Verbose "PlanType not specified. Setting default PlanType to '$PlanType'." -Verbose - } - - if (-not $OSType) - { - $OSType = "Windows" - Write-Verbose "OSType not specified. Setting default OSType to '$OSType'." -Verbose - } - - # Set Linux flag - if ($OSType -eq "Linux") - { - $PSBoundParameters.Add("LinuxWorkersEnabled", $true) | Out-Null - } - - # Set plan sku - if ($PlanType -eq "Premium") - { - $PSBoundParameters.Add("Sku", 'ElasticPremium') | Out-Null - } - elseif ($PlanType -eq "Consumption") - { - $PSBoundParameters.Add("Sku", 'Dynamic') | Out-Null - } - else - { - throw "Unknown PlanType '$PlanType'" - } - - Az.Functions.internal\Get-AzFunctionAppAvailableLocation @PSBoundParameters - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBsvfGxehMRmK4F -# EusJp6Lll7ZlCyN0+xp74Y8LhX559qCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHbGsQ/FjTskGD7SHuzcgxam -# gAEj7vhjhGWyrxjbzBdoMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAG5Ndxl1fYB7DGjA0MCfIykeH0eDfLgAw/gdolrlP09EE7p+QlFEr5imn -# iBMB0FsePQF08Z/albR+WalScBe0/nYvRZyUU6X+IMiBhLU5XbrdHqjZkwh4sw2d -# PU9hLePRQ1hgirAxYRRx0a25y4/Me+PLUNwKdj/B5w1foSekJFYbKN+h6rJUgFZ0 -# S1tpfcD7LZOKUyp5LHQgb8K8b35J3LQEeklcgl+qHQuC4xVUzOHigeJZwfSHCC0b -# XXLVJVllJ1mohq9n8hR6+6BOhlmgt8+Y06+CcTwQzivgN9a8uewv58+NxOyaVDGi -# 18sSMSa0kDwB3BK6uyQNbtKfgA4twaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAPHYkxj1iMHNN+nbez0NCp9dtBwJWB1LQ8cxctzipUNgIGZ1ruJObR -# GBMyMDI1MDEwOTA2Mzc0NC45OTdaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAfAqfB1ZO+YfrQABAAAB8DANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTFaFw0yNTAzMDUxODQ1NTFaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC1Hi1Tozh3O0czE8xfRnrymlJNCaGWommPy0eINf+4 -# EJr7rf8tSzlgE8Il4Zj48T5fTTOAh6nITRf2lK7+upcnZ/xg0AKoDYpBQOWrL9Ob -# FShylIHfr/DQ4PsRX8GRtInuJsMkwSg63bfB4Q2UikMEP/CtZHi8xW5XtAKp95cs -# 3mvUCMvIAA83Jr/UyADACJXVU4maYisczUz7J111eD1KrG9mQ+ITgnRR/X2xTDMC -# z+io8ZZFHGwEZg+c3vmPp87m4OqOKWyhcqMUupPveO/gQC9Rv4szLNGDaoePeK6I -# U0JqcGjXqxbcEoS/s1hCgPd7Ux6YWeWrUXaxbb+JosgOazUgUGs1aqpnLjz0YKfU -# qn8i5TbmR1dqElR4QA+OZfeVhpTonrM4sE/MlJ1JLpR2FwAIHUeMfotXNQiytYfR -# BUOJHFeJYEflZgVk0Xx/4kZBdzgFQPOWfVd2NozXlC2epGtUjaluA2osOvQHZzGO -# oKTvWUPX99MssGObO0xJHd0DygP/JAVp+bRGJqa2u7AqLm2+tAT26yI5veccDmNZ -# sg3vDh1HcpCJa9QpRW/MD3a+AF2ygV1sRnGVUVG3VODX3BhGT8TMU/GiUy3h7ClX -# OxmZ+weCuIOzCkTDbK5OlAS8qSPpgp+XGlOLEPaM31Mgf6YTppAaeP0ophx345oh -# twIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFNCCsqdXRy/MmjZGVTAvx7YFWpslMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA4IvSbnr4jEPgo5W4xj3/+0dCGwsz863QG -# Z2mB9Z4SwtGGLMvwfsRUs3NIlPD/LsWAxdVYHklAzwLTwQ5M+PRdy92DGftyEOGM -# Hfut7Gq8L3RUcvrvr0AL/NNtfEpbAEkCFzseextY5s3hzj3rX2wvoBZm2ythwcLe -# ZmMgHQCmjZp/20fHWJgrjPYjse6RDJtUTlvUsjr+878/t+vrQEIqlmebCeEi+VQV -# xc7wF0LuMTw/gCWdcqHoqL52JotxKzY8jZSQ7ccNHhC4eHGFRpaKeiSQ0GXtlbGI -# bP4kW1O3JzlKjfwG62NCSvfmM1iPD90XYiFm7/8mgR16AmqefDsfjBCWwf3qheIM -# fgZzWqeEz8laFmM8DdkXjuOCQE/2L0TxhrjUtdMkATfXdZjYRlscBDyr8zGMlprF -# C7LcxqCXlhxhtd2CM+mpcTc8RB2D3Eor0UdoP36Q9r4XWCVV/2Kn0AXtvWxvIfyO -# Fm5aLl0eEzkhfv/XmUlBeOCElS7jdddWpBlQjJuHHUHjOVGXlrJT7X4hicF1o23x -# 5U+j7qPKBceryP2/1oxfmHc6uBXlXBKukV/QCZBVAiBMYJhnktakWHpo9uIeSnYT -# 6Qx7wf2RauYHIER8SLRmblMzPOs+JHQzrvh7xStx310LOp+0DaOXs8xjZvhpn+Wu -# Zij5RmZijDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdGMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDC -# KAZKKv5lsdC2yoMGKYiQy79p/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymsTjAiGA8yMDI1MDEwOTAyMDA0 -# NloYDzIwMjUwMTEwMDIwMDQ2WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKaxO -# AgEAMAcCAQACAhAbMAcCAQACAhJlMAoCBQDrKv3OAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAC1cdMDEbkRcY2RQqIzvaE4HZKAjEmimvnsiEBkklaFm6rly -# Zt9DvGP6qPI2o9uoDgj5p1lqIdL6mL4/N42GeRRMKldnSWngymbhkCX8RyiExho1 -# KZ5jhz57pWFxjKAotc0FnVhoE6DCsEUO9uOmhu7Ct9Dh3mxo0TTG0Y3PWRNXSkhT -# 1ZZ+X4g6PgHyalO5jpg2mBXVsyN3ECE7yjGGt6/9OHTXy4d0YqKqcPmIzxTyrZ5g -# sWJKwA+N2EAf7ePa2e4WVF4Wo3aLlCqa1205pOti3tP3R7g5EplvMU96xHXXaJCp -# DtSmz/cEC40EGtPwjuD5tCnadCT0X4FunUDS/FUxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfAqfB1ZO+YfrQABAAAB8DAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAQRxUuTWkYvL10Sspzor1u3WpOr+wc/VltK0zc+EhBeDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIFwBmqOlcv3kU7mAB5sWR74QFAiS -# 6mb+CM6asnFAZUuLMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHwKnwdWTvmH60AAQAAAfAwIgQgNav9MbTleN9i36swrfpwTySv7j07 -# igK/LBfrwEBJl3cwDQYJKoZIhvcNAQELBQAEggIATfCJXAai3oi0mzllNThlXT11 -# RcXtFEOfa6lZcHEJzCwUdNm1HCd46dt8qR+iUyOu1FxRs3hUl3/YIR/YpSLUX3Kh -# 25A5P4DQjqSmm5sU9kMrDMLd85STFM1YZ07hly1VVck0+cn8wBh8aTj5eX253wl/ -# F3WrG4K9KtqChGv4DHFSHPpzI1A6+m0KHl77inG/doB7Eq4llIleMBikV6XkR0Vv -# yg3IzLB7a1fH/8JXJRBb/yJzplhEOe4DppdA1DHo2E46xsNoV4z8BUEufrHYi43Z -# UknV8pD6SHz8ZwKhMi5B2hxHopMdg0k52OSt3KjbSz2lvlut/NKyg3uYJNA3CEsS -# UkZv6T/stET6u0OEpEEKNH6FMDh/qS81Q/Bz0xrXIJGfNi0UXURBXxSiK9cQM+D5 -# S2fgD82+jZ2imiZ+Qv2FKlr1LJzc+ePNvYKh5gJyIar5s2UmdGoXwLej+YwYz+P3 -# KoBwspF01J6jUw2c2gtGiSdhxJHJ5yWIueXxY+J57hSDbu916H5XwxX+25XfN38N -# kP0qfWbRa8u6+1PHO8M7zQ1fvzc0hemyst1etqhlQDx9r1k3J5Kso9lLFY5PBsm0 -# 8LVAWHcnHAS1jytPDb6w0iQ3VaXyxZ4jnhsQ+EVmPXSCfJHWI0BNmOSNVaA6Kjci -# 82B6Ekb0MLG52Va+bE0= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppPlan.ps1 deleted file mode 100644 index 510a51f0ccae..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,326 +0,0 @@ -function Get-AzFunctionAppPlan { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Get function apps plans in a subscription.')] - [CmdletBinding(DefaultParameterSetName='GetAll')] - param( - [Parameter(ParameterSetName='ByName', Mandatory = $true, HelpMessage='The Azure subscription ID.')] - [Parameter(ParameterSetName="GetAll")] - [Parameter(ParameterSetName="ByResourceGroupName")] - [Parameter(ParameterSetName="ByLocation")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByName', Mandatory = $true, HelpMessage='The name of the resource group.')] - [Parameter(ParameterSetName="ByResourceGroupName")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName="ByName", Mandatory = $true, HelpMessage='The service plan name.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(Mandatory=$true, ParameterSetName="ByLocation", HelpMessage='The location of the function app plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Location}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - [ValidateNotNull()] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - $plans = $null - $locationToUse = $null - $parameterSetName = $PsCmdlet.ParameterSetName - - if (($parameterSetName -eq "GetAll") -or ($parameterSetName -eq "ByLocation")) - { - if ($PSBoundParameters.ContainsKey("Location")) - { - $locationToUse = $Location - $PSBoundParameters.Remove("Location") | Out-Null - } - } - - $plans = @(Az.Functions.internal\Get-AzFunctionAppPlan @PSBoundParameters) - - if ($plans.Count -gt 0) - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - GetFunctionAppPlans -Plans $plans -Location $locationToUse @params - } - } -} - -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAD4tr7CWuYJ8eY -# UM09fMoMN+58bgHCVpNIUPFE3V0XCqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJAk -# wzs4V8GOq9Ov039VGy1bnD9uVgPklAvkFPZib8PuMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAcI7WsV2qxfn4UctsIgfw0SyH8x3/+RV4S70K -# BranFXq3C6ngLbHpNbFvtr5F1HubdlfOfbpLSqyoDdCKfoqUs6M4rXk2M1h24vmY -# DlPNazj2GD6S/GkuEMZcz8XCvG1X4hCpB1oWtwVhVFUO4/yfmrYMyepQ7YZWwDoo -# QKgp6yaPOLsDG2nLnInWch3g1gxlJ9wUv89FJdngD/80YxzMT7H+Uc7DK7EM/Zw0 -# 85ZazLVfxOFezE7oYup1jnx0K1t4Tv0hl5pm4Lgv9QNXpcK5/lxCHAFb0Ya2k3rK -# se0MUTpz8FcUMwYbTFBhhD3xoBUe2sQz33eL8soIr5dtLUjhsaGCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDsnD5n1AuLeayE87RgObv5qsQARswHKSY3 -# VjMl1eb7AwIGZ1rou14PGBMyMDI1MDEwOTA2Mzc1MC40MTRaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046REMwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAehQsIDPK3KZTQAB -# AAAB6DANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1MjJaFw0yNTAzMDUxODQ1MjJaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDhQXdE0WzXG7wzeC9SGdH6 -# eVwdGlF6YgpU7weOFBkpW9yuEmJSDE1ADBx/0DTuRBaplSD8CR1QqyQmxRDD/Cdv -# DyeZFAcZ6l2+nlMssmZyC8TPt1GTWAUt3GXUU6g0F0tIrFNLgofCjOvm3G0j482V -# utKS4wZT6bNVnBVsChr2AjmVbGDN/6Qs/EqakL5cwpGel1te7UO13dUwaPjOy0Wi -# 1qYNmR8i7T1luj2JdFdfZhMPyqyq/NDnZuONSbj8FM5xKBoar12ragC8/1CXaL1O -# MXBwGaRoJTYtksi9njuq4wDkcAwitCZ5BtQ2NqPZ0lLiQB7O10Bm9zpHWn9x1/Hm -# dAn4koMWKUDwH5sd/zDu4vi887FWxm54kkWNvk8FeQ7ZZ0Q5gqGKW4g6revV2IdA -# xBobWdorqwvzqL70WdsgDU/P5c0L8vYIskUJZedCGHM2hHIsNRyw9EFoSolDM+yC -# edkz69787s8nIp55icLfDoKw5hak5G6MWF6d71tcNzV9+v9RQKMa6Uwfyquredd5 -# sqXWCXv++hek4A15WybIc6ufT0ilazKYZvDvoaswgjP0SeLW7mvmcw0FELzF1/uW -# aXElLHOXIlieKF2i/YzQ6U50K9dbhnMaDcJSsG0hXLRTy/LQbsOD0hw7FuK0nmzo -# tSx/5fo9g7fCzoFjk3tDEwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFPo5W8o980kM -# fRVQba6T34HwelLaMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCWfcJm2rwXtPi7 -# 4km6PKAkni9+BWotq+QtDGgeT5F3ro7PsIUNKRkUytuGqI8thL3Jcrb03x6DOppY -# JEA+pb6o2qPjFddO1TLqvSXrYm+OgCLL+7+3FmRmfkRu8rHvprab0O19wDbukgO8 -# I5Oi1RegMJl8t5k/UtE0Wb3zAlOHnCjLGSzP/Do3ptwhXokk02IvD7SZEBbPboGb -# tw4LCHsT2pFakpGOBh+ISUMXBf835CuVNfddwxmyGvNSzyEyEk5h1Vh7tpwP7z7r -# J+HsiP4sdqBjj6Avopuf4rxUAfrEbV6aj8twFs7WVHNiIgrHNna/55kyrAG9Yt19 -# CPvkUwxYK0uZvPl2WC39nfc0jOTjivC7s/IUozE4tfy3JNkyQ1cNtvZftiX3j5Dt -# +eLOeuGDjvhJvYMIEkpkV68XLNH7+ZBfYa+PmfRYaoFFHCJKEoRSZ3PbDJPBiEhZ -# 9yuxMddoMMQ19Tkyftot6Ez0XhSmwjYBq39DvBFWhlyDGBhrU3GteDWiVd9YGSB2 -# WnxuFMy5fbAK6o8PWz8QRMiptXHK3HDBr2wWWEcrrgcTuHZIJTqepNoYlx9VRFvj -# /vCXaAFcmkW1nk7VE+owaXr5RJjryDq9ubkyDq1mdrF/geaRALXcNZbfNXIkhXzX -# A6a8CiamcQW/DgmLJpiVQNriZYCHIDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkRDMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQCMJG4vg0juMOVn2BuKACUvP80FuqCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymm5TAi -# GA8yMDI1MDEwOTAxMzc0MVoYDzIwMjUwMTEwMDEzNzQxWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKablAgEAMAcCAQACAgkfMAcCAQACAhJBMAoCBQDrKvhlAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAEpuvqYAWimE3aR+q2KcX9oSBl2V -# bkx7buLha6IStST4ztD6i7OuKIKiHh2ybmm70omfWKv/4kYvcgElPrlgNhgzwyFX -# V7uRX1SkPMbH9B+5oj9ZWOKE81lgSX0UNsgWlL92N7nGQN3G+J/4ZP3sjZdcdC6j -# 7nqd82IucomvfqPBKX5UFFDRNzuxSI2vme97A73cqQ6aHzVw9h1pChOmLz62Cud0 -# nA3xAB6CZIi+Qa2hx2J1IoroWK7dSDndNOjk5ZCMQAhcmdbr4uqkC1ySFtNJbQfp -# 1GGE1vFiI3sNIKbe84XCu894GtoRsrGZuN1mOWMN3cTuM+1ec0q6je5corAxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAehQ -# sIDPK3KZTQABAAAB6DANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAILtosql71fHehdJ8vo1y001tv -# syu5TD4cE1bbMhxTNzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICrS2sTV -# AoQggkHR59pNqige0xfJT2J3U8W1Sc8H+OsdMIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHoULCAzytymU0AAQAAAegwIgQgQV0pW5tg -# GS+yeJmO/KxxySGk1pYFhPEuT2ZdSh5D128wDQYJKoZIhvcNAQELBQAEggIAi214 -# 4mHD5yfJQ1TQPbe1OlN4iZ4kaOx5DUDPOFcF9boh9UIQZpDH4bVC+qIrOy20kzHv -# 941CDDmWGkhWxfhsNhkta2/CyzrgLDiu57hBc8lr7nee1/YnlRqCDLvoFDieqimb -# Eb4HDcRBt20U1XbpoP2vkFthAybmcwNCN/zmCnpDhs8E5GGA3c8B5Iz1EOUHOIEC -# C962umG8jWA3DgmASO13GSdUzD2FbYkOJOWa0mqTNvOEhsWnY6frnu07n5FMQ3nq -# BLvLE+DDhUA0TKk5ip6mypXd4fmkoxgRwE269RkryV2QFjAs+McTwvNl8U5xhCEb -# UtFDCkVDsy8ubsdtPhGECuw6c26FEuN48KEmW6rjCfGQ1Ura94eFrcKHPmtkZf9D -# EDjC+qauW454nwvC+U+mwy/Io1gpap9IdWesaRwzxdkGbRMIOfNGwhgDx1oYBIft -# NNWxCmvyhIGGZUorj2CVValuR1J43Ch/RLYFHpctrm8k9abCpRoOfitoCq7Dk0q0 -# tuKFnwuEavpDKlmuIegbO4L9k7+SokZVPfVIpeIUaHgHDU43FFHDFmoAn7haRk5s -# pB/iCrX8tSckeTx3L3Zi8hoggRsQ93fMLzkxfQSErmJl1QZX4iBunjwJxXBwj/cS -# Ab40D80EH/VrL4Qffpq9ee4Pz4vLvW3P0bGFmko= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppSetting.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppSetting.ps1 deleted file mode 100644 index 66351cc5b2d9..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Get-AzFunctionAppSetting.ps1 +++ /dev/null @@ -1,323 +0,0 @@ -function Get-AzFunctionAppSetting { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Gets app settings for a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $InputObject.ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - } - - if ($PsCmdlet.ShouldProcess($Name, "Get function app settings")) - { - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting @PSBoundParameters - if ($settings) - { - ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - } - } -} - -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBUOoWvP0qcTH49 -# YgrYSD9EYfPI37Jv3/YdIJlDCeDG8aCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHD+ -# yk54kPh8m321th73xjz5WzctGIVVOcTsWgeR6TpLMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAVchd5zCvFcmJWSfm43kadPPaxqozaGp03d7C -# G6auaRMwB6eFj6e9izj1otAXEKLQ8oQNk3fFGMfztyefpq/qiSPBokjU7GyaK+HW -# rH38TvpWLJfB0d/wKojwdJJxpBZumQ2+cuta6meFVl5Qz3aoFpQ86pkhCAQc1KdK -# +I1tyqCywTAKANCy23mo/kITx6c0V++bkFgsB53eHrletZwvH5uhW9ZshlP//edl -# RnyTcJNSJ/VjSRCBcaERq5n77K5F77t89phwrb/XQYs15obbGtlw39ugvYyzkpra -# nWBYXm6CpMQXulYWIaBCE9Lwsi4SiCivhGR4v7dn4yecm6dUT6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAiPfOm5opaSpbyHKrm4WEB0atSN2c5U9g0 -# PCj8YHjIWwIGZ1ruJOdqGBMyMDI1MDEwOTA2Mzc1MS4zMDlaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046N0YwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAfAqfB1ZO+YfrQAB -# AAAB8DANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NTFaFw0yNTAzMDUxODQ1NTFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC1Hi1Tozh3O0czE8xfRnry -# mlJNCaGWommPy0eINf+4EJr7rf8tSzlgE8Il4Zj48T5fTTOAh6nITRf2lK7+upcn -# Z/xg0AKoDYpBQOWrL9ObFShylIHfr/DQ4PsRX8GRtInuJsMkwSg63bfB4Q2UikME -# P/CtZHi8xW5XtAKp95cs3mvUCMvIAA83Jr/UyADACJXVU4maYisczUz7J111eD1K -# rG9mQ+ITgnRR/X2xTDMCz+io8ZZFHGwEZg+c3vmPp87m4OqOKWyhcqMUupPveO/g -# QC9Rv4szLNGDaoePeK6IU0JqcGjXqxbcEoS/s1hCgPd7Ux6YWeWrUXaxbb+JosgO -# azUgUGs1aqpnLjz0YKfUqn8i5TbmR1dqElR4QA+OZfeVhpTonrM4sE/MlJ1JLpR2 -# FwAIHUeMfotXNQiytYfRBUOJHFeJYEflZgVk0Xx/4kZBdzgFQPOWfVd2NozXlC2e -# pGtUjaluA2osOvQHZzGOoKTvWUPX99MssGObO0xJHd0DygP/JAVp+bRGJqa2u7Aq -# Lm2+tAT26yI5veccDmNZsg3vDh1HcpCJa9QpRW/MD3a+AF2ygV1sRnGVUVG3VODX -# 3BhGT8TMU/GiUy3h7ClXOxmZ+weCuIOzCkTDbK5OlAS8qSPpgp+XGlOLEPaM31Mg -# f6YTppAaeP0ophx345ohtwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFNCCsqdXRy/M -# mjZGVTAvx7YFWpslMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA4IvSbnr4jEPgo -# 5W4xj3/+0dCGwsz863QGZ2mB9Z4SwtGGLMvwfsRUs3NIlPD/LsWAxdVYHklAzwLT -# wQ5M+PRdy92DGftyEOGMHfut7Gq8L3RUcvrvr0AL/NNtfEpbAEkCFzseextY5s3h -# zj3rX2wvoBZm2ythwcLeZmMgHQCmjZp/20fHWJgrjPYjse6RDJtUTlvUsjr+878/ -# t+vrQEIqlmebCeEi+VQVxc7wF0LuMTw/gCWdcqHoqL52JotxKzY8jZSQ7ccNHhC4 -# eHGFRpaKeiSQ0GXtlbGIbP4kW1O3JzlKjfwG62NCSvfmM1iPD90XYiFm7/8mgR16 -# AmqefDsfjBCWwf3qheIMfgZzWqeEz8laFmM8DdkXjuOCQE/2L0TxhrjUtdMkATfX -# dZjYRlscBDyr8zGMlprFC7LcxqCXlhxhtd2CM+mpcTc8RB2D3Eor0UdoP36Q9r4X -# WCVV/2Kn0AXtvWxvIfyOFm5aLl0eEzkhfv/XmUlBeOCElS7jdddWpBlQjJuHHUHj -# OVGXlrJT7X4hicF1o23x5U+j7qPKBceryP2/1oxfmHc6uBXlXBKukV/QCZBVAiBM -# YJhnktakWHpo9uIeSnYT6Qx7wf2RauYHIER8SLRmblMzPOs+JHQzrvh7xStx310L -# Op+0DaOXs8xjZvhpn+WuZij5RmZijDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdGMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDCKAZKKv5lsdC2yoMGKYiQy79p/6CBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymsTjAi -# GA8yMDI1MDEwOTAyMDA0NloYDzIwMjUwMTEwMDIwMDQ2WjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKaxOAgEAMAcCAQACAhAbMAcCAQACAhJlMAoCBQDrKv3OAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAC1cdMDEbkRcY2RQqIzvaE4HZKAj -# EmimvnsiEBkklaFm6rlyZt9DvGP6qPI2o9uoDgj5p1lqIdL6mL4/N42GeRRMKldn -# SWngymbhkCX8RyiExho1KZ5jhz57pWFxjKAotc0FnVhoE6DCsEUO9uOmhu7Ct9Dh -# 3mxo0TTG0Y3PWRNXSkhT1ZZ+X4g6PgHyalO5jpg2mBXVsyN3ECE7yjGGt6/9OHTX -# y4d0YqKqcPmIzxTyrZ5gsWJKwA+N2EAf7ePa2e4WVF4Wo3aLlCqa1205pOti3tP3 -# R7g5EplvMU96xHXXaJCpDtSmz/cEC40EGtPwjuD5tCnadCT0X4FunUDS/FUxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfAq -# fB1ZO+YfrQABAAAB8DANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCCrykWNWNbSP3qvRyZpLJU2a1tM -# qXCtoae34p4Ctk+WfzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIFwBmqOl -# cv3kU7mAB5sWR74QFAiS6mb+CM6asnFAZUuLMIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHwKnwdWTvmH60AAQAAAfAwIgQgNav9MbTl -# eN9i36swrfpwTySv7j07igK/LBfrwEBJl3cwDQYJKoZIhvcNAQELBQAEggIAamWb -# fEXaRx6ihA0qi9pLJetA1z5x5x0CBmrQK/JWx0ex5Zb30u9/8IlDwr6RpmlBr5/d -# UdsNzoHAXQ6c1VW9fLRc4cYfXaOmF4WAy9WxVDpxE2f1Fg6y/jAMABAnnbaVLCAN -# DVuzajiDx3vHn5EdT/5Aj+XQUci1+xjx3BndfZC6FPXvnB5rVpgCw56dpnL0zxIf -# Lma2kNp04TRxj/bduDjWpvkZ4a5XV8y1jePGI6NkjB6qK+VAinJI8dVjWapVcYF+ -# tLRA+H+Vd2aXQjvjTSIzZJgyMWH56RSk8ijoTVRG477c1t/ojw6IfJSkb3kkW4JB -# pXte/DZmI3+ETD+A2yzDjcSsPpulUirwCKkvC+Z5CzEtFdcg44GHwZPbwlsmKeat -# VvQ/0uB/JRigIQG30nR9zzNCw012BQeYWsTSoG8Ok9HHhE8cFKUnO7K2mXm5TDy5 -# YNgWgqh7MXMgWgyWy4oAgfRrpxr1MR162uK/TppSjtdyLJBPtO9iCBb0+XFFOW6a -# N+ZYZ92VeRvuZYObSY/YQDbEuBsQsSru9sztqKNXCZQUaAQqx5lk7ygRKe3RB7S3 -# faCSA5adDVe+lsLiBNPwqEc8papG0wEZx0WqvBlRpJihbKSVSSUfdzCTrUFB8+ll -# LATaHM0kQ3UUVJctYX0Y+7oTvaGVKHg52lLhYYg= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/HelperFunctions.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/HelperFunctions.ps1 deleted file mode 100644 index b8d18eb454ee..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/HelperFunctions.ps1 +++ /dev/null @@ -1,2606 +0,0 @@ -# Load Az.Functions module constants -$constants = @{} -$constants["AllowedStorageTypes"] = @('Standard_GRS', 'Standard_RAGRS', 'Standard_LRS', 'Standard_ZRS', 'Premium_LRS', 'Standard_GZRS') -$constants["RequiredStorageEndpoints"] = @('PrimaryEndpointFile', 'PrimaryEndpointQueue', 'PrimaryEndpointTable') -$constants["DefaultFunctionsVersion"] = '4' -$constants["RuntimeToFormattedName"] = @{ - 'dotnet' = 'DotNet' - 'dotnet-isolated' = 'DotNet-Isolated' - 'custom' = 'Custom' - 'node' = 'Node' - 'python' = 'Python' - 'java' = 'Java' - 'powershell' = 'PowerShell' -} -$constants["RuntimeToDefaultOSType"] = @{ - 'DotNet'= 'Windows' - 'DotNet-Isolated' = 'Windows' - 'Custom' = 'Windows' - 'Node' = 'Windows' - 'Java' = 'Windows' - 'PowerShell' = 'Windows' - 'Python' = 'Linux' -} -$constants["ReservedFunctionAppSettingNames"] = @( - 'FUNCTIONS_WORKER_RUNTIME' - 'DOCKER_CUSTOM_IMAGE_NAME' - 'FUNCTION_APP_EDIT_MODE' - 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' - 'DOCKER_REGISTRY_SERVER_URL' - 'DOCKER_REGISTRY_SERVER_USERNAME' - 'DOCKER_REGISTRY_SERVER_PASSWORD' - 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' - 'WEBSITE_NODE_DEFAULT_VERSION' - 'AzureWebJobsStorage' - 'AzureWebJobsDashboard' - 'FUNCTIONS_EXTENSION_VERSION' - 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING' - 'WEBSITE_CONTENTSHARE' - 'APPINSIGHTS_INSTRUMENTATIONKEY' -) -$constants["SetDefaultValueParameterWarningMessage"] = "This default value is subject to change over time. Please set this value explicitly to ensure the behavior is not accidentally impacted by future changes." -$constants["DEBUG_PREFIX"] = '[Stacks API] - ' -$constants["DefaultCentauriImage"] = 'mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0' - -foreach ($variableName in $constants.Keys) -{ - if (-not (Get-Variable $variableName -ErrorAction SilentlyContinue)) - { - Set-Variable $variableName -value $constants[$variableName] -option ReadOnly - } -} - -# These are used to hold the types for the tab completers -$RuntimeToVersionLinux = @{} -$RuntimeToVersionWindows = @{} -$AllRuntimeVersions = @{} -$global:StacksAndTabCompletersInitialized = $false -$AllFunctionsExtensionVersions = New-Object System.Collections.Generic.List[[String]] - -function GetConnectionString -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $StorageAccountName, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("StorageAccountName")) - { - $PSBoundParameters.Remove("StorageAccountName") | Out-Null - } - - $storageAccountInfo = GetStorageAccount -Name $StorageAccountName @PSBoundParameters - if (-not $storageAccountInfo) - { - $errorMessage = "Storage account '$StorageAccountName' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($storageAccountInfo.ProvisioningState -ne "Succeeded") - { - $errorMessage = "Storage account '$StorageAccountName' is not ready. Please run 'Get-AzStorageAccount' and ensure that the ProvisioningState is 'Succeeded'" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $skuName = $storageAccountInfo.SkuName - if (-not ($AllowedStorageTypes -contains $skuName)) - { - $storageOptions = $AllowedStorageTypes -join ", " - $errorMessage = "Storage type '$skuName' is not allowed'. Currently supported storage options: $storageOptions" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageTypeNotSupported" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - foreach ($endpoint in $RequiredStorageEndpoints) - { - if ([string]::IsNullOrEmpty($storageAccountInfo.$endpoint)) - { - $errorMessage = "Storage account '$StorageAccountName' has no '$endpoint' endpoint. It must have table, queue, and blob endpoints all enabled." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountRequiredEndpointNotAvailable" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - - $resourceGroupName = ($storageAccountInfo.Id -split "/")[4] - $keys = Az.Functions.internal\Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountInfo.Name @PSBoundParameters -ErrorAction SilentlyContinue - - if (-not $keys) - { - $errorMessage = "Failed to get key for storage account '$StorageAccountName'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToGetStorageAccountKey" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ([string]::IsNullOrEmpty($keys[0].Value)) - { - $errorMessage = "Storage account '$StorageAccountName' has no key value." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "StorageAccountHasNoKeyValue" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $suffix = GetEndpointSuffix - $accountKey = $keys[0].Value - - $connectionString = "DefaultEndpointsProtocol=https;AccountName=$StorageAccountName;AccountKey=$accountKey" + $suffix - - return $connectionString -} - -function GetEndpointSuffix -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param() - - $environmentName = (Get-AzContext).Environment.Name - - switch ($environmentName) - { - "AzureUSGovernment" { ';EndpointSuffix=core.usgovcloudapi.net' } - "AzureChinaCloud" { ';EndpointSuffix=core.chinacloudapi.cn' } - "AzureCloud" { ';EndpointSuffix=core.windows.net' } - default { '' } - } -} - -function NewAppSetting -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [Parameter(Mandatory=$false)] - [System.String] - $Value - ) - - $setting = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.NameValuePair - $setting.Name = $Name - $setting.Value = $Value - - return $setting -} - -function GetServicePlan -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("Name")) - { - $PSBoundParameters.Remove("Name") | Out-Null - } - - $plans = @(Az.Functions\Get-AzFunctionAppPlan @PSBoundParameters) - - foreach ($plan in $plans) - { - if ($plan.Name -eq $Name) - { - return $plan - } - } - - # The plan name was not found, error out - $errorMessage = "Service plan '$Name' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ServicePlanDoesNotExist" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception -} - -function GetStorageAccount -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("Name")) - { - $PSBoundParameters.Remove("Name") | Out-Null - } - - $storageAccounts = @(Az.Functions.internal\Get-AzStorageAccount @PSBoundParameters -ErrorAction SilentlyContinue) - foreach ($account in $storageAccounts) - { - if ($account.Name -eq $Name) - { - return $account - } - } -} - -function GetApplicationInsightsProject -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("Name")) - { - $PSBoundParameters.Remove("Name") | Out-Null - } - - $projects = @(Az.Functions.internal\Get-AzAppInsights @PSBoundParameters) - - foreach ($project in $projects) - { - if ($project.Name -eq $Name) - { - return $project - } - } -} - -function CreateApplicationInsightsProject -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ResourceName, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ResourceGroupName, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "ResourceGroupName", - "ResourceName", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - # Create a new ApplicationInsights - $maxNumberOfTries = 3 - $tries = 1 - - while ($true) - { - try - { - $newAppInsightsProject = Az.Functions.internal\New-AzAppInsights -ResourceGroupName $ResourceGroupName ` - -ResourceName $ResourceName ` - -Location $Location ` - -Kind web ` - -RequestSource "AzurePowerShell" ` - -ErrorAction Stop ` - @PSBoundParameters - if ($newAppInsightsProject) - { - return $newAppInsightsProject - } - } - catch - { - # Ignore the failure and continue - } - - if ($tries -ge $maxNumberOfTries) - { - break - } - - # Wait for 2^(tries-1) seconds between retries. In this case, it would be 1, 2, and 4 seconds, respectively. - $waitInSeconds = [Math]::Pow(2, $tries - 1) - Start-Sleep -Seconds $waitInSeconds - - $tries++ - } -} - -function ConvertWebAppApplicationSettingToHashtable -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Object] - $ApplicationSetting, - - [System.Management.Automation.SwitchParameter] - $ShowAllAppSettings, - - [System.Management.Automation.SwitchParameter] - $RedactAppSettings, - - [System.Management.Automation.SwitchParameter] - $ShowOnlySpecificAppSettings, - - [Parameter(Mandatory=$false)] - [ValidateNotNullOrEmpty()] - [String[]] - $AppSettingsToShow - ) - - if ($RedactAppSettings.IsPresent) - { - Write-Warning "App settings have been redacted. Use the Get-AzFunctionAppSetting cmdlet to view them." - } - - # Create a key value pair to hold the function app settings - $applicationSettings = @{} - - foreach ($keyName in $ApplicationSetting.Property.Keys) - { - if($ShowAllAppSettings.IsPresent) - { - $applicationSettings[$keyName] = $ApplicationSetting.Property[$keyName] - } - elseif ($RedactAppSettings.IsPresent) - { - # When RedactAppSettings is present, all app settings are set to null - $applicationSettings[$keyName] = $null - } - elseif($ShowOnlySpecificAppSettings.IsPresent) - { - # When ShowOnlySpecificAppSettings is present, only show the app settings in this list AppSettingsToShow - if ($AppSettingsToShow.Contains($keyName)) - { - $applicationSettings[$keyName] = $ApplicationSetting.Property[$keyName] - } - } - } - - return $applicationSettings -} - -function GetRuntime -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Object] - $Settings, - - [Parameter(Mandatory=$false)] - [String] - $AppKind - ) - - $appSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $Settings -ShowAllAppSettings - $runtimeName = $appSettings["FUNCTIONS_WORKER_RUNTIME"] - - $runtime = "" - if (($null -ne $runtimeName) -and ($RuntimeToFormattedName.ContainsKey($runtimeName))) - { - $runtime = $RuntimeToFormattedName[$runtimeName] - } - elseif ($appSettings.ContainsKey("DOCKER_CUSTOM_IMAGE_NAME")) - { - if ($AppKind -match "azurecontainerapps") - { - $runtime = "Container App" - } - else - { - $runtime = "Custom Image" - } - } - - return $runtime -} - - -function AddFunctionAppSettings -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Object] - $App, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("App")) - { - $PSBoundParameters.Remove("App") | Out-Null - } - - if ($App.kind.ToString() -match "azurecontainerapps") - { - if ($App.ManagedEnvironmentId) - { - $App.AppServicePlan = ($App.ManagedEnvironmentId -split "/")[-1] - } - } - else - { - $App.AppServicePlan = ($App.ServerFarmId -split "/")[-1] - } - - $App.OSType = if ($App.kind.ToString() -match "linux"){ "Linux" } else { "Windows" } - - if ($App.Type -eq "Microsoft.Web/sites/slots") - { - return $App - } - - $currentSubscription = $null - $resetDefaultSubscription = $false - - try - { - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $App.Name ` - -ResourceGroupName $App.ResourceGroup ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - if ($null -eq $settings) - { - Write-Warning -Message "Failed to retrieve function app settings. 1st attempt" - Write-Warning -Message "Setting session context to subscription id '$($App.SubscriptionId)'" - - $resetDefaultSubscription = $true - $currentSubscription = (Get-AzContext).Subscription.Id - $null = Select-AzSubscription $App.SubscriptionId - - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $App.Name ` - -ResourceGroupName $App.ResourceGroup ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - if ($null -eq $settings) - { - # We are unable to get the app settings, return the app - Write-Warning -Message "Failed to retrieve function app settings. 2nd attempt." - return $App - } - } - } - finally - { - if ($resetDefaultSubscription) - { - Write-Warning -Message "Resetting session context to subscription id '$currentSubscription'" - $null = Select-AzSubscription $currentSubscription - } - } - - # Add application settings and runtime - $App.ApplicationSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -RedactAppSettings - $App.Runtime = GetRuntime -Settings $settings -AppKind $App.kind - - # Get the app site config - $config = GetAzWebAppConfig -Name $App.Name -ResourceGroupName $App.ResourceGroup @PSBoundParameters - # Add all site config properties as a hash table - $SiteConfig = @{} - foreach ($property in $config.PSObject.Properties) - { - if ($property.Name) - { - $SiteConfig.Add($property.Name, $property.Value) - } - } - - $App.SiteConfig = $SiteConfig - - return $App -} - -function GetFunctionApps -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [AllowEmptyCollection()] - [Object[]] - $Apps, - - [System.String] - $Location, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "Apps", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($Apps.Count -eq 0) - { - return - } - - $activityName = "Getting function apps" - - for ($index = 0; $index -lt $Apps.Count; $index++) - { - $app = $Apps[$index] - - $percentageCompleted = [int]((100 * ($index + 1)) / $Apps.Count) - $status = "Complete: $($index + 1)/$($Apps.Count) function apps processed." - Write-Progress -Activity "Getting function apps" -Status $status -PercentComplete $percentageCompleted - - if ($app.kind -match "functionapp") - { - if ($Location) - { - if ($app.Location -eq $Location) - { - $app = AddFunctionAppSettings -App $app @PSBoundParameters - $app - } - } - else - { - $app = AddFunctionAppSettings -App $app @PSBoundParameters - $app - } - } - } - - Write-Progress -Activity $activityName -Status "Completed" -Completed -} - -function AddFunctionAppPlanWorkerType -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $AppPlan, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("AppPlan")) - { - $PSBoundParameters.Remove("AppPlan") | Out-Null - } - - # The GetList api for service plan that does not set the Reserved property, which is needed to figure out if the OSType is Linux. - # TODO: Remove this code once https://msazure.visualstudio.com/Antares/_workitems/edit/5623226 is fixed. - if ($null -eq $AppPlan.Reserved) - { - # Get the service plan by name does set the Reserved property - $planObject = Az.Functions.internal\Get-AzFunctionAppPlan -Name $AppPlan.Name ` - -ResourceGroupName $AppPlan.ResourceGroup ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - $AppPlan = $planObject - } - - $AppPlan.WorkerType = if ($AppPlan.Reserved){ "Linux" } else { "Windows" } - - return $AppPlan -} - -function GetFunctionAppPlans -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [AllowEmptyCollection()] - [Object[]] - $Plans, - - [System.String] - $Location, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "Plans", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($Plans.Count -eq 0) - { - return - } - - $activityName = "Getting function app plans" - - for ($index = 0; $index -lt $Plans.Count; $index++) - { - $plan = $Plans[$index] - - $percentageCompleted = [int]((100 * ($index + 1)) / $Plans.Count) - $status = "Complete: $($index + 1)/$($Plans.Count) function apps plans processed." - Write-Progress -Activity $activityName -Status $status -PercentComplete $percentageCompleted - - try { - if ($Location) - { - if ($plan.Location -eq $Location) - { - $plan = AddFunctionAppPlanWorkerType -AppPlan $plan @PSBoundParameters - $plan - } - } - else - { - $plan = AddFunctionAppPlanWorkerType -AppPlan $plan @PSBoundParameters - $plan - } - } - catch { - continue; - } - } - - Write-Progress -Activity $activityName -Status "Completed" -Completed -} - -function ValidateFunctionName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $result = Az.Functions.internal\Test-AzNameAvailability -Type Site @PSBoundParameters - - if (-not $result.NameAvailable) - { - $errorMessage = "Function name '$Name' is not available. Please try a different name." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FunctionAppNameIsNotAvailable" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function NormalizeSku -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Sku - ) - if ($Sku -eq "SHARED") - { - return "D1" - } - return $Sku -} - -function CreateFunctionsIdentity -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $InputObject - ) - - if (-not ($InputObject.Name -and $InputObject.ResourceGroupName -and $InputObject.SubscriptionId)) - { - $errorMessage = "Input object '$InputObject' is missing one or more of the following properties: Name, ResourceGroupName, SubscriptionId" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToCreateFunctionsIdentity" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $functionsIdentity = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.FunctionsIdentity - $functionsIdentity.Name = $InputObject.Name - $functionsIdentity.SubscriptionId = $InputObject.SubscriptionId - $functionsIdentity.ResourceGroupName = $InputObject.ResourceGroupName - - return $functionsIdentity -} - -function GetSkuName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Sku - ) - - if (($Sku -eq "D1") -or ($Sku -eq "SHARED")) - { - return "SHARED" - } - elseif (($Sku -eq "B1") -or ($Sku -eq "B2") -or ($Sku -eq "B3") -or ($Sku -eq "BASIC")) - { - return "BASIC" - } - elseif (($Sku -eq "S1") -or ($Sku -eq "S2") -or ($Sku -eq "S3")) - { - return "STANDARD" - } - elseif (($Sku -eq "P1") -or ($Sku -eq "P2") -or ($Sku -eq "P3")) - { - return "PREMIUM" - } - elseif (($Sku -eq "P1V2") -or ($Sku -eq "P2V2") -or ($Sku -eq "P3V2")) - { - return "PREMIUMV2" - } - elseif (($Sku -eq "PC2") -or ($Sku -eq "PC3") -or ($Sku -eq "PC4")) - { - return "PremiumContainer" - } - elseif (($Sku -eq "EP1") -or ($Sku -eq "EP2") -or ($Sku -eq "EP3")) - { - return "ElasticPremium" - } - elseif (($Sku -eq "I1") -or ($Sku -eq "I2") -or ($Sku -eq "I3")) - { - return "Isolated" - } - - $guidanceUrl = 'https://learn.microsoft.com/azure/azure-functions/functions-premium-plan#plan-and-sku-settings' - - $errorMessage = "Invalid sku (pricing tier), please refer to '$guidanceUrl' for valid values." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidSkuPricingTier" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception -} - -function ThrowTerminatingError -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorMessage, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.Management.Automation.ErrorCategory] - $ErrorCategory, - - [Exception] - $Exception, - - [object] - $TargetObject - ) - - if (-not $Exception) - { - $Exception = New-Object -TypeName System.Exception -ArgumentList $ErrorMessage - } - - $errorRecord = New-Object -TypeName System.Management.Automation.ErrorRecord -ArgumentList ($Exception, $ErrorId, $ErrorCategory, $TargetObject) - #$PSCmdlet.ThrowTerminatingError($errorRecord) - throw $errorRecord -} - -function GetErrorMessage -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNull()] - $Response - ) - - if ($Response.Exception.ResponseBody) - { - try - { - $details = ConvertFrom-Json $Response.Exception.ResponseBody - if ($details.Message) - { - return $details.Message - } - } - catch - { - # Ignore the deserialization error - } - } -} - -function GetSupportedRuntimes -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $OSType - ) - - if ($OSType -eq "Linux") - { - return $RuntimeToVersionLinux - } - elseif ($OSType -eq "Windows") - { - return $RuntimeToVersionWindows - } - - throw "Unknown OS type '$OSType'" -} - -function ValidateFunctionsVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $FunctionsVersion - ) - - # if ($SupportedFunctionsVersion -notcontains $FunctionsVersion) - if ($AllFunctionsExtensionVersions -notcontains $FunctionsVersion) - { - $currentlySupportedFunctionsVersions = $AllFunctionsExtensionVersions -join ' and ' - $errorMessage = "Functions version not supported. Currently supported version are: $($currentlySupportedFunctionsVersions)." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FunctionsVersionNotSupported" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function GetDefaultOSType -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Runtime - ) - - $defaultOSType = $RuntimeToDefaultOSType[$Runtime] - - if (-not $defaultOSType) - { - # The specified runtime did not match, error out - $runtimeOptions = FormatListToString -List @($RuntimeToDefaultOSType.Keys | Sort-Object) - $errorMessage = "Runtime '$Runtime' is not supported. Currently supported runtimes: " + $runtimeOptions + "." - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeNotSupported" - } - - return $defaultOSType -} - -# Returns the stack definition for the given runtime name -# -function GetStackDefinitionForRuntime -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $FunctionsVersion, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Runtime, - - [Parameter(Mandatory=$false)] - [System.String] - $RuntimeVersion, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $OSType - ) - - $supportedRuntimes = GetSupportedRuntimes -OSType $OSType - $runtimeJsonDefinition = $null - - $functionsExtensionVersion = "~$FunctionsVersion" - if (-not $supportedRuntimes.ContainsKey($Runtime)) - { - $runtimeOptions = FormatListToString -List @($supportedRuntimes.Keys | Sort-Object) - $errorMessage = "Runtime '$Runtime' on '$OSType' is not supported. Currently supported runtimes: " + $runtimeOptions + "." - - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeNotSupported" - } - - # If runtime version is not provided, iterate through the list to find the default version (if available) - if (($Runtime -ne 'Custom') -and (-not $RuntimeVersion)) - { - # Try to get the default version - $defaultVersionFound = $false - $RuntimeVersion = $supportedRuntimes[$Runtime] | - ForEach-Object { if ($_.IsDefault -and ($_.SupportedFunctionsExtensionVersions -contains $functionsExtensionVersion)) { $_.Version } } - - if ($RuntimeVersion) - { - $defaultVersionFound = $true - Write-Debug "$DEBUG_PREFIX Runtime '$Runtime' has a default version '$RuntimeVersion'" - } - else - { - Write-Debug "$DEBUG_PREFIX Runtime '$Runtime' does not have a default version. Finding the latest version." - - # Iterate through the list to find the latest non preview version - $latestVersion = $supportedRuntimes[$Runtime] | - Sort-Object -Property Version -Descending | - Where-Object { $_.SupportedFunctionsExtensionVersions -contains $functionsExtensionVersion -and (-not $_.IsPreview) } | - Select-Object -First 1 -ExpandProperty Version - - if ($latestVersion) - { - # Set the runtime version to the latest version - $RuntimeVersion = $latestVersion - } - } - - # Error out if we could not find a default or latest version for the given runtime (except for 'Custom'), functions extension version, and os type - if ((-not $latestVersion) -and (-not $defaultVersionFound) -and ($Runtime -ne 'Custom')) - { - $errorMessage = "Runtime '$Runtime' in Functions version '$FunctionsVersion' on '$OSType' is not supported." - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeVersionNotSupported" - } - - Write-Warning "RuntimeVersion not specified. Setting default value to '$RuntimeVersion'. $SetDefaultValueParameterWarningMessage" - } - - if ($Runtime -eq 'Custom') - { - # Custom runtime does not have a version - $runtimeJsonDefinition = $supportedRuntimes[$Runtime] - } - else - { - $runtimeJsonDefinition = $supportedRuntimes[$Runtime] | Where-Object { $_.Version -eq $RuntimeVersion } - } - - if (-not $runtimeJsonDefinition) - { - $errorMessage = "Runtime '$Runtime' version '$RuntimeVersion' in Functions version '$FunctionsVersion' on '$OSType' is not supported." - - $supporedVersions = @($supportedRuntimes[$Runtime] | - Sort-Object -Property Version -Descending | - Where-Object { $_.SupportedFunctionsExtensionVersions -contains $functionsExtensionVersion } | - Select-Object -ExpandProperty Version) - - if ($supporedVersions.Count -gt 0) - { - $runtimeVersionOptions = $supporedVersions -join ", " - $errorMessage += " Currently supported runtime versions for '$($Runtime)' are: $runtimeVersionOptions." - } - - ThrowRuntimeNotSupportedException -Message $errorMessage -ErrorId "RuntimeVersionNotSupported" - } - - if ($runtimeJsonDefinition.IsPreview) - { - # Write a verbose message to the user if the current runtime is in Preview - Write-Verbose "Runtime '$Runtime' version '$RuntimeVersion' is in Preview for '$OSType'." -Verbose - } - - return $runtimeJsonDefinition -} - -function ThrowRuntimeNotSupportedException -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId - ) - - $Message += [System.Environment]::NewLine - $Message += "For supported languages, please visit 'https://learn.microsoft.com/azure/azure-functions/functions-versions#languages'." - - $exception = [System.InvalidOperationException]::New($Message) - ThrowTerminatingError -ErrorId $ErrorId ` - -ErrorMessage $Message ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception -} - -function FormatListToString -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [System.String[]] - $List - ) - - if ($List.Count -eq 0) - { - return - } - - $result = "" - - if ($List.Count -eq 1) - { - $result = "'" + $List[0] + "'" - } - - else - { - for ($index = 0; $index -lt ($List.Count - 1); $index++) - { - $item = $List[$index] - $result += "'" + $item + "', " - } - - $result += "'" + $List[$List.Count - 1] + "'" - } - - return $result -} - -function ValidatePlanLocation -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - [ValidateSet("Dynamic", "ElasticPremium")] - $PlanType, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - $OSIsLinux, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "PlanType", - "OSIsLinux", - "Location" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $Location = $Location.Trim() - $locationContainsSpace = $Location.Contains(" ") - - $availableLocations = @(Az.Functions.internal\Get-AzFunctionAppAvailableLocation -Sku $PlanType ` - -LinuxWorkersEnabled:$OSIsLinux ` - @PSBoundParameters | ForEach-Object { $_.Name }) - - if (-not $locationContainsSpace) - { - $availableLocations = @($availableLocations | ForEach-Object { $_.Replace(" ", "") }) - } - - if (-not ($availableLocations -contains $Location)) - { - $errorMessage = "Location is invalid. Use 'Get-AzFunctionAppAvailableLocation' to see available locations for running function apps." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "LocationIsInvalid" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function ValidatePremiumPlanLocation -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - $OSIsLinux, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - ValidatePlanLocation -PlanType ElasticPremium @PSBoundParameters -} - -function ValidateConsumptionPlanLocation -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Location, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - $OSIsLinux, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - ValidatePlanLocation -PlanType Dynamic @PSBoundParameters -} - -function GetParameterKeyValues -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [System.Collections.Generic.Dictionary[string, object]] - [ValidateNotNull()] - $PSBoundParametersDictionary, - - [Parameter(Mandatory=$true)] - [System.String[]] - [ValidateNotNull()] - $ParameterList - ) - - $params = @{} - if ($ParameterList.Count -gt 0) - { - foreach ($paramName in $ParameterList) - { - if ($PSBoundParametersDictionary.ContainsKey($paramName)) - { - $params[$paramName] = $PSBoundParametersDictionary[$paramName] - } - } - } - return $params -} - -function NewResourceTag -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [hashtable] - $Tag - ) - - $resourceTag = [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ResourceTags]::new() - - foreach ($tagName in $Tag.Keys) - { - $resourceTag.Add($tagName, $Tag[$tagName]) - } - return $resourceTag -} - -function ParseDockerImage -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $DockerImageName - ) - - # Sample urls: - # myacr.azurecr.io/myimage:tag - # mcr.microsoft.com/azure-functions/powershell:2.0 - if ($DockerImageName.Contains("/")) - { - $index = $DockerImageName.LastIndexOf("/") - $value = $DockerImageName.Substring(0,$index) - if ($value.Contains(".") -or $value.Contains(":")) - { - return $value - } - } -} - -function GetFunctionAppServicePlanInfo -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ServerFarmId, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("ServerFarmId")) - { - $PSBoundParameters.Remove("ServerFarmId") | Out-Null - } - - $planInfo = $null - - if ($ServerFarmId.Contains("/")) - { - $parts = $ServerFarmId -split "/" - - $planName = $parts[-1] - $resourceGroupName = $parts[-5] - - $planInfo = Az.Functions\Get-AzFunctionAppPlan -Name $planName ` - -ResourceGroupName $resourceGroupName ` - @PSBoundParameters - } - - if (-not $planInfo) - { - $errorMessage = "Could not determine the current plan of the functionapp." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "CouldNotDetermineFunctionAppPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - return $planInfo -} - -function ValidatePlanSwitchCompatibility -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $CurrentServicePlan, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - $NewServicePlan - ) - - if (-not (($CurrentServicePlan.SkuTier -eq "ElasticPremium") -or ($CurrentServicePlan.SkuTier -eq "Dynamic") -or - ($NewServicePlan.SkuTier -eq "ElasticPremium") -or ($NewServicePlan.SkuTier -eq "Dynamic"))) - { - $errorMessage = "Currently the switch is only allowed between a Consumption or an Elastic Premium plan." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidFunctionAppPlanSwitch" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function NewAppSettingObject -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [Hashtable] - $CurrentAppSetting - ) - - # Create StringDictionaryProperties (hash table) with the app settings - $properties = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionaryProperties - - foreach ($keyName in $currentAppSettings.Keys) - { - $properties.Add($keyName, $currentAppSettings[$keyName]) - } - - $appSettings = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.StringDictionary - $appSettings.Property = $properties - - return $appSettings -} - -function ContainsReservedFunctionAppSettingName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String[]] - $AppSettingName - ) - - foreach ($name in $AppSettingName) - { - if ($ReservedFunctionAppSettingNames.Contains($name)) - { - return $true - } - } - - return $false -} - -function GetFunctionAppByName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $Name, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $ResourceGroupName, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - $paramsToRemove = @( - "Name", - "ResourceGroupName" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $existingFunctionApp = Az.Functions\Get-AzFunctionApp -ResourceGroupName $ResourceGroupName ` - -Name $Name ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - - if (-not $existingFunctionApp) - { - $errorMessage = "Function app name '$Name' in resource group name '$ResourceGroupName' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FunctionAppDoesNotExist" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - return $existingFunctionApp -} -function GetAzWebAppConfig -{ - - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $Name, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $ResourceGroupName, - - [Switch] - $ErrorIfResultIsNull, - - $SubscriptionId, - $HttpPipelineAppend, - $HttpPipelinePrepend - ) - - if ($PSBoundParameters.ContainsKey("ErrorIfResultIsNull")) - { - $PSBoundParameters.Remove("ErrorIfResultIsNull") | Out-Null - } - - $resetDefaultSubscription = $false - $webAppConfig = $null - $currentSubscription = $null - try - { - $webAppConfig = Az.Functions.internal\Get-AzWebAppConfiguration -ErrorAction SilentlyContinue ` - @PSBoundParameters - - if ($null -eq $webAppConfig) - { - Write-Warning -Message "Failed to retrieve function app site config. 1st attempt" - Write-Warning -Message "Setting session context to subscription id '$($SubscriptionId)'" - - $resetDefaultSubscription = $true - $currentSubscription = (Get-AzContext).Subscription.Id - $null = Select-AzSubscription $SubscriptionId - - $webAppConfig = Az.Functions.internal\Get-AzWebAppConfiguration -ResourceGroupName $ResourceGroupName ` - -Name $Name ` - -ErrorAction SilentlyContinue ` - @PSBoundParameters - if ($null -eq $webAppConfig) - { - Write-Warning -Message "Failed to retrieve function app site config. 2nd attempt." - } - } - } - finally - { - if ($resetDefaultSubscription) - { - Write-Warning -Message "Resetting session context to subscription id '$currentSubscription'" - $null = Select-AzSubscription $currentSubscription - } - } - - if ((-not $webAppConfig) -and $ErrorIfResultIsNull) - { - $errorMessage = "Falied to get config for function app name '$Name' in resource group name '$ResourceGroupName'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FaliedToGetFunctionAppConfig" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - return $webAppConfig -} - -function NewIdentityUserAssignedIdentity -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String[]] - $IdentityID - ) - - # If creating user assigned identities, only alphanumeric characters (0-9, a-z, A-Z), the underscore (_) and the hyphen (-) are supported. - $msiUserAssignedIdentities = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentityUserAssignedIdentities - - foreach ($id in $IdentityID) - { - $functionAppUserAssignedIdentitiesValue = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ManagedServiceIdentityUserAssignedIdentities - $msiUserAssignedIdentities.Add($id, $functionAppUserAssignedIdentitiesValue) - } - - return $msiUserAssignedIdentities -} - -function GetShareSuffix -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Int] - $Length = 8 - ) - - # Create char array from 'a' to 'z' - $letters = 97..122 | ForEach-Object { [char]$_ } - $numbers = 0..9 - $alphanumericLowerCase = $letters + $numbers - - $suffix = [System.Text.StringBuilder]::new() - - for ($index = 0; $index -lt $Length; $index++) - { - $value = $alphanumericLowerCase | Get-Random - $suffix.Append($value) | Out-Null - } - - $suffix.ToString() -} - -function GetShareName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $FunctionAppName - ) - - $FunctionAppName = $FunctionAppName.ToLower() - - if ($env:FunctionsTestMode) - { - # To support the tests' playback mode, we need to have the same values for each function app creation payload. - # Adding this test hook will allows us to have a constant share name when creation an app. - - return $FunctionAppName - } - - <# - Share name restrictions: - - A share name must be a valid DNS name. - - Share names must start with a letter or number, and can contain only letters, numbers, and the dash (-) character. - - Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in share names. - - All letters in a share name must be lowercase. - - Share names must be from 3 through 63 characters long. - - Docs: https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata#share-names - #> - - # Share name will be function app name + 8 random char suffix with a max length of 60 - $MAXLENGTH = 60 - $SUFFIXLENGTH = 8 - if (($FunctionAppName.Length + $SUFFIXLENGTH) -lt $MAXLENGTH) - { - $name = $FunctionAppName - } - else - { - $endIndex = $MAXLENGTH - $SUFFIXLENGTH - 1 - $name = $FunctionAppName.Substring(0, $endIndex) - } - - $suffix = GetShareSuffix -Length $SUFFIXLENGTH - $shareName = $name + $suffix - - return $shareName -} - -Class Runtime -{ - [string]$Name - [string]$FullName - [string]$Version - [bool]$IsPreview - [string[]]$SupportedFunctionsExtensionVersions - [hashtable]$AppSettingsDictionary - [hashtable]$SiteConfigPropertiesDictionary - [bool]$IsHidden - [bool]$IsDefault - [string]$PreferredOs - [hashtable]$AppInsightsSettings -} - -function GetBuiltInFunctionAppStacksDefinition -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [Switch] - $DoNotShowWarning - ) - - if (-not $DoNotShowWarning) - { - $warmingMessage = "Failed to get Function App Stack definitions from ARM API. " - $warmingMessage += "Please open an issue at https://github.com/Azure/azure-powershell/issues with the following title: " - $warmingMessage += "[Az.Functions] Failed to get Function App Stack definitions from ARM API." - Write-Warning $warmingMessage - } - - $filePath = "$PSScriptRoot/FunctionsStack/functionAppStacks.json" - $json = Get-Content -Path $filePath -Raw - - return $json -} - -# Get the Function App Stack definition from the ARM API using the current Azure session -# -function GetFunctionAppStackDefinition -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param () - - if ($env:FunctionsTestMode -or ($null -ne $env:SYSTEM_DEFINITIONID -or $null -ne $env:Release_DefinitionId -or $null -ne $env:AZUREPS_HOST_ENVIRONMENT)) - { - Write-Debug "$DEBUG_PREFIX Running on test mode. Using built in json file definition." - $json = GetBuiltInFunctionAppStacksDefinition -DoNotShowWarning - return $json - } - - # Make sure there is an active Azure session - $context = Get-AzContext -ErrorAction SilentlyContinue - if (-not $context) - { - $errorMessage = "There is no active Azure PowerShell session. Please run 'Connect-AzAccount'" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "LoginToAzureViaConnectAzAccount" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - # Get the ResourceManagerUrl - $resourceManagerUrl = $context.Environment.ResourceManagerUrl - if ([string]::IsNullOrWhiteSpace($resourceManagerUrl)) - { - Write-Debug "$DEBUG_PREFIX context does not have a ResourceManagerUrl. Using built in json file definition." - $json = GetBuiltInFunctionAppStacksDefinition - return $json - } - - if (-not $resourceManagerUrl.EndsWith('/')) - { - $resourceManagerUrl += '/' - } - - Write-Debug "$DEBUG_PREFIX Get AccessToken." - $token = . "$PSScriptRoot/../utils/Unprotect-SecureString.ps1" (Get-AzAccessToken -AsSecureString).Token - $headers = @{ - Authorization="Bearer $token" - } - - $params = @{ - stackOsType = 'All' - removeDeprecatedStacks = 'true' - } - - $apiEndPoint = $resourceManagerUrl + "providers/Microsoft.Web/functionAppStacks?api-version=2020-10-01" - - $maxNumberOfTries = 3 - $currentCount = 1 - - Write-Debug "$DEBUG_PREFIX Set TLS 1.2" - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 - - do - { - $result = $null - try - { - Write-Debug "$DEBUG_PREFIX Pull down Function App Stack definitions from ARM API. Attempt $currentCount of $maxNumberOfTries." - $result = Invoke-WebRequest -Uri $apiEndPoint -Method Get -Headers $headers -body $params -ErrorAction Stop - } - catch - { - $exception = $_ - Write-Debug "$DEBUG_PREFIX Failed to get Function App Stack definitions from ARM API. Attempt $currentCount of $maxNumberOfTries. Error: $($exception.Message)" - } - - if ($result) - { - # Unauthorized - if ($result.StatusCode -eq 401) - { - # Get a new access token, create new headers and retry - $token = . "$PSScriptRoot/../utils/Unprotect-SecureString.ps1" (Get-AzAccessToken -AsSecureString).Token - - $headers = @{ - Authorization = "Bearer $token" - } - } - - if ($result.StatusCode -eq 200) - { - $stackDefinition = $result.Content | ConvertFrom-Json - - return $stackDefinition.value | ConvertTo-Json -Depth 100 - } - } - - $currentCount++ - - } while ($currentCount -le $maxNumberOfTries) - - - # At this point, we failed to get the stack definition from the ARM API. - # Return the built in json file definition - $json = GetBuiltInFunctionAppStacksDefinition - return $json -} - -function ContainsProperty -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.Object] - $Object, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $PropertyName - ) - - $result = $Object | Get-Member -MemberType Properties | Where-Object { $_.Name -eq $PropertyName } - return ($null -ne $result) -} - -function ParseMinorVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [System.String] - $StackMinorVersion, - - [Parameter(Mandatory=$false)] - [System.String] - $PreferredOs, - - [Parameter(Mandatory=$true)] - [PSCustomObject] - $RuntimeSettings, - - [Parameter(Mandatory=$false)] - [System.String] - $RuntimeFullName, - - [Parameter(Mandatory=$false)] - [Bool] - $StackIsLinux - ) - - # If this FunctionsVersion is not supported, skip it - if ($RuntimeSettings.supportedFunctionsExtensionVersions -notcontains "~$DefaultFunctionsVersion") - { - $supportedFunctionsExtensionVersions = $RuntimeSettings.supportedFunctionsExtensionVersions -join ", " - Write-Debug "$DEBUG_PREFIX Minimium required Functions version '$DefaultFunctionsVersion' is not supported. Runtime supported Functions versions: $supportedFunctionsExtensionVersions. Skipping..." - return - } - else - { - Write-Debug "$DEBUG_PREFIX Minimium required Functions version '$DefaultFunctionsVersion' is supported." - } - - $runtimeName = GetRuntimeName -AppSettingsDictionary $RuntimeSettings.AppSettingsDictionary - - $version = $null - if ($RuntimeName -eq "Java" -and $RuntimeSettings.RuntimeVersion -eq "1.8") - { - # Java 8 is only supported in Windows. The display value is 8; however, the actual SiteConfig.JavaVersion is 1.8 - $version = $StackMinorVersion - } - else - { - $version = $RuntimeSettings.RuntimeVersion - } - - $runtimeVersion = GetRuntimeVersion -Version $version -StackIsLinux $StackIsLinux - - # For Java function app, the version from the Stacks API is 8.0, 11.0, and 17.0. However, this is a breaking change which cannot be supported in the current release. - # We will convert the version to 8, 11, and 17. This change will be reverted for the May 2024 breaking release. - if ($RuntimeName -eq "Java") - { - $runtimeVersion = [int]$runtimeVersion - Write-Debug "$DEBUG_PREFIX Runtime version for Java is modified to be compatible with the current release. Current version '$runtimeVersion'" - } - - # For DotNet function app, the version from the Stacks API is 6.0. 7.0, and 8.0. However, this is a breaking change which cannot be supported in the current release. - # We will convert the version to 6, 7, and 8. This change will be reverted for the May 2024 breaking release. - if ($RuntimeName -like "DotNet*") - { - if ($runtimeVersion.EndsWith(".0")) - { - $runtimeVersion = [int]$runtimeVersion - } - Write-Debug "$DEBUG_PREFIX Runtime version for $runtimeName is modified to be compatible with the current release. Current version '$runtimeVersion'" - } - - $runtime = [Runtime]::new() - $runtime.Name = $runtimeName - $runtime.AppSettingsDictionary = GetDictionary -SettingsDictionary $RuntimeSettings.AppSettingsDictionary - $runtime.SiteConfigPropertiesDictionary = GetDictionary -SettingsDictionary $RuntimeSettings.SiteConfigPropertiesDictionary - $runtime.AppInsightsSettings = GetDictionary -SettingsDictionary $RuntimeSettings.AppInsightsSettings - $runtime.SupportedFunctionsExtensionVersions = GetSupportedFunctionsExtensionVersion -SupportedFunctionsExtensionVersions $RuntimeSettings.SupportedFunctionsExtensionVersions - - foreach ($propertyName in @("isPreview", "isHidden", "isDefault")) - { - if (ContainsProperty -Object $RuntimeSettings -PropertyName $propertyName) - { - Write-Debug "$DEBUG_PREFIX Runtime setting contains '$propertyName'" - $runtime.$propertyName = $RuntimeSettings.$propertyName - } - } - - # When $env:FunctionsDisplayHiddenRuntimes is set to true, we will display all runtimes - if ($runtime.IsHidden -and (-not $env:FunctionsDisplayHiddenRuntimes)) - { - Write-Debug "$DEBUG_PREFIX Runtime $runtimeName is hidden. Skipping..." - return - } - - if ($runtimeVersion -and ($runtimeName -ne "custom")) - { - Write-Debug "$DEBUG_PREFIX Runtime version: $runtimeVersion" - $runtime.Version = $runtimeVersion - } - else - { - Write-Debug "$DEBUG_PREFIX Runtime $runtimeName does not have a version." - $runtime.Version = "" - } - - if ($RuntimeFullName) - { - $runtime.FullName = $RuntimeFullName - } - - if ($PreferredOs) - { - $runtime.PreferredOs = $PreferredOs - } - - $targetOs = if ($StackIsLinux) { 'Linux' } else { 'Windows' } - Write-Debug "$DEBUG_PREFIX Runtime '$runtimeName' for '$targetOs' parsed successfully." - - return $runtime -} - - -function GetRuntimeVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [System.String] - $Version, - - [Parameter(Mandatory=$false)] - [Bool] - $StackIsLinux - ) - - if (-not $Version) - { - # Some runtimes do not have a version like custom handler - return - } - - if ($StackIsLinux) - { - $Version = $Version.Split('|')[1] - } - else - { - $valuesToReplace = @('v', '~') - foreach ($value in $valuesToReplace) - { - if ($Version.Contains($value)) - { - $Version = $Version.Replace($value, '') - } - } - } - - $Version = $Version.Trim() - return $Version -} - -function GetDictionary -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [PSCustomObject] - $SettingsDictionary - ) - - $dictionary = @{} - foreach ($property in $SettingsDictionary.PSObject.Properties) - { - $dictionary.Add($property.Name, $property.Value) - } - - return $dictionary -} - -function GetRuntimeName -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [PSCustomObject] - $AppSettingsDictionary - ) - - $settingHashTable = GetDictionary -SettingsDictionary $AppSettingsDictionary - - $name = $settingHashTable['FUNCTIONS_WORKER_RUNTIME'] - - if ($RuntimeToFormattedName.ContainsKey($name)) - { - return $RuntimeToFormattedName[$name] - } - - return $name -} - -function GetSupportedFunctionsExtensionVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String[]] - $SupportedFunctionsExtensionVersions - ) - - $supportedExtensionsVersions = @() - - foreach ($extensionVersion in $SupportedFunctionsExtensionVersions) - { - if ($extensionVersion -ge "~$DefaultFunctionsVersion") - { - $supportedExtensionsVersions += $extensionVersion - } - } - - return $supportedExtensionsVersions -} - -function AddRuntimeToDictionary -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - $Runtime, - - [Parameter(Mandatory=$true)] - [hashtable] - [Ref]$RuntimeToVersionDictionary - ) - - if ($RuntimeToVersionDictionary.ContainsKey($Runtime.Name)) - { - $list = $RuntimeToVersionDictionary[$Runtime.Name] - } - else - { - $list = New-Object System.Collections.Generic.List[[Runtime]] - } - - $list.Add($Runtime) - $RuntimeToVersionDictionary[$Runtime.Name] = $list - - # Add the runtime name and version to the all runtimes list. This is used for the tab completers - if ($AllRuntimeVersions.ContainsKey($runtime.Name)) - { - $allVersionsList = $AllRuntimeVersions[$Runtime.Name] - } - else - { - $allVersionsList = @() - } - - if (-not $allVersionsList.Contains($Runtime.Version)) - { - $allVersionsList += $Runtime.Version - $AllRuntimeVersions[$Runtime.name] = $allVersionsList - } - - # Add Functions extension version to AllFunctionsExtensionVersions. This is used for the tab completers - foreach ($extensionVersion in $Runtime.SupportedFunctionsExtensionVersions) - { - $version = $extensionVersion.Replace("~", "") - if (-not $AllFunctionsExtensionVersions.Contains($version)) - { - $AllFunctionsExtensionVersions.Add($version) - } - } -} - -function SetLinuxandWindowsSupportedRuntimes -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param () - - Write-Debug "$DEBUG_PREFIX Build function stack definitions." - - # Get Function App Runtime Definitions - $json = GetFunctionAppStackDefinition - $functionAppStackDefinition = $json | ConvertFrom-Json - - # Build a map of runtime -> runtime version -> runtime version properties - foreach ($stackDefinition in $functionAppStackDefinition) - { - $preferredOs = $stackDefinition.properties.preferredOs - - $stackName = $stackDefinition.properties.value - Write-Debug "$DEBUG_PREFIX Parsing stack name: $stackName" - - foreach ($majorVersion in $stackDefinition.properties.majorVersions) - { - foreach ($minorVersion in $majorVersion.minorVersions) - { - $runtimeFullName = $minorVersion.DisplayText - Write-Debug "$DEBUG_PREFIX runtime full name: $runtimeFullName" - - $stackMinorVersion = $minorVersion.value - Write-Debug "$DEBUG_PREFIX stack minor version: $stackMinorVersion" - $runtime = $null - - if (ContainsProperty -Object $minorVersion.stackSettings -PropertyName "windowsRuntimeSettings") - { - $runtime = ParseMinorVersion -RuntimeSettings $minorVersion.stackSettings.windowsRuntimeSettings ` - -RuntimeFullName $runtimeFullName ` - -PreferredOs $preferredOs ` - -StackMinorVersion $stackMinorVersion - - if ($runtime) - { - AddRuntimeToDictionary -Runtime $runtime -RuntimeToVersionDictionary ([Ref]$RuntimeToVersionWindows) - } - } - - if (ContainsProperty -Object $minorVersion.stackSettings -PropertyName "linuxRuntimeSettings") - { - $runtime = ParseMinorVersion -RuntimeSettings $minorVersion.stackSettings.linuxRuntimeSettings ` - -RuntimeFullName $runtimeFullName ` - -PreferredOs $preferredOs ` - -StackIsLinux $true - - if ($runtime) - { - AddRuntimeToDictionary -Runtime $runtime -RuntimeToVersionDictionary ([Ref]$RuntimeToVersionLinux) - } - } - } - } - } -} - -# This method pulls down the Functions stack definitions from the ARM API and builds a list of supported runtimes and runtime versions. -# This is used to build the tab completers for the New-AzFunctionApp cmdlet. -function RegisterFunctionsTabCompleters -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param () - - if (-not $global:StacksAndTabCompletersInitialized) - { - SetLinuxandWindowsSupportedRuntimes - - # New-AzFunction app ArgumentCompleter for the RuntimeVersion parameter - # The values of RuntimeVersion depend on the selection of the Runtime parameter - $GetRuntimeVersionCompleter = { - - param ($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) - - if ($fakeBoundParameters.ContainsKey('Runtime')) - { - # RuntimeVersions is defined in SetLinuxandWindowsSupportedRuntimes - $AllRuntimeVersions[$fakeBoundParameters.Runtime] | Where-Object { - $_ -like "$wordToComplete*" - } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } - } - } - - # New-AzFunction app ArgumentCompleter for the Runtime parameter - $GetAllRuntimesCompleter = { - - param ($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) - - $runtimeValues = $AllRuntimeVersions.Keys | Sort-Object | ForEach-Object { $_ } - - $runtimeValues | Where-Object { $_ -like "$wordToComplete*" } - } - - # New-AzFunction app ArgumentCompleter for the Runtime parameter - $GetAllFunctionsVersionsCompleter = { - - param ($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) - - $functionsVersions = $AllFunctionsExtensionVersions | Sort-Object | ForEach-Object { $_ } - - $functionsVersions | Where-Object { $_ -like "$wordToComplete*" } - } - - # Register tab completers - Register-ArgumentCompleter -CommandName New-AzFunctionApp -ParameterName FunctionsVersion -ScriptBlock $GetAllFunctionsVersionsCompleter - Register-ArgumentCompleter -CommandName New-AzFunctionApp -ParameterName Runtime -ScriptBlock $GetAllRuntimesCompleter - Register-ArgumentCompleter -CommandName New-AzFunctionApp -ParameterName RuntimeVersion -ScriptBlock $GetRuntimeVersionCompleter - - $global:StacksAndTabCompletersInitialized = $true - } -} - -function ValidateCpuAndMemory -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$false)] - [Double] - $ResourceCpu, - - [Parameter(Mandatory=$false)] - [System.String] - $ResourceMemory - ) - - if (-not $ResourceCpu -and -not $ResourceMemory) - { - return - } - - if ($ResourceCpu -and -not $ResourceMemory) - { - $errorMessage = "ResourceMemory must be specified when ResourceCpu is specified." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ResourceMemoryNotSpecified" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($ResourceMemory -and -not $ResourceCpu) - { - $errorMessage = "ResourceCpu must be specified when ResourceMemory is specified." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ResourceCpuNotSpecified" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - try - { - if (-not $ResourceMemory.ToLower().EndsWith("gi")) - { - throw - } - - # Attempt to parse the numerical part of ResourceMemory to ensure it's a valid format. - [double]::Parse($ResourceMemory.Substring(0, $ResourceMemory.Length - 2)) | Out-Null - } - catch - { - $errorMessage = "ResourceMemory must be specified in Gi. Please provide a correct value. e.g., 4.0Gi." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidResourceMemory" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } -} - -function FormatFxVersion -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Image - ) - - $fxVersion = $Image - - # Normalize case and remove HTTP(s) prefixes if present. - $normalizedImage = $Image -replace '^(https?://)', '' -replace ' ', '' - - # Prepend "DOCKER|" if not already prefixed with "docker|" (case-insensitive). - if (-not $normalizedImage.StartsWith('docker|', [StringComparison]::OrdinalIgnoreCase)) - { - $fxVersion = "DOCKER|$Image" - } - - return $fxVersion -} - -function GetManagedEnvironment -{ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.DoNotExportAttribute()] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $Environment, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [String] - $ResourceGroupName - ) - - $azAppModuleName = "Az.App" - if (-not (Get-Module -ListAvailable -Name $azAppModuleName)) - { - $errorMessage = "The '$azAppModuleName' module is required when creating Function Apps ACA. Please install the module and try again." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "RequiredModuleNotAvailable" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - Import-Module -Name $azAppModuleName -Force -ErrorAction Stop - - $managedEnv = Get-AzContainerAppManagedEnv -Name $Environment ` - -ResourceGroupName $ResourceGroupName ` - -ErrorAction SilentlyContinue - - if (-not $managedEnv) - { - $errorMessage = "Failed to get the managed environment '$Environment' in resource group name '$ResourceGroupName'." - $errorMessage += " Please make sure the managed environment is valid." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToGetEnvironment" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - return $managedEnv -} - -# SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAxovF+GzvG1LX9 -# J8FQIzCrdxqHNYqR30a/Ry2qK7JM8qCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINlF24FfqZusT9+X47wkkdkb -# r7Bq2XifwZB7kkGkrNirMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIndSVZzE0Ar56hDB7afy9Ut5HhEEaOUyOtJbFG5gFlHBWll0PTtBRKQg -# Z/qLVJ4cK9DhIgpFBj9D9ihd/6wk4cLPvFn0wSTcAqJVBk7IGA0GpC2aOCBcZBiR -# lOWCwG+T7W/8SE/J+VVUSZNSpXdeo8UEfnVhdrq1vs+o0hrdlJDjCThbPlWHOAc3 -# JKkk6o9XM8HMc9qobgmsUswlVjc63LsFoUFVSqX5UgAYSG1vSNc2iSh8jwb01Kfn -# bRBOTp8oPJQQ1kz0Yt91wR0h/kKIiG2kvm9dVXYG2PEn2JkjLMVJeXRQvI28iZ53 -# Da2BS4/cnLe6fAynqwirenMztdPdA6GCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCB2uw2bsYBAgMwai/TwLsSTACqQmQ8Ftpzlel3LuhlIegIGZ2LkgITK -# GBMyMDI1MDEwOTA2Mzc0OS4yNjVaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvXqn8bKhdWAAEAAAIAMA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjUyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr1XaadKkP2TkunoTF573 -# /tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biFIHc6LqrIeqCgT9fT/Gks -# 5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfNXszWswmL9UlWo8mzyv9L -# p9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6cSn0MlYukXklArChq6l+ -# KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnNh9M6kDaneSz78/YtD/2p -# Gpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69l5dJv71S/mH+Lxb6L692 -# n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswCqjqNc3X/WIzA7GGs4HUS -# 4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2BtxMKq3kneRoT27NQ7Y7n8 -# ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V8f5r4HaG9zPcykOyJpRZ -# y+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH6J7fJXqRPbg+H6rYLZ8X -# BpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+nHkM+zgSx8+07BVZPBKs -# looebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSAJSTavgkj -# Kqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAKPCG9njRtIqQ -# +fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdLZS0b2IDHg0yLrtdVuBi3 -# FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12iO3t6jy1hPSquzGLry/2m -# EZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q+HGyZv3v8et+rQYg8sF3 -# PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXFRFKhcSUws7mFdIDDhZpx -# qyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d45hb6PzOIF7BkcPtRtFW -# 2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6DirsJ4IG9ikId941+mWDej -# kj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+yLr8FLc7nbMa2lFSixzu -# 96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6Mk+YuxvzprkuWQJYWfpPv -# ug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVnebYRshwZIyJTsBgLZmHM7q -# 2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4lT2/N0pDbn2ffAzjZkhI+ -# Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivipL3sSLlWFbLrWjmSggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspukYwIhgPMjAyNTAxMDkwMzAwMjJaGA8yMDI1MDExMDAzMDAyMlowdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA6ym6RgIBADAKAgEAAgI9JQIB/zAHAgEAAgIT -# LDAKAgUA6ysLxgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQAnEt96NJ54 -# lVT057WZD76gmRUosNR+xLJryNUXSrET60YSG8sr4OwE26UByMg3tRkAtM4xSgr/ -# OHEvCcdURXey+JVvpN4A41YUj180gzfZJ1FJc/0qsNy5IYiFGIQYmUEuVH0NBcgv -# itG9Vn62Ti+esnCUfAMszoFnbscaHbdNp0Z2QnaUg2tLhleVhQSRW7XWTjwz2c1Z -# 44n9vVANNTW4ZxQIU8U54rNhSrWUMxppxQNMAp+s/va1B0c0ClM9VGEKpigkGngQ -# VmkepmGfAGyQe3e3HNkF5v2dmoakB8xA09E6G8+RLVymtg1rN3LbZKyLV2/Ej3B2 -# lOsREYqXk86UMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgNqcKz04P -# 9nBq+HTIouNHVF/yJLGCJqxJKGkhB3fP50kwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudIk/9KAk/ZJzCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAACAAvXqn8bKhdWAAEA -# AAIAMCIEIND+XTKnIYjqk0RlSfUVIwr3rYK4PiW/wPx2N4l88Du4MA0GCSqGSIb3 -# DQEBCwUABIICADQfStbUUz8Qd/aM+qPsKoopFafALcGByaerfZOGhltfZc9ICviX -# tcZIDIpm0g79o7V5Y6+wjMGARlAEPJ7JypIOAf8Tf8OZHPZg3ek+zS+lLy3MuKFz -# k7F8lAZY9jsyp1Xv9loZRBZRex8CTDh/XIyeknx2LfC9KLn5SRFmsEwsbE6HYls7 -# +eZHreeROqBBxQJ8SS09a1yhmL6QghvE04vQYB8gM8Musjj8s9Y7MtfI3yqW+2V/ -# 6P6qAgzZBUwBVESZkbIF5JBnjRMS3yg0Y8sVSnZK6/x2NIMzXoassrDw76g7cZr2 -# U2hd+GKCaxI2U5deWwpDfIV1IUdRqxLA3JSa1zUOqJDnoVj0GtZGPSG5a/dD2jEH -# oy1ejVX+1Ux+74ZKzeCh/A/8mgiNAeLOqUJZ085ma4B37T/K3oKQCcxfAAI/GmgT -# Ata2ZU7+jp3Bar4/RmGP7fpa5lqEvcPBZ9kKYtjSfn93ix7y4gABAWNcxCdSTWBB -# 9NhRMHfywvDLLo3r5YCKfb1l4YLieEnle97FYzVqdjml3lUiyVwZEBpnjvJt0h1b -# aR9YEKGjoP+MWskZM0FLozcyOGeBL0c910YaSDLFwOOewM0Jf3p+jqouc0glW3xc -# tClGf0cUyHcnpRzMO2UeQjA/SLGQPmO665p483yGLH8w/zbqHJHyAWtB -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionApp.ps1 deleted file mode 100644 index 4cc2e2158670..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionApp.ps1 +++ /dev/null @@ -1,888 +0,0 @@ - -function New-AzFunctionApp { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Creates a function app.')] - [CmdletBinding(SupportsShouldProcess=$true, DefaultParametersetname="Consumption")] - param( - [Parameter(ParameterSetName="Consumption", HelpMessage='The Azure subscription ID.')] - [Parameter(ParameterSetName="ByAppServicePlan")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The name of the resource group.')] - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan")] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The name of the function app.')] - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan")] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The name of the storage account.')] - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan")] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - ${StorageAccountName}, - - [Parameter(ParameterSetName="Consumption", HelpMessage='Name of the existing App Insights project to be added to the function app.')] - [Parameter(ParameterSetName="ByAppServicePlan")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - [Alias("AppInsightsName")] - ${ApplicationInsightsName}, - - [Parameter(ParameterSetName="Consumption", HelpMessage='Instrumentation key of App Insights to be added.')] - [Parameter(ParameterSetName="ByAppServicePlan")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - [System.String] - [Alias("AppInsightsKey")] - ${ApplicationInsightsKey}, - - [Parameter(Mandatory=$true, ParameterSetName="Consumption", HelpMessage='The location for the consumption plan.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Location}, - - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan", HelpMessage='The name of the service plan.')] - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage")] - [ValidateNotNullOrEmpty()] - [System.String] - ${PlanName}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='The OS to host the function app.')] - [Parameter(ParameterSetName="Consumption")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [ValidateSet("Linux", "Windows")] - [ValidateNotNullOrEmpty()] - [System.String] - # OS type (Linux or Windows) - ${OSType}, - - [Parameter(Mandatory=$true, ParameterSetName="ByAppServicePlan", HelpMessage='The function runtime.')] - [Parameter(Mandatory=$true, ParameterSetName="Consumption")] - [ValidateNotNullOrEmpty()] - [System.String] - # Runtime types are defined in HelperFunctions.ps1 - ${Runtime}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='The function runtime.')] - [Parameter(ParameterSetName="Consumption")] - [ValidateNotNullOrEmpty()] - [System.String] - # RuntimeVersion types are defined in HelperFunctions.ps1 - ${RuntimeVersion}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='The Functions version.')] - [Parameter(ParameterSetName="Consumption")] - [ValidateNotNullOrEmpty()] - [System.String] - # FunctionsVersion types are defined in HelperFunctions.ps1 - ${FunctionsVersion}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Disable creating application insights resource during the function app creation. No logs will be available.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [System.Management.Automation.SwitchParameter] - [Alias("DisableAppInsights")] - ${DisableApplicationInsights}, - - [Parameter(Mandatory=$true, ParameterSetName="CustomDockerImage", HelpMessage='Container image name, e.g., publisher/image-name:tag.')] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [System.String] - [Alias("DockerImageName")] - ${Image}, - - [Parameter(ParameterSetName="CustomDockerImage", HelpMessage='The container registry username and password. Required for private registries.')] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [PSCredential] - [Alias("DockerRegistryCredential")] - ${RegistryCredential}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Starts the operation and returns immediately, before the operation is completed. In order to determine if the operation has successfully been completed, use some other mechanism.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Runs the cmdlet as a background job.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Resource tags.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage='Function app settings.')] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNullOrEmpty()] - [Hashtable] - ${AppSetting}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage="Specifies the type of identity used for the function app. - The acceptable values for this parameter are: - - SystemAssigned - - UserAssigned - ")] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityCreateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - ${IdentityType}, - - [Parameter(ParameterSetName="ByAppServicePlan", HelpMessage="Specifies the list of user identities associated with the function app. - The user identity references will be ARM resource ids in the form: - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'")] - [Parameter(ParameterSetName="Consumption")] - [Parameter(ParameterSetName="CustomDockerImage")] - [Parameter(ParameterSetName="EnvironmentForContainerApp")] - [ValidateNotNull()] - [System.String[]] - ${IdentityID}, - - [Parameter(Mandatory=$true, ParameterSetName="EnvironmentForContainerApp", HelpMessage='Name of the container app environment.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Environment}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The workload profile name to run the container app on.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${WorkloadProfileName}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The CPU in cores of the container app. e.g., 0.75.')] - [ValidateNotNullOrEmpty()] - [Double] - ${ResourceCpu}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The memory size of the container app. e.g., 1.0Gi.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceMemory}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The maximum number of replicas when creating a function app on container app.')] - [ValidateScript({$_ -gt 0})] - [Int] - ${ScaleMaxReplica}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The minimum number of replicas when create function app on container app.')] - [ValidateScript({$_ -gt 0})] - [Int] - ${ScaleMinReplica}, - - [Parameter(Mandatory=$false, ParameterSetName="EnvironmentForContainerApp", HelpMessage='The container registry server hostname, e.g. myregistry.azurecr.io.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${RegistryServer}, - - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - $paramsToRemove = @( - "StorageAccountName", - "ApplicationInsightsName", - "ApplicationInsightsKey", - "Location", - "PlanName", - "OSType", - "Runtime", - "DisableApplicationInsights", - "Image", - "RegistryCredential", - "FunctionsVersion", - "RuntimeVersion", - "AppSetting", - "IdentityType", - "IdentityID", - "Tag", - "Environment", - "RegistryServer", - "WorkloadProfileName", - "ResourceCpu", - "ResourceMemory", - "ScaleMaxReplica", - "ScaleMinReplica" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $functionAppIsCustomDockerImage = $PsCmdlet.ParameterSetName -eq "CustomDockerImage" - $environmentForContainerApp = $PsCmdlet.ParameterSetName -eq "EnvironmentForContainerApp" - - $appSettings = New-Object -TypeName System.Collections.Generic.List[System.Object] - $siteConfig = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - $functionAppDef = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - - $runtimeJsonDefinition = $null - ValidateFunctionName -Name $Name @params - - if (-not ($functionAppIsCustomDockerImage -or $environmentForContainerApp)) - { - if (-not $FunctionsVersion) - { - $FunctionsVersion = $DefaultFunctionsVersion - Write-Warning "FunctionsVersion not specified. Setting default value to '$FunctionsVersion'. $SetDefaultValueParameterWarningMessage" - } - - ValidateFunctionsVersion -FunctionsVersion $FunctionsVersion - - if (-not $OSType) - { - $OSType = GetDefaultOSType -Runtime $Runtime - Write-Warning "OSType not specified. Setting default value to '$OSType'. $SetDefaultValueParameterWarningMessage" - } - - $runtimeJsonDefinition = GetStackDefinitionForRuntime -FunctionsVersion $FunctionsVersion -Runtime $Runtime -RuntimeVersion $RuntimeVersion -OSType $OSType - - if (-not $runtimeJsonDefinition) - { - $errorId = "FailedToGetRuntimeDefinition" - $message += "Failed to get runtime definition for '$Runtime' version '$RuntimeVersion' in Functions version '$FunctionsVersion' on '$OSType'." - $exception = [System.InvalidOperationException]::New($message) - ThrowTerminatingError -ErrorId $errorId ` - -ErrorMessage $message ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - # Add app settings - if ($runtimeJsonDefinition.AppSettingsDictionary.Count -gt 0) - { - foreach ($keyName in $runtimeJsonDefinition.AppSettingsDictionary.Keys) - { - $value = $runtimeJsonDefinition.AppSettingsDictionary[$keyName] - $appSettings.Add((NewAppSetting -Name $keyName -Value $value)) - } - } - - # Add site config properties - if ($runtimeJsonDefinition.SiteConfigPropertiesDictionary.Count -gt 0) - { - foreach ($PropertyName in $runtimeJsonDefinition.SiteConfigPropertiesDictionary.Keys) - { - $value = $runtimeJsonDefinition.SiteConfigPropertiesDictionary[$PropertyName] - $siteConfig.$PropertyName = $value - } - } - } - - $servicePlan = $null - $consumptionPlan = $PsCmdlet.ParameterSetName -eq "Consumption" - $OSIsLinux = $OSType -eq "Linux" - $dockerRegistryServerUrl = $null - - if ($consumptionPlan) - { - ValidateConsumptionPlanLocation -Location $Location -OSIsLinux:$OSIsLinux @params - $functionAppDef.Location = $Location - } - elseif ($environmentForContainerApp) - { - $OSIsLinux = $true - - if (-not $Image) - { - Write-Warning "Image not specified. Setting default value to '$DefaultCentauriImage'." - $Image = $DefaultCentauriImage - } - if ($RegistryServer) - { - $dockerRegistryServerUrl = $RegistryServer - } - - if ($Environment -and $RegistryCredential) - { - # Error out if the user has specified both Environment and RegistryCredential and not provided RegistryServer. - if (-not $RegistryServer) - { - $errorMessage = "RegistryServer is required when Environment and RegistryCredential is specified." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "RegistryServerRequired" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - } - elseif ($PlanName) - { - # Host function app in Elastic Premium or app service plan - $servicePlan = GetServicePlan $PlanName @params - - if ($null -ne $servicePlan.Location) - { - $Location = $servicePlan.Location - } - - if ($null -ne $servicePlan.Reserved) - { - $OSIsLinux = $servicePlan.Reserved - } - - $functionAppDef.ServerFarmId = $servicePlan.Id - $functionAppDef.Location = $Location - } - - if ($OSIsLinux) - { - # These are the scenarios we currently support when creating a Docker container: - # 1) In Consumption, we only support images created by Functions with a predefine runtime name and version, e.g., Python 3.7 - # 2) For App Service and Premium plans, a customer can specify a customer container image - - # Linux function app - $functionAppDef.Kind = 'functionapp,linux' - $functionAppDef.Reserved = $true - - # Bring your own container is only supported on App Service, Premium plans and Container App - if ($Image) - { - $functionAppDef.Kind = 'functionapp,linux,container' - - $appSettings.Add((NewAppSetting -Name 'DOCKER_CUSTOM_IMAGE_NAME' -Value $Image.Trim().ToLower())) - $appSettings.Add((NewAppSetting -Name 'FUNCTION_APP_EDIT_MODE' -Value 'readOnly')) - $appSettings.Add((NewAppSetting -Name 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' -Value 'false')) - - $siteConfig.LinuxFxVersion = FormatFxVersion -Image $Image - - # Parse the docker registry url only for the custom image parameter set (otherwise it will be a breaking change for existing customers). - # For the container app environment, the registry url must me explicitly provided. - if (-not $dockerRegistryServerUrl -and -not $environmentForContainerApp) - { - $dockerRegistryServerUrl = ParseDockerImage -DockerImageName $Image - } - - if ($dockerRegistryServerUrl) - { - $appSettings.Add((NewAppSetting -Name 'DOCKER_REGISTRY_SERVER_URL' -Value $dockerRegistryServerUrl)) - - if ($RegistryCredential) - { - $appSettings.Add((NewAppSetting -Name 'DOCKER_REGISTRY_SERVER_USERNAME' -Value $RegistryCredential.GetNetworkCredential().UserName)) - $appSettings.Add((NewAppSetting -Name 'DOCKER_REGISTRY_SERVER_PASSWORD' -Value $RegistryCredential.GetNetworkCredential().Password)) - } - } - } - else - { - $appSettings.Add((NewAppSetting -Name 'WEBSITES_ENABLE_APP_SERVICE_STORAGE' -Value 'true')) - } - } - else - { - # Windows function app - $functionAppDef.Kind = 'functionapp' - } - - if ($environmentForContainerApp) - { - $functionAppDef.Kind = 'functionapp,linux,container,azurecontainerapps' - $functionAppDef.Reserved = $null - $functionAppDef.HttpsOnly = $null - $functionAppDef.ScmSiteAlsoStopped = $null - $functionAppDef.HttpsOnly = $null - - ValidateCpuAndMemory -ResourceCpu $ResourceCpu -ResourceMemory $ResourceMemory - if ($ResourceCpu -and $ResourceMemory) - { - $functionAppDef.ResourceConfigCpu = $ResourceCpu - $functionAppDef.ResourceConfigMemory = $ResourceMemory - } - - if ($WorkloadProfileName) - { - $functionAppDef.WorkloadProfileName = $WorkloadProfileName - } - - $siteConfig.netFrameworkVersion = $null - $siteConfig.JavaVersion = $null - $siteConfig.Use32BitWorkerProcess = $null - $siteConfig.PowerShellVersion = $null - $siteConfig.Http20Enabled = $null - $siteConfig.LocalMySqlEnabled = $null - - if ($ScaleMinReplica) - { - $siteConfig.MinimumElasticInstanceCount = $ScaleMinReplica - } - - if ($ScaleMaxReplica) - { - $siteConfig.FunctionAppScaleLimit = $ScaleMaxReplica - } - - $managedEnvironment = GetManagedEnvironment -Environment $Environment -ResourceGroupName $ResourceGroupName - $functionAppDef.Location = $managedEnvironment.Location - $functionAppDef.ManagedEnvironmentId = $managedEnvironment.Id - } - - # Validate storage account and get connection string - $connectionString = GetConnectionString -StorageAccountName $StorageAccountName @params - $appSettings.Add((NewAppSetting -Name 'AzureWebJobsStorage' -Value $connectionString)) - $appSettings.Add((NewAppSetting -Name 'AzureWebJobsDashboard' -Value $connectionString)) - - if (-not ($functionAppIsCustomDockerImage -or $environmentForContainerApp)) - { - $appSettings.Add((NewAppSetting -Name 'FUNCTIONS_EXTENSION_VERSION' -Value "~$FunctionsVersion")) - } - - # If plan is not consumption, elastic premium or a container app environment, set always on - $planIsElasticPremium = $servicePlan.SkuTier -eq 'ElasticPremium' - if ((-not $consumptionPlan) -and (-not $planIsElasticPremium) -and (-not $Environment)) - { - $siteConfig.AlwaysOn = $true - } - - # If plan is Elastic Premium or Consumption (Windows or Linux), we need these app settings - if ($planIsElasticPremium -or $consumptionPlan) - { - $appSettings.Add((NewAppSetting -Name 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING' -Value $connectionString)) - - $shareName = GetShareName -FunctionAppName $Name - $appSettings.Add((NewAppSetting -Name 'WEBSITE_CONTENTSHARE' -Value $shareName)) - } - - if (-not $DisableApplicationInsights) - { - if ($ApplicationInsightsKey) - { - $appSettings.Add((NewAppSetting -Name 'APPINSIGHTS_INSTRUMENTATIONKEY' -Value $ApplicationInsightsKey)) - } - elseif ($ApplicationInsightsName) - { - $appInsightsProject = GetApplicationInsightsProject -Name $ApplicationInsightsName @params - if (-not $appInsightsProject) - { - $errorMessage = "Failed to get application insights key for project name '$ApplicationInsightsName'. Please make sure the project exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ApplicationInsightsProjectNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $appSettings.Add((NewAppSetting -Name 'APPINSIGHTS_INSTRUMENTATIONKEY' -Value $appInsightsProject.InstrumentationKey)) - } - else - { - $newAppInsightsProject = CreateApplicationInsightsProject -ResourceGroupName $resourceGroupName ` - -ResourceName $Name ` - -Location $functionAppDef.Location ` - @params - if ($newAppInsightsProject) - { - $appSettings.Add((NewAppSetting -Name 'APPINSIGHTS_INSTRUMENTATIONKEY' -Value $newAppInsightsProject.InstrumentationKey)) - } - else - { - $warningMessage = "Unable to create the Application Insights for the function app. Creation of Application Insights will help you monitor and diagnose your function apps in the Azure Portal. `r`n" - $warningMessage += "Use the 'New-AzApplicationInsights' cmdlet or the Azure Portal to create a new Application Insights project. After that, use the 'Update-AzFunctionApp' cmdlet to update Application Insights for your function app." - Write-Warning $warningMessage - } - } - } - - if ($Tag.Count -gt 0) - { - $resourceTag = NewResourceTag -Tag $Tag - $functionAppDef.Tag = $resourceTag - } - - # Add user app settings - if ($appSetting.Count -gt 0) - { - foreach ($keyName in $appSetting.Keys) - { - $appSettings.Add((NewAppSetting -Name $keyName -Value $appSetting[$keyName])) - } - } - - # Set function app managed identity - if ($IdentityType) - { - $functionAppDef.IdentityType = $IdentityType - - if ($IdentityType -eq "UserAssigned") - { - # Set UserAssigned managed identiy - if (-not $IdentityID) - { - $errorMessage = "IdentityID is required for UserAssigned identity" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "IdentityIDIsRequiredForUserAssignedIdentity" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - $identityUserAssignedIdentity = NewIdentityUserAssignedIdentity -IdentityID $IdentityID - $functionAppDef.IdentityUserAssignedIdentity = $identityUserAssignedIdentity - } - } - - # Set app settings and site configuration - $siteConfig.AppSetting = $appSettings - $functionAppDef.Config = $siteConfig - $PSBoundParameters.Add("SiteEnvelope", $functionAppDef) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Creating function app")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - $exceptionThrown = $false - - try - { - Az.Functions.internal\New-AzFunctionApp @PSBoundParameters - } - catch - { - $exceptionThrown = $true - - $errorMessage = GetErrorMessage -Response $_ - - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToCreateFunctionApp" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - - if (-not $exceptionThrown) - { - if ($consumptionPlan -and $OSIsLinux) - { - $message = "Your Linux function app '$Name', that uses a consumption plan has been successfully created but is not active until content is published using Azure Portal or the Functions Core Tools." - Write-Verbose $message -Verbose - } - } - } - } -} - -# SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAysI9JXbowLlbJ -# 4pzs4wTMJ4SfGJVLBz0GjLO89pKXU6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIM3LlgImWoUKlOZPNXb3+j+w -# ql9ZlcuZjZ1tj4rOW7fVMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAYsAotW1TTHHmupCv6ZeqkXoKWiiBXrVNYmyzIXoz40+7TTMzFv8riOsC -# pyRVpfFEJPVHbbzJjuRUArHidxuFZ2rNJd5HbqXBky6i6eJhslyEKE2PINY3+w7F -# vD88OR6iU1qhT7xSRIa8VH5FJsVye97WLl5hV9fEpYadOXxlKgR8LrtDOUNdWI25 -# PKwlMZXPIEtwJ2ve0R5iSDN7F1E5dNZrSlDic4LISqmquapi4obmmfC2zZy3oKJJ -# LiQLrEHgryx1rLxEVL/XgFf70Y3oEh4O/aIPx9BB8J4Gh36yP524Q8bCLUJIQ+zv -# 7ZhU7WGYMr0Tbni70IXEjKeyBB5x+6GCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDEyFB7voa76TfpauhO6pUTtZdyO3Qr2CAin0D0IM8+UwIGZ2K77bwh -# GBMyMDI1MDEwOTA2Mzc0OC4zNzJaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+KOhJgwMQEj+AAEAAAH4MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOFoXDTI1MTAyMjE4MzEwOFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxR23pXYnD2BuODdeXs2C -# u/T5kKI+bAw8cbtN50Cm/FArjXyL4RTqMe6laQ/CqeMTxgckvZr1JrW0Mi4F15rx -# /VveGhKBmob45DmOcV5xyx7h9Tk59NAl5PNMAWKAIWf270SWAAWxQbpVIhhPWCnV -# V3otVvahEad8pMmoSXrT5Z7Nk1RnB70A2bq9Hk8wIeC3vBuxEX2E8X50IgAHsyaR -# 9roFq3ErzUEHlS8YnSq33ui5uBcrFOcFOCZILuVFVTgEqSrX4UiX0etqi7jUtKyp -# gIflaZcV5cI5XI/eCxY8wDNmBprhYMNlYxdmQ9aLRDcTKWtddWpnJtyl5e3gHuYo -# j8xuDQ0XZNy7ESRwJIK03+rTZqfaYyM4XSK1s0aa+mO69vo/NmJ4R/f1+KucBPJ4 -# yUdbqJWM3xMvBwLYycvigI/WK4kgPog0UBNczaQwDVXpcU+TMcOvWP8HBWmWJQIm -# TZInAFivXqUaBbo3wAfPNbsQpvNNGu/12pg0F8O/CdRfgPHfOhIWQ0D8ALCY+Lsi -# wbzcejbrVl4N9fn2wOg2sDa8RfNoD614I0pFjy/lq1NsBo9V4GZBikzX7ZjWCRgd -# 1FCBXGpfpDikHjQ05YOkAakdWDT2bGSaUZJGVYtepIpPTAs1gd/vUogcdiL51o7s -# huHIlB6QSUiQ24XYhRbbQCECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBS9zsZzz57Q -# lT5nrt/oitLv1OQ7tjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAYfk8GzzpEVnG -# l7y6oXoytCb42Hx6TOA0+dkaBI36ftDE9tLubUa/xMbHB5rcNiRhFHZ93RefdPpc -# 4+FF0DAl5lP8xKAO+293RWPKDFOFIxgtZY08t8D9cSQpgGUzyw3lETZebNLEA17A -# /CTpA2F9uh8j84KygeEbj+bidWDiEfayoH2A5/5ywJJxIuLzFVHacvWxSCKoF9hl -# SrZSG5fXWS3namf4tt690UT6AGyWLFWe895coFPxm/m0UIMjjp9VRFH7nb3Ng2Q4 -# gPS9E5ZTMZ6nAlmUicDj0NXAs2wQuQrnYnbRAJ/DQW35qLo7Daw9AsItqjFhbMcG -# 68gDc4j74L2KYe/2goBHLwzSn5UDftS1HZI0ZRsqmNHI0TZvvUWX9ajm6SfLBTEt -# oTo6gLOX0UD/9rrhGjdkiCw4SwU5osClgqgiNMK5ndk2gxFlDXHCyLp5qB6BoPpc -# 82RhO0yCzoP9gv7zv2EocAWEsqE5+0Wmu5uarmfvcziLfU1SY240OZW8ld4sS8fn -# ybn/jDMmFAhazV1zH0QERWEsfLSpwkOXaImWNFJ5lmcnf1VTm6cmfasScYtElpjq -# Z9GooCmk1XFApORPs/PO43IcFmPRwagt00iQSw+rBeIH00KQq+FJT/62SB70g9g/ -# R8TS6k6b/wt2UWhqrW+Q8lw6Xzgex/YwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAtkQt/ebWSQ5DnG+aKRzPELCFE9GggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspkbIwIhgPMjAyNTAxMDkwMDA3MTRaGA8yMDI1MDExMDAwMDcxNFowdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA6ymRsgIBADAKAgEAAgI4NAIB/zAHAgEAAgIS -# NjAKAgUA6yrjMgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCjGHrWu30V -# S+qaHfvanyYyDmqqh6hS8P5IdktEfCKInL73NSc2gsWB/fPKwfPjKEofdwRRyvdX -# 8NDC4nzL7+kKr7S+oFtAlZl5e5iueeJLpVD5/73C43eTcpuRUC7o1Y+JHJ634L0I -# wwbPclEapYNWMzeTQolR4qe/RO6Qsa+PQ+RV/Om9lWMap4f16DgeyL80ClPEXUhd -# YUHZD5jVu/HI7zt33nJ6kphWurwD4hzxEl8ndMNtBAQDIVm5n1AoocnUOOaAWTVe -# tkFNK3JrW2tk3V5PK+ZSK8N1gW0PmjurnJP5u87pCYMSu+JNKZxQlEyWiiVscroQ -# vtM0sN1P4QOeMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAH4o6EmDAxASP4AAQAAAfgwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgJgzlmASw -# JUJmfC/fymrL+4X0pT98Y/ItWjvTpyPekwkwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCDvzDPyXw1UkAUFYt8bR4UdjM90Qv5xnVaiKD3I0Zz3WjCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+KOhJgwMQEj+AAEA -# AAH4MCIEIIDqYkMBBSXNi5DSosKMktNwXGOG4bQj+zBd999wCCwEMA0GCSqGSIb3 -# DQEBCwUABIICADt9d4YQCqlauBTexYbeLvcpq4nsYUhX+PF2Z/fmYQ3tZo9l9oO9 -# FsO5PFwLqNQlhuMSKfr9lo7ig1/QwX6yqIrwocvmWB6FPwePV5BCy0suJCeSCuIu -# t5S9Ehz1KII5s3Tz+ZmmrFx3YU0AZgfmn0+z6/mbOFdFO1LLnA0gd+IBudqAbBpo -# mnyIJncxHtLX/iS71Asex4ySXx8XjadjcD4TTYR5oBda1NAmi+Ic/krGxQE8OrhH -# sBRIEztqDBwK8OSKcBsN2ftmUst/FMbzQECvnxFUqYntlQAmFuayhnexiwvtsrGe -# aQogpmoEELtvbvq1kdAcqhquhYqX0SCqJrvKdI7hNuLXoBQftFtzcpUkQbhg+Tdv -# 94ylW7hGn+eq8DXHRjXAL1GU7Kr/jC4TA814HJ354dkXLksyXrBplf4OOwqQQltd -# Ctv8lSgv06F6oLRZIsXGRyBssuuaV5CNFcZOxch//+eTirMo469A+/XWnaUCIstL -# kq78hdzohvt1sOaA82JDJGnJ0nwA4vBPh9y/akdyX1hvzn6vq2cKFL5U7Qm7TKCp -# yR8djwOdOQszabhRJV1VAkRpFddrFQ1k5LEDkC0V9YcGooH9uWvSpnKAj2vo6lMZ -# 6c1Knk4GVW614qfJxWWumdCq1Npl9H1k+6TzV7+PmQ3979mQpRiLPr2a -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionAppPlan.ps1 deleted file mode 100644 index 4fa721ff5392..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/New-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,442 +0,0 @@ -function New-AzFunctionAppPlan { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Creates a function app service plan.')] - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, HelpMessage='Name of the App Service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, HelpMessage='The plan sku. Valid inputs are: EP1, EP2, EP3')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Sku (EP1, EP2 or EP3) - ${Sku}, - - [Parameter(Mandatory=$true, HelpMessage='The worker type for the plan. Valid inputs are: Windows or Linux.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Worker type (Linux or Windows) - ${WorkerType}, - - [Parameter(Mandatory=$true, HelpMessage='The location for the consumption plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Location}, - - [Parameter(HelpMessage='The maximum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [ValidateRange(1,100)] - [Alias("MaxBurst")] - ${MaximumWorkerCount}, - - [Parameter(HelpMessage='The minimum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [Alias("MinInstances")] - [ValidateRange(1,20)] - ${MinimumWorkerCount}, - - [Parameter(HelpMessage='Resource tags.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(HelpMessage='Run the command asynchronously.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(HelpMessage='Run the command as a job.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - foreach ($paramName in @("Sku", "WorkerType", "MaximumWorkerCount", "MinimumWorkerCount", "Location", "Tag")) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $Sku = NormalizeSku -Sku $Sku - $tier = GetSkuName -Sku $Sku - - if (($MaximumWorkerCount -gt 0) -and ($tier -ne "ElasticPremium")) - { - $errorMessage = "MaximumWorkerCount is only supported for Elastic Premium (EP) plans." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "MaximumWorkerCountIsOnlySupportedForElasticPremiumPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($MaximumWorkerCount -lt $MinimumWorkerCount) - { - $errorMessage = "MinimumWorkerCount '$($MinimumWorkerCount)' cannot be less than '$($MaximumWorkerCount)'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "MaximumWorkerCountIsOnlySupportedForElasticPremiumPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - # Validate location for a Premium plan - $OSIsLinux = $WorkerType -eq "Linux" - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - ValidatePremiumPlanLocation -Location $Location -OSIsLinux:$OSIsLinux @params - - $servicePlan = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - # Plan settings - $servicePlan.SkuTier = $tier - $servicePlan.SkuName = $Sku - $servicePlan.Location = $Location - $servicePlan.Reserved = ($WorkerType -eq "Linux") - - if ($Tag.Count -gt 0) - { - $resourceTag = NewResourceTag -Tag $Tag - $servicePlan.Tag = $resourceTag - } - - if ($MinimumWorkerCount -gt 0) - { - $servicePlan.Capacity = $MinimumWorkerCount - } - - if ($MaximumWorkerCount -gt 0) - { - $servicePlan.MaximumElasticWorkerCount = $MaximumWorkerCount - } - - # Add the service plan definition - $PSBoundParameters.Add("AppServicePlan", $servicePlan) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Creating function app plan")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - try - { - Az.Functions.internal\New-AzFunctionAppPlan @PSBoundParameters - } - catch - { - $errorMessage = GetErrorMessage -Response $_ - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToCreateFunctionAppPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - } - } -} - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBQprQljMVVDnrR -# NNzT/Aejb0rcSLA84oU1be0VS0QUmKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHOA9hWdAAHaB9nQvNo+ZPgQ -# qcemqT2iVrxCtu6qWmODMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAjf91bXBzhCuqh21DVgVjG6KLWq+Fo+mosMpjPWZ8RLSedz3Rrh6H9v8J -# 0kCrZfITs2cAE2bIqMnHPNV86Lr8qE9qrAO/apAtyUMuvVOL2cZfAs/OfRehYqHy -# AnafiasDjYgDiLyNGDEsZCf1RNrgoe3GgIMJWHemn1Mm3XzBBv7jzifroHzRBK0+ -# nyQh9z8fRhX3oyrmi+DcqwBQ4JgtUQLHvDhPuNmNgsg6AkzOh142a+YmTIX3fs5x -# z3lCrl0UKJKmtgSgmUZt4wFNCCBBHLjuZERr5ZX0wJQMRApWtaqGpNTkf3MmsC4H -# gAsPp2UAqsjPOKbdK1Lie4l0OHbctKGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAg9ge2t7LytHQcwsN3kRQ6J5nteGpm5jDEp+lGr91fbAIGZ2K0KsDd -# GBMyMDI1MDEwOTA2Mzc0OS42OThaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB91ggdQTK+8L0AAEAAAH3MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNloXDTI1MTAyMjE4MzEwNlowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjM2MDUt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0OdHTBNom6/uXKaEKP9r -# PITkT6QxF11tjzB0Nk1byDpPrFTHha3hxwSdTcr8Y0a3k6EQlwqy6ROz42e0R5eD -# W+dCoQapipDIFUOYp3oNuqwX/xepATEkY17MyXFx6rQW2NcWUJW3Qo2AuJ0HOtbl -# SpItQZPGmHnGqkt/DB45Fwxk6VoSvxNcQKhKETkuzrt8U6DRccQm1FdhmPKgDzgc -# fDPM5o+GnzbiMu6y069A4EHmLMmkecSkVvBmcZ8VnzFHTDkGLdpnDV5FXjVObAgb -# SM0cnqYSGfRp7VGHBRqyoscvR4bcQ+CV9pDjbJ6S5rZn1uA8hRhj09Hs33HRevt4 -# oWAVYGItgEsG+BrCYbpgWMDEIVnAgPZEiPAaI8wBGemE4feEkuz7TAwgkRBcUzLg -# Q4uvPqRD1A+Jkt26+pDqWYSn0MA8j0zacQk9q/AvciPXD9It2ez+mqEzgFRRsJGL -# tcf9HksvK8Jsd6I5zFShlqi5bpzf1Y4NOiNOh5QwW1pIvA5irlal7qFhkAeeeZqm -# op8+uNxZXxFCQG3R3s5pXW89FiCh9rmXrVqOCwgcXFIJQAQkllKsI+UJqGq9rmRA -# BJz5lHKTFYmFwcM52KWWjNx3z6odwz2h+sxaxewToe9GqtDx3/aU+yqNRcB8w0tS -# XUf+ylN4uk5xHEpLpx+ZNNsCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBTfRqQzP3m9 -# PZWuLf1p8/meFfkmmDAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAN0ajafILeL6S -# QIMIMAXM1Qd6xaoci2mOrpR8vKWyyTsL3b83A7XGLiAbQxTrqnXvVWWeNst5YQD8 -# saO+UTgOLJdTdfUADhLXoK+RlwjfndimIJT9MH9tUYXLzJXKhZM09ouPwNsrn8YO -# LIpdAi5TPyN8Cl11OGZSlP9r8JnvomW00AoJ4Pl9rlg0G5lcQknAXqHa9nQdWp1Z -# xXqNd+0JsKmlR8tcANX33ClM9NnaClJExLQHiKeHUUWtqyLMl65TW6wRM7XlF7Y+ -# PTnC8duNWn4uLng+ON/Z39GO6qBj7IEZxoq4o3avEh9ba43UU6TgzVZaBm8VaA0w -# SwUe/pqpTOYFWN62XL3gl/JC2pzfIPxP66XfRLIxafjBVXm8KVDn2cML9IvRK02s -# 941Y5+RR4gSAOhLiQQ6A03VNRup+spMa0k+XTPAi+2aMH5xa1Zjb/K8u9f9M05U0 -# /bUMJXJDP++ysWpJbVRDiHG7szaca+r3HiUPjQJyQl2NiOcYTGV/DcLrLCBK2zG5 -# 03FGb04N5Kf10XgAwFaXlod5B9eKh95PnXKx2LNBgLwG85anlhhGxxBQ5mFsJGkB -# n0PZPtAzZyfr96qxzpp2pH9DJJcjKCDrMmZziXazpa5VVN36CO1kDU4ABkSYTXOM -# 8RmJXuQm7mUF3bWmj+hjAJb4pz6hT5UwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAb28KDG/xXbNBjmM7/nqw3bgrEOaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspie8wIhgPMjAyNTAxMDgyMzM0MDdaGA8yMDI1MDEwOTIzMzQwN1owdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymJ7wIBADAHAgEAAgIKqTAHAgEAAgITgzAK -# AgUA6yrbbwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCbodZ7Pb1mwCj2 -# G1IGl/lPyTWeJ47OgUaM6Y7Y3Es+K2O+I17IqpzE4zUAMOUxzgMG0xHLsX2MZ7zV -# HMK6k4hVdH5OX7bUjsOdNU+ICw4Gt0MWGgMDVoq7g8AnUwi2qunDmeVFvteJFBNU -# TlorzT4JvNINF4cOVQgoHG6VEPNlY3QWq6hLCf11Ru0npscdLNRP5jMZsQWv7pBu -# 4DsbgP2dI4//EF82C8I2T8G788bT3OyZM3vI792Jh9GgRHIiT0eyFcZdENMWBvo/ -# DJZvM9mk0S4asHG7ntVDongqzkN0V4JHmQQmxkLAbpp2opdVrXIsKF3WLSaCeZa5 -# rBC4N5WsMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH3WCB1BMr7wvQAAQAAAfcwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgx2RHYFDmSQah -# ytZltv+up2ppoNuXlkAAq6G0MKEFJUgwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCAh2pjaa3ca0ecYuhu60uYHP/IKnPbedbVQJ5SoIH5Z4jCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB91ggdQTK+8L0AAEAAAH3 -# MCIEINMNhHNRkvrylXUcZSz7su05uE4QHFSi+/6mPpJEEVX4MA0GCSqGSIb3DQEB -# CwUABIICAFUAblq6uviTCQVnfNtviRm17cVcMNrAaJggpUznDdHO1G8tKCCMxf/4 -# YZFtvD/gbo9jsVTdmDaCpFA8k54adcjco2U4wYlCRDtm0bPR4gcW6YAPa2i7xnCN -# sFlihqcbBRwUh2wqao7hO6YMWW8qYfnLdgcEbfaGp3yft31HgHHbNMRqWCGvHJiQ -# qo1Dwv+DRkfxnx8hVJNhYkFM6Y0L9BX7IFq9lsIwYnaZD89XUoZ/5oGR4owmYlzP -# N16NdY+kXXW6MFdfhMQhWUBDshERMoL4D+IO4JmyNfbuXCA2ZR2QExmWo40FFBrY -# dFjJ1/VKc44ooTbuaRK4VIGSwjclQj8IAiNRh3CAmD4cnB3hyAt49db8uUgvLOJ8 -# t+yF4Ag1YKBowPyMtRSqfhZd73mEZsdcoV/OectF5XGcYVfxR/UWIt/WyT1rkbZM -# LOufLqa1qSib9kGPeb1ChWncuT46JO9VRs50pyEHZ9bPw0bttblmHareQULNct/X -# RqRpn9fcc6exazTelxlPPhv+Aa49pYjXoNTdy0uHCJBUViVR43sJiSrINWcB/YS9 -# bkBgl/FWooMaeaxXix5HfsIbnWzT1GC1fdqKVjuAGbQcMknfSeNA2oewiiYnHYCi -# ft9VXYWOL/VjEpgcEZzt+6+JmSgdrsRwou+Nq506h1MP6Et8rsCi -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionApp.ps1 deleted file mode 100644 index 42d1be143dd0..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionApp.ps1 +++ /dev/null @@ -1,340 +0,0 @@ -function Remove-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Deletes a function app.')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to remove the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name variable for the ShouldProcess and ShouldContinue calls - $Name = $InputObject.Name - } - - # Set the option to not delete an empty App Service plan - $PSBoundParameters.Add("DeleteEmptyServerFarm", $false) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Deleting function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Delete function app '$Name'? This operation cannot be undone. Are you sure?", "Deleting function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Remove-AzFunctionApp @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAbX5TTAugETLqa -# zEArYTu7O4xvqPlmTXWJcvdFTi99TaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIIeE -# Ex6RJmbnsZc1pZ0qmurpo1a9KjYxAT6K5XIsYItCMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEALkLB5nhMSPydlzPxf9arp7qQN5DX/aPyV+3x -# g7RnbEh4rtMNSJmgs9M/qMhzZuVqWnCkqnMk6qpxfTD1OujJsvML9QCYZTSfRRfG -# WU1a7Zy7s1wJOA/Y2kbOvPmRMYwP7JYXXXbwaXEjMCBCpQqjkNQ+Hk1MZoyl2PK7 -# SqThrcL8M/7q1PDPWFI7FCtKsTeJLSkOLtYrJRS2X/ihmRCBzr+PJxMc8AzQdN+G -# d9EvzINkMncpZ9nuHrrYkBwH624eMmpwJEIopDrgchhLYREaUpp6lARSKbNH2e4o -# 5Z4AXB1S5RWdA0omQuUSmA8j172TsjhjR8qU2IKaUQ7OVoaS46GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDiRSvOvN0b6ewsqC3UDXdGS4+yZ2z7dRSb -# zAlZCKz/uAIGZ2K0KsDiGBMyMDI1MDEwOTA2Mzc0OS45NTZaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB91gg -# dQTK+8L0AAEAAAH3MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwNloXDTI1MTAyMjE4MzEwNlowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjM2MDUtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# 0OdHTBNom6/uXKaEKP9rPITkT6QxF11tjzB0Nk1byDpPrFTHha3hxwSdTcr8Y0a3 -# k6EQlwqy6ROz42e0R5eDW+dCoQapipDIFUOYp3oNuqwX/xepATEkY17MyXFx6rQW -# 2NcWUJW3Qo2AuJ0HOtblSpItQZPGmHnGqkt/DB45Fwxk6VoSvxNcQKhKETkuzrt8 -# U6DRccQm1FdhmPKgDzgcfDPM5o+GnzbiMu6y069A4EHmLMmkecSkVvBmcZ8VnzFH -# TDkGLdpnDV5FXjVObAgbSM0cnqYSGfRp7VGHBRqyoscvR4bcQ+CV9pDjbJ6S5rZn -# 1uA8hRhj09Hs33HRevt4oWAVYGItgEsG+BrCYbpgWMDEIVnAgPZEiPAaI8wBGemE -# 4feEkuz7TAwgkRBcUzLgQ4uvPqRD1A+Jkt26+pDqWYSn0MA8j0zacQk9q/AvciPX -# D9It2ez+mqEzgFRRsJGLtcf9HksvK8Jsd6I5zFShlqi5bpzf1Y4NOiNOh5QwW1pI -# vA5irlal7qFhkAeeeZqmop8+uNxZXxFCQG3R3s5pXW89FiCh9rmXrVqOCwgcXFIJ -# QAQkllKsI+UJqGq9rmRABJz5lHKTFYmFwcM52KWWjNx3z6odwz2h+sxaxewToe9G -# qtDx3/aU+yqNRcB8w0tSXUf+ylN4uk5xHEpLpx+ZNNsCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBTfRqQzP3m9PZWuLf1p8/meFfkmmDAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAN0ajafILeL6SQIMIMAXM1Qd6xaoci2mOrpR8vKWyyTsL3b83A7XGLiAb -# QxTrqnXvVWWeNst5YQD8saO+UTgOLJdTdfUADhLXoK+RlwjfndimIJT9MH9tUYXL -# zJXKhZM09ouPwNsrn8YOLIpdAi5TPyN8Cl11OGZSlP9r8JnvomW00AoJ4Pl9rlg0 -# G5lcQknAXqHa9nQdWp1ZxXqNd+0JsKmlR8tcANX33ClM9NnaClJExLQHiKeHUUWt -# qyLMl65TW6wRM7XlF7Y+PTnC8duNWn4uLng+ON/Z39GO6qBj7IEZxoq4o3avEh9b -# a43UU6TgzVZaBm8VaA0wSwUe/pqpTOYFWN62XL3gl/JC2pzfIPxP66XfRLIxafjB -# VXm8KVDn2cML9IvRK02s941Y5+RR4gSAOhLiQQ6A03VNRup+spMa0k+XTPAi+2aM -# H5xa1Zjb/K8u9f9M05U0/bUMJXJDP++ysWpJbVRDiHG7szaca+r3HiUPjQJyQl2N -# iOcYTGV/DcLrLCBK2zG503FGb04N5Kf10XgAwFaXlod5B9eKh95PnXKx2LNBgLwG -# 85anlhhGxxBQ5mFsJGkBn0PZPtAzZyfr96qxzpp2pH9DJJcjKCDrMmZziXazpa5V -# VN36CO1kDU4ABkSYTXOM8RmJXuQm7mUF3bWmj+hjAJb4pz6hT5UwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAb28KDG/xXbNB -# jmM7/nqw3bgrEOaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOspie8wIhgPMjAyNTAxMDgyMzM0MDdaGA8yMDI1 -# MDEwOTIzMzQwN1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymJ7wIBADAHAgEA -# AgIKqTAHAgEAAgITgzAKAgUA6yrbbwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQCbodZ7Pb1mwCj2G1IGl/lPyTWeJ47OgUaM6Y7Y3Es+K2O+I17IqpzE4zUA -# MOUxzgMG0xHLsX2MZ7zVHMK6k4hVdH5OX7bUjsOdNU+ICw4Gt0MWGgMDVoq7g8An -# Uwi2qunDmeVFvteJFBNUTlorzT4JvNINF4cOVQgoHG6VEPNlY3QWq6hLCf11Ru0n -# pscdLNRP5jMZsQWv7pBu4DsbgP2dI4//EF82C8I2T8G788bT3OyZM3vI792Jh9Gg -# RHIiT0eyFcZdENMWBvo/DJZvM9mk0S4asHG7ntVDongqzkN0V4JHmQQmxkLAbpp2 -# opdVrXIsKF3WLSaCeZa5rBC4N5WsMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH3WCB1BMr7wvQAAQAAAfcwDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgkBoqJYpn/1QNNJE3kL5dDNs+z32q/SOj75V4pKYN97MwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCAh2pjaa3ca0ecYuhu60uYHP/IKnPbedbVQJ5So -# IH5Z4jCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 91ggdQTK+8L0AAEAAAH3MCIEINMNhHNRkvrylXUcZSz7su05uE4QHFSi+/6mPpJE -# EVX4MA0GCSqGSIb3DQEBCwUABIICALrSfejXUBYDmGy69oBaIphyBoKQE+cTXBb3 -# M8gmvw9LFqNUpfsS2BqsbceUPA+X9kZpNwHDgV75ccHoJYUO174wCnmSDHXXv2Tu -# WVhIoOYBY31McZEMI3IXjCOT+ngbyw8aPKQlxYV9xVHs28X8kblmHU8siXkcv+FJ -# wvpW6ENjHy2/PJNVcX3G1fCC+iMAs252fDdLMdIg8GEOE8uzEDGX4hRYFhEzVnIp -# kxOx/ofi3QEH7MRp5zFz+/ZvzC7L8ofNbnLNPBmVXJvQbaseNkjfoLeAyxEDWSfJ -# pCJrUh0tWHH4kOnaQNExSJrfDyiOi1Rgeu7cKdmwvwDKFoBD19DUurGyGO3v5532 -# PxXfUbcMMDzJ0h+bhzKdTB+mjXCEfdIJ0t6lZ2KUmusSzrMi1Lgdldvcrewr4a5B -# hQu+Q4lVypWh63kyfW/bXo35VVLfl4rf8BK7czDpqOhSuDujV+FzHZpP3vRHZ1sI -# rKDWxb1vHi4Lt0s7g/VpYEJksQtfo3bYpVV0+/+Y4KgKHfN3gvmPP4qtFAiNA9YD -# R09OmfPqynp7uNbGcWwoe5WC5hab9qaNnz/iY7SXMyhgp+84fR6jxGKQja1inIXj -# IIAZmKSc89G2F6qxtv0xw35GOoWM27lJipB737Pidvqvn6+5e/9ScdKYuF+OY13k -# 55JmDNzq -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppPlan.ps1 deleted file mode 100644 index 43a4fe4d63de..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,336 +0,0 @@ -function Remove-AzFunctionAppPlan { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Deletes a function app plan.')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to remove the function app plan without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name variable for the ShouldProcess and ShouldContinue calls - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Deleting function app plan")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Delete function app plan '$Name'? This operation cannot be undone. Are you sure?", "Deleting function app plan")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Remove-AzFunctionAppPlan @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDlmP7U+CnsqG3N -# +viyid5z1UD9Q00f9kwHsxB7Zh4vyKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINdzTr1O4WAkPBl1Nk68yVXM -# qWUUTaDrqcgk6trJA0PGMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEADtEq+T7aR5MoJD8HTdZY+zfVndGINyY6vo7hLoQNIpyiMwt7H8fRCzQl -# s0j0gh/pCWWGLdTpoSztJV/ECJJJkL+udfeYTDxfSxgZlpZkE+uGEgdd/4eF9R9D -# /qlstrKnHqAJrdDKc/n9G7y4YQidLoWxcNjAPt9MjPfntVy8ZfiqLs8vPPwRtIB7 -# Q49j+Usedc50J3LNmWc/A3InzYO9spCDubCRodv73UMWYULlN4jxntzgvVOKimpH -# 0cF1iVEmptluwPgd7GuRQrcwxFn/6zPWBSM/53g1kBkCj+FkKudwQZpDPjb+T6Bo -# BRm2JXLspOlyuqod7Iuuq5dnS1XQN6GCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCImJ9N8MBdMtq84RBCY+o8cP5WuxoNg1s/vadeqIeLLAIGZ2KyTuAd -# GBMyMDI1MDEwOTA2Mzc0OC4xMDVaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB9oMvJmpUXSLBAAEAAAH2MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNFoXDTI1MTAyMjE4MzEwNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZCMDUt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0UJeLMR/N9WPBZhuKVFF -# +eWJZ68Wujdj4X6JR05cxO5CepNXo17rVazwWLkm5AjaVh19ZVjDChHzimxsoaXx -# Nu8IDggKwpXvpAAItv4Ux50e9S2uVwfKv57p9JKG+Q7VONShujl1NCMkcgSrPdmd -# /8zcsmhzcNobLomrCAIORZ8IwhYy4siVQlf1NKhlyAzmkWJD0N+60IiogFBzg3yI -# SsvroOx0x1xSi2PiRIQlTXE74MggZDIDKqH/hb9FT2kK/nV/aXjuo9LMrrRmn44o -# YYADe/rO95F+SG3uuuhf+H4IriXr0h9ptA6SwHJPS2VmbNWCjQWq5G4YkrcqbPMa -# x7vNXUwu7T65E8fFPd1IuE9RsG4TMAV7XkXBopmPNfvL0hjxg44kpQn384V46o+z -# dQqy5K9dDlWm/J6vZtp5yA1PyD3w+HbGubS0niEQ1L6wGOrPfzIm0FdOn+xFo48E -# Rl+Fxw/3OvXM5CY1EqnzEznPjzJc7OJwhJVR3VQDHjBcEFTOvS9E0diNu1eocw+Z -# Ckz4Pu/oQv+gqU+bfxL8e7PFktfRDlM6FyOzjP4zuI25gD8tO9zJg6g6fRpaZc43 -# 9mAbkl3zCVzTLDgchv6SxQajJtvvoQaZxQf0tRiPcbr2HWfMoqqd9uiQ0hTUEhG4 -# 4FBSTeUPZeEenRCWadCW4G8CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRIwZsJuOcJ -# fScPWcXZuBA4B89K8jAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA13kBirH1cHu1 -# WYR1ysj125omGtQ0PaQkEzwGb70xtqSoI+svQihsgdTYxaPfp2IVFdgjaMaBi81w -# B8/nu866FfFKKdhdp3wnMZ91PpP4Ooe7Ncf6qICkgSuwgdIdQvqE0h8VQ5QW5sDV -# 4Q0Jnj4f7KHYx4NiM8C4jTw8SQtsuxWiTH2Hikf3QYB71a7dB9zgHOkW0hgUEeWO -# 9mh2wWqYS/Q48ASjOqYw/ha54oVOff22WaoH+/Hxd9NTEU/4vlvsRIMWT0jsnNI7 -# 1jVArT4Q9Bt6VShWzyqraE6SKUoZrEwBpVsI0LMg2X3hOLblC1vxM3+wMyOh97aF -# Os7sFnuemtI2Mfj8qg16BZTJxXlpPurWrG+OBj4BoTDkC9AxXYB3yEtuwMs7pRWL -# yxIxw/wV9THKUGm+x+VE0POLwkrSMgjulSXkpfELHWWiCVslJbFIIB/4Alv+jQJS -# KAJuo9CErbm2qeDk/zjJYlYaVGMyKuYZ+uSRVKB2qkEPcEzG1dO9zIa1Mp32J+zz -# W3P7suJfjw62s3hDOLk+6lMQOR04x+2o17G3LceLkkxJm41ErdiTjAmdClen9yl6 -# HgMpGS4okjFCJX+CpOFX7gBA3PVxQWubisAQbL5HgTFBtQNEzcCdh1GYw/6nzzNN -# t+0GQnnobBddfOAiqkzvItqXjvGyK1QwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAFU9eSpdxs0a06JFIuGFHIj/I+36ggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspiBIwIhgPMjAyNTAxMDgyMzI2MTBaGA8yMDI1MDEwOTIzMjYxMFowdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA6ymIEgIBADAKAgEAAgIOAwIB/zAHAgEAAgIS -# UzAKAgUA6yrZkgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQAdRwwAwjDA -# Wm10/TIJvIG7wBUH08MwBPz63PfhWXesZ/QIWGW4BTb5vyzaOISHORsM+oawsZFD -# ejqY4DgJLUiog9yUKtL9zfy7jLhMgzkG+rCQxFmLiTtQ3fnAOe17rmUPlx5dTlEb -# spLDPGNCjcd3mLurKGu0mv4+3olDoz3sFgc0koySfE2y3Qs1qeUAr05QmNTrkmh5 -# rrrwhHYY0BUBceZoS13mmu6oR58N+ucnp4YOqUoHVlxOeZ5NzFJIYhF/iclbPJgL -# ugQb96rZJ2TZUzlYyvvqmrIr7OPxPI+Muk9e8w5mkF5MP23DB163qH0FSwJqehMO -# Qq8Hd7eCIN1+MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAH2gy8malRdIsEAAQAAAfYwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgvELVDprc -# yLbGKEh+h0of/uvmaY6oziCvpNU7HBL2emMwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCArYUzxlF6m5USLS4f8NXL/8aoNEVdsCZRmF+LlQjG2ojCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9oMvJmpUXSLBAAEA -# AAH2MCIEICKBijkDRDE8uRpIHw034QmoM2z8EETENJTotJr922hMMA0GCSqGSIb3 -# DQEBCwUABIICAEQRuyo67uLFWy0sbQxabndSYIOhrTRDKn4X9mZtyMlWglcL2yag -# N/guiomxkF53bxaZHkJ/P7EhmlQNMoqMvb1xcLz/V/bcwS+2h7AlfJZJ9yBDodfn -# rpb+1PvbBWXbfDtn/qNZc3BZ6n8IxQZ/lKJ8O66oZY/2QN3A8VIFosOBRxOi1pnE -# P+07fNvDz2U+4lTvUYuBNIFBj3eO2r725juiswiBl0vqc1Rocx3D6fEVcEivPrIm -# btT/ILzbQEgvzQXE7d/nkHWfA75zSAkJZwsLyaWtU16KcsAT2XPogNbZzI8pEA3c -# zD98QktMqiVLkN+Agazi7iRhvjGKYjeOYjsVA1psLzBP/pKpkp8Jd/uvv9Q/v6y5 -# hyCc1TqicQiTtE/hnCoWaIVB9yrRu6rsn+pAhWU42w5Temdhrb6U+tfN9k9rZoDn -# 6e2kCyNlXYCDksjK7VayuKNylVY5tTOpWthyZCYus8wzv6CMnXyB8o2hoaUSHFQg -# pnKWvemou6PqJKyDFkAfEB6SfINCcE+t4WLWmmb74ysqXs6LVyvw47xsPvDEqHsg -# SxSzGT9nykKtFJ0tl/OBGnqUg+ryv7NpvgkpTN0veziK6Sb7ZSxVy8IpumFeYVvH -# 7NKAPgyvclkOeGZm5IIdF/RHXahod223uvnYd/8+3aORV/lzYE7D7toT -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppSetting.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppSetting.ps1 deleted file mode 100644 index fca9827205d8..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Remove-AzFunctionAppSetting.ps1 +++ /dev/null @@ -1,387 +0,0 @@ -function Remove-AzFunctionAppSetting { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Removes app settings from a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(Mandatory=$true, HelpMessage='List of function app settings to be removed from the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [ValidateNotNullOrEmpty()] - [String[]] - ${AppSettingName}, - - [Parameter(HelpMessage='Forces the cmdlet to remove function app setting without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - $paramsToRemove = @( - "AppSettingName" - "Force" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - $ResourceGroupName = $InputObject.ResourceGroupName - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - } - - if ($AppSettingName.Count -eq 0) - { - return - } - - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - $currentAppSettings = $null - $settings = $null - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $Name -ResourceGroupName $ResourceGroupName @params - if ($null -ne $settings) - { - $currentAppSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - - foreach ($name in $AppSettingName) - { - if (-not $currentAppSettings.ContainsKey($name)) - { - Write-Warning "App setting name '$name' does not exist. Skipping..." - } - else - { - $currentAppSettings.Remove($name) - } - } - - $newAppSettings = NewAppSettingObject -CurrentAppSetting $currentAppSettings - $shouldPromptForConfirmation = ContainsReservedFunctionAppSettingName -AppSettingName $AppSettingName - - $PSBoundParameters.Add("AppSetting", $newAppSettings) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Deleting function app setting")) - { - if ($shouldPromptForConfirmation) - { - $message = "You are about to delete app settings that are used to configure your function app '$Name'. " - $message += "Doing this could leave your function app in an inconsistent state. Are you sure?" - - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue($message, "Removing function app configuration settings")) - { - Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - } - else - { - Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - } - } -} - -# SIG # Begin signature block -# MIIoOwYJKoZIhvcNAQcCoIIoLDCCKCgCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDOjuE3Rj8ClWOR -# 7Yeat5Fa9Saku1neniCB+eqiy2U0IqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgwwghoIAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIFVt -# /yTcVnBXdRAMSxg3CqgN1KEFiJnIhn0fdo+7ocHqMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAcR54vbj+H2AH37A9qYrjJMBWHt41Mg8X0iub -# JqTIRv5h7IZdM2/Ui3cjZZdham7KBKYiHl0rk84UWqG6bdR2FmTVzYkFnIb3N7RL -# 3HHDMqTeVcr+p4tiGqxPZRe/ZodFW0eO2veDDke3wKDja0qPB0uDnk4tLKefO5Lz -# PYRsNRt0o3eGHwUndyZJT5wJw8r3+PjA8s9XXh071ZLiruv2NEn/f3GLZcleEFyS -# LvDCTEcEoPKKdhvUBwSXEHyXW9hXcJ7CWfm87jTi6mlp4R5yoJ1g8FA8LOUpa1em -# 41BctiQ7zICtV2TMALliO0/RSF/+UxbAxsngJusJR48skZ5mIaGCF5YwgheSBgor -# BgEEAYI3AwMBMYIXgjCCF34GCSqGSIb3DQEHAqCCF28wghdrAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBk1girbUO+ZeOX8Nxo+0niwPv1TrlnAYza -# 67gpyFF4hQIGZ2mP/mdmGBIyMDI1MDEwOTA2Mzc0OS4xMVowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjpFMDAyLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEe0wggcgMIIFCKADAgECAhMzAAAB7gXTAjCymp2nAAEA -# AAHuMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDU0NFoXDTI1MDMwNTE4NDU0NFowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpFMDAyLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL7xvKXXooSJrzEpLi9UvtEQ -# 45HsvNgItcS1aB6rI5WWvO4TP4CgJri0EYRKNsdNcQJ4w7A/1M94popqV9NTldIa -# OkmGkbHn1/EwmhNhY/PMPQ7ZECXIGY4EGaIsNdENAkvVG24CO8KIu6VVB6I8jxXv -# 4eFNHf3VNsLVt5LHBd90ompjWieMNrCoMkCa3CwD+CapeAfAX19lZzApK5eJkFNt -# Tl9ybduGGVE3Dl3Tgt3XllbNWX9UOn+JF6sajYiz/RbCf9rd4Y50eu9/Aht+TqVW -# rBs1ATXU552fa69GMpYTB6tcvvQ64Nny8vPGvLTIR29DyTL5V+ryZ8RdL3Ttjus3 -# 8dhfpwKwLayjJcbc7AK0sDujT/6Qolm46sPkdStLPeR+qAOWZbLrvPxlk+OSIMLV -# 1hbWM3vu3mJKXlanUcoGnslTxGJEj69jaLVxvlfZESTDdas1b+Nuh9cSz23huB37 -# JTyyAqf0y1WdDrmzpAbvYz/JpRkbYcwjfW2b2aigfb288E72MMw4i7QvDNROQhZ+ -# WB3+8RZ9M1w9YRCPt+xa5KhW4ne4GrA2ZFKmZAPNJ8xojO7KzSm9XWMVaq2rDAJx -# pj9Zexv9rGTEH/MJN0dIFQnxObeLg8z2ySK6ddj5xKofnyNaSkdtssDc5+yzt74l -# syMqZN1yOZKRvmg3ypTXAgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUEIjNPxrZ3CCe -# vfvF37a/X9x2pggwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAHdnIC9rYQo5ZJWk -# GdiTNfx/wZmNo6znvsX2jXgCeH2UrLq1LfjBeg9cTJCnW/WIjusnNlUbuulTOdrL -# af1yx+fenrLuRiQeq1K6AIaZOKIGTCEV9IHIo8jTwySWC8m8pNlvrvfIZ+kXA+ND -# Bl4joQ+P84C2liRPshReoySLUJEwkqB5jjBREJxwi6N1ZGShW/gner/zsoTSo9CY -# BH1+ow3GMjdkKVXEDjCIze01WVFsX1KCk6eNWjc/8jmnwl3jWE1JULH/yPeoztot -# Iq0PM4RQ2z5m2OHOeZmBR3v8BYcOHAEd0vntMj2HueJmR85k5edxiwrEbiCvJOyF -# TobqwBilup0wT/7+DW56vtUYgdS0urdbQCebyUB9L0+q2GyRm3ngkXbwId2wWr/t -# dUG0WXEv8qBxDKUk2eJr5qeLFQbrTJQO3cUwZIkjfjEb00ezPcGmpJa54a0mFDlk -# 3QryO7S81WAX4O/TmyKs+DR+1Ip/0VUQKn3ejyiAXjyOHwJP8HfaXPUPpOu6TgTN -# zDsTU6G04x/sMeA8xZ/pY51id/4dpInHtlNcImxbmg6QzSwuK3EGlKkZyPZiOc3O -# cKmwQ9lq3SH7p3u6VFpZHlEcBTIUVD2NFrspZo0Z0QtOz6cdKViNh5CkrlBJeOKB -# 0qUtA8GVf73M6gYAmGhl+umOridAMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA1AwggI4AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RTAwMi0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAIijptU29+UXFtRYINDdhgrLo76ToIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKc5lMCIY -# DzIwMjUwMTA5MDQyNjEzWhgPMjAyNTAxMTAwNDI2MTNaMHcwPQYKKwYBBAGEWQoE -# ATEvMC0wCgIFAOspzmUCAQAwCgIBAAICDBYCAf8wBwIBAAICFPgwCgIFAOsrH+UC -# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK -# MAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAJhUpE+o5a4erPtuEIho6c48L -# /xS8FUnNO9+is/Q+9ijVZYVOc1tMdXJQQz1n5fJzd+53VVRnrYQK9DAXEL1/nTKe -# 5oncUtDv2FbvA6jO4PtFVc+I0AzdbiE8wIpu9dXQUdzpPh/NsjyH4Ql664+gtztR -# hjtF3WLYVzQLk9R1SJATcLrzz7QRjSNCpAQ7ptEHhQ3dEBWrzRtlhjpmEoMCjMDK -# 46AEEuah63DEN91EjorKmKYi6+H1pPvW0EGutm5knFAM6SQ1PtMJO3Sej/daGVKj -# ddkG4YhdnZ028xC5wTHMQRnSVpG71oKa5kMbNUWedSTGplVMU/40dCTbllqnFTGC -# BA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 7gXTAjCymp2nAAEAAAHuMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMx -# DQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIAXxttmLrsVpYoyOhp0zBUc+ -# K6Mtop3YgJdZh4CrS9JqMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgT1B3 -# FJWF+r5V1/4M+z7kQiQHP2gJL85B+UeRVGF+MCEwgZgwgYCkfjB8MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg -# VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe4F0wIwspqdpwABAAAB7jAiBCCjSk50 -# HJud0ECORyJkNIuFQQgYuz2TfQsWj6CQziMdHTANBgkqhkiG9w0BAQsFAASCAgCz -# lX/y9ZQ8UPRnjbj/7UCjiSORVt8o0up3YXZ1Au7EaGtSlUYvxjk8W813BKPKhh1p -# umbv9I6o7/7FmomGRgY4vDRtADFk+czEd28Cgormo8Y+PZEYkOUG+L6btJ8ZVPCw -# nxVIpHuLp8X3H2orSKTcfq4trjfPbxEPHO0VitzDdg9KUfRsazhMTdq0TUH5jwYp -# Zc/A+tUK/FmH8TX7cya1EK6+4b5wrvPeE9HysVQpYelinzmWBvsMSCRrRYc89uDF -# zw34RSPl8s77s0c02hgRRZHnDOEctMYrJ5dD1ZEIF2s+GPOSfiPC3gZCdrfi0uq0 -# cT90hCUZZG63hLakU+JwyZx9L0jdu9cCz27MEJNXP3gVnm//OtYjdl8mIxy2SHhC -# 4zPddmDydZzSL0sVZWpii0Lb0top3hYXf9BMkmEYq7XyHFMpYvDsWv6HqRtdZmUi -# 3SyasVbUO1ddv5O81Sygf76qTnocFbcnj5YIriuJCDbLDuHG7nRnACwgiGym+TVV -# SYV/YabZLyzrk0zcgV56I226S7xBseEkKHXq14TAKtwUlHLACgIMlZ0MbyueOXHY -# KMcr8sAkuhCDiZWpDCe4bN4oRbdLU1lOHOGgJd/KiL4eR5seT9A3CsINKPnbGavM -# dsZ4GsuhU19K+0Z46I+op+aq5d15lFeSg/VN/3/kcQ== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Restart-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Restart-AzFunctionApp.ps1 deleted file mode 100644 index 4223099000c7..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Restart-AzFunctionApp.ps1 +++ /dev/null @@ -1,337 +0,0 @@ -function Restart-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='RestartByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Restarts a function app.')] - param( - [Parameter(ParameterSetName='RestartByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='RestartByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='RestartByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to restart the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name of the function app for the ShouldProcess and ShouldContinue calls - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Restarting function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Restart function app '$Name'?", "Restarting function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Restart-AzFunctionApp @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDvTX/yrqveCY2f -# bNAaEIECO0cZHInU/oowmreihCwD4KCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBK3HaT8CInW2SWP8CU5qMWF -# U+OBpsQfph8KnI44sXc5MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEABME6BfpZ5t9ELi6aQdWklc1AWjdJZwAafwAJeIWtSd77HNF75PJ2EROh -# wAawHiyb9XXP7EzBIY8fhG32iWz+MQINnTVNY9m1kgOGDHYsylxN3rns2E67Ffcl -# XyMZUn5JGG0/rW1cMdn+i4y5V1QhAc7Kg2JX0qPEKhDw9TEG95PD2TuyINRQKRtC -# Ax3FksobIQVvzkV8mEYzd6Skewo73t1IiXTNig6B6Osmu29gECam3dusSxVsglFE -# SK5OESjIXvRbFnga3pZKNYqdUyy0rPYiYn3jnaOVvRzhs46U2P00n5mt0bhnVQKj -# Jcly6BhoNJxdPaLDntyxK6x72Ok7VaGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBIia4DkmSPY69LBfeiof2Jj1mO2KsjZRr3SYaqUBKE3AIGZ1rjbLqT -# GBMyMDI1MDEwOTA2MzY0Mi42OTNaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCBxtCEaQ/+LobZoC35XKYgtaJsRRb0lQC+Xe/vXMZ0H -# czCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIAkOHhUutLkENpqUblq9dT -# 4uHs7gb6ycozgmwZSDNAIPbOwZGK4bhJMnuiOEPBropRHb5ganIHmhRdzW7qsoAI -# wRgL2LIErdmWT/Lp8UpgUVVvYuT85i63n179n+NNvrH2wMaM1KaeUkY01+7SsVMj -# jH4P06EXPLs1Si7iCgtKDALWY+gmecdXzFKQpRXVzkjmrgsYntGnNZvcd3v2Y01E -# Zmpo5NBUXOu6jTDoawmyqGE7SJY5jRJUQWadz5P1ZSkaYJJCUAJCYb+e/SVaDeJj -# Wlp2MzJ51rT96wpJXLhhQ7MtgJCddjJXxDbdxPfj5eySAt58zsbTrmwFAhPikz9a -# b9ZLzoH2gwMoQZXd5h897XKAlBiQg3Hh69TOZNmk7hPrKdXgBDCs+S6XnZXl/Bht -# dVFbMQXzYIQ7Q+iLsALqaHdf+CELPZkPzHAnJL4+MOshYOwRTzH8TZAEjRIKYdOf -# TlQP6ckdo+JY0qGpMcwKmcn87QxpawAeikbzGPEmKYI59fb9+3EJyV3yOFHxwIX8 -# 4FCRPMBmTh+5lbbcYBfMFeqQGuqMF9H9oyqlBB2wcF/LuGOslYutdanRk+1l4uRF -# vXkruHg6Yva2A/WTtxYEsGYxVFD4SlpROon9Cwn9Ou7YsYr5VhwkEn2QAthHlzUg -# izd6w9d7cb47OR7tThlOZ4Q= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Start-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Start-AzFunctionApp.ps1 deleted file mode 100644 index 0d8b14532304..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Start-AzFunctionApp.ps1 +++ /dev/null @@ -1,324 +0,0 @@ -function Start-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='StartByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Starts a function app.')] - param( - [Parameter(ParameterSetName='StartByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='StartByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StartByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity. - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name of the function app for the ShouldProcess call. - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Starting function app")) - { - Az.Functions.internal\Start-AzFunctionApp @PSBoundParameters - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD7nGnI/UMlVtyC -# 99kumhIQhN6C0FwZdtTa5xjVSTvOr6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIK8PlDKbMSsLfr3bm5LuO3c0 -# jQV9hP+h3eshvPb8+43NMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAQJC53qzV2xwngdOlq7XQIymhlp/Dr8MFmUTUaUk6wjS0USUGH8L8DKld -# HxiFgLeQvep+McnrE44mothEpIeuqwxamfsWIqKeMNkz90Ayo1365rWlYvVBgLNx -# TTfaVtYCAShk+M/68so6GG2tlft+eAEn38cQvlJXzf38/RLeC4+b1+TYh6CSJ0zS -# ApT6KveK5kH0Xw2ABevdpB+E/Mq/btFJqAIbO8ubtt0m2bu3FdEZ/E3+F2ju8Qbl -# Z54p9zdqL7yyu2dmjcXp4isV0aXZ61K7GroxSTHRp47WQlwss0fopxbhKzJmXPPs -# j0EhbPYSiZ5nnvBsdE4ejER2WewHu6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBgcQTcGutUjdz8Xnf63QTQvIp1jFnISHTsepXmTYBaRQIGZ1rRdmXf -# GBMyMDI1MDEwOTA2MzY0Ni4wMDVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAecujy+TC08b6QABAAAB5zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTlaFw0yNTAzMDUxODQ1MTlaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDCV58v4IuQ659XPM1DtaWMv9/HRUC5kdiEF89YBP6/ -# Rn7kjqMkZ5ESemf5Eli4CLtQVSefRpF1j7S5LLKisMWOGRaLcaVbGTfcmI1vMRJ1 -# tzMwCNIoCq/vy8WH8QdV1B/Ab5sK+Q9yIvzGw47TfXPE8RlrauwK/e+nWnwMt060 -# akEZiJJz1Vh1LhSYKaiP9Z23EZmGETCWigkKbcuAnhvh3yrMa89uBfaeHQZEHGQq -# dskM48EBcWSWdpiSSBiAxyhHUkbknl9PPztB/SUxzRZjUzWHg9bf1mqZ0cIiAWC0 -# EjK7ONhlQfKSRHVLKLNPpl3/+UL4Xjc0Yvdqc88gOLUr/84T9/xK5r82ulvRp2A8 -# /ar9cG4W7650uKaAxRAmgL4hKgIX5/0aIAsbyqJOa6OIGSF9a+DfXl1LpQPNKR79 -# 2scF7tjD5WqwIuifS9YUiHMvRLjjKk0SSCV/mpXC0BoPkk5asfxrrJbCsJePHSOE -# blpJzRmzaP6OMXwRcrb7TXFQOsTkKuqkWvvYIPvVzC68UM+MskLPld1eqdOOMK7S -# bbf2tGSZf3+iOwWQMcWXB9gw5gK3AIYK08WkJJuyzPqfitgubdRCmYr9CVsNOuW+ -# wHDYGhciJDF2LkrjkFUjUcXSIJd9f2ssYitZ9CurGV74BQcfrxjvk1L8jvtN7mul -# IwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM/+4JiAnzY4dpEf/Zlrh1K73o9YMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQB0ofDbk+llWi1cC6nsfie5Jtp09o6b6ARC -# pvtDPq2KFP+hi+UNNP7LGciKuckqXCmBTFIhfBeGSxvk6ycokdQr3815pEOaYWTn -# HvQ0+8hKy86r1F4rfBu4oHB5cTy08T4ohrG/OYG/B/gNnz0Ol6v7u/qEjz48zXZ6 -# ZlxKGyZwKmKZWaBd2DYEwzKpdLkBxs6A6enWZR0jY+q5FdbV45ghGTKgSr5ECAOn -# LD4njJwfjIq0mRZWwDZQoXtJSaVHSu2lHQL3YHEFikunbUTJfNfBDLL7Gv+sTmRi -# DZky5OAxoLG2gaTfuiFbfpmSfPcgl5COUzfMQnzpKfX6+FkI0QQNvuPpWsDU8sR+ -# uni2VmDo7rmqJrom4ihgVNdLaMfNUqvBL5ZiSK1zmaELBJ9a+YOjE5pmSarW5sGb -# n7iVkF2W9JQIOH6tGWLFJS5Hs36zahkoHh8iD963LeGjZqkFusKaUW72yMj/yxTe -# GEDOoIr35kwXxr1Uu+zkur2y+FuNY0oZjppzp95AW1lehP0xaO+oBV1XfvaCur/B -# 5PVAp2xzrosMEUcAwpJpio+VYfIufGj7meXcGQYWA8Umr8K6Auo+Jlj8IeFS6lSv -# KhqQpmdBzAMGqPOQKt1Ow3ZXxehK7vAiim3ZiALlM0K546k0sZrxdZPgpmz7O8w9 -# gHLuyZAQezCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCz -# cgTnGasSwe/dru+cPe1NF/vwQ6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymPnzAiGA8yMDI1MDEwODIzNTgy -# M1oYDzIwMjUwMTA5MjM1ODIzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKY+f -# AgEAMAcCAQACAgqMMAcCAQACAhNMMAoCBQDrKuEfAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEZtHe+7A3SvgaoN66naRZpTnp73wRcRs8dMBT3/c8PYbwX6 -# vxGPyBv1qSfycPyf9PDPX/Typ8w+8P/annh29uNumbttljO38YGNwi3IUG9QAltD -# SvoglH7QcJm1KiuZLmAzFL2BMD7cA9wCHR78jZR4LHt6D1oOhUKwPLbYbdZWPkLx -# jtfTqqXmcMxoQFvztZBl2qyhuq59akIRrkd2wSsk73bLo2YlaSsElNMFTIyPrpL+ -# /PamnIX0XpSRdWwwiJxNJs0McQpR65/Tmfbv1Z7u0DMlHQWJOyXQl1bRAqOMtisp -# xf389cbnpY4LLkQC73n7bxQVm8Gm4uYVeOOdODMxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAecujy+TC08b6QABAAAB5zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAzjbjVE1Xcxj5/2k/Sid7PtjOYdT90Y85XQGshKJt4MTCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIOU2XQ12aob9DeDFXM9UFHeEX74F -# v0ABvQMG7qC51nOtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHnLo8vkwtPG+kAAQAAAecwIgQgRJvjJ1+gVGsNoaDt9U/FTkFEV0dZ -# g7U4j7s6WjWsakEwDQYJKoZIhvcNAQELBQAEggIAPsQYbcA+aneoC4t1ev1OvF1w -# PsX+ygiRFo3rmUuNBf8B9SIGN59+Bfnb6x9B3MZKFySeGshSs9+0pZVUmoL0uLcD -# WEkWQ8njQGhaGDtqugMSBFv+bj+KtkVGiWb/ZGHYVJhBQL75JUnP5tlPho6ui/Q0 -# Aswsq4RA8YBV0cu91IKrTC+n4T1cItQaUGy5rD+E1NgIHNyv/9IUxu7LMDxwEtXo -# tV+cyd4eWNQf0g1I/9grMr/SgBEOoGd379m60QF2e1j96Mog0nh9wN1xTKdGce5E -# HyFitCyu6byZHkzsEo6te5GUerC4JVaj/WHly5HiCDtKUFlNLUEfo3WnCs2a1tFs -# ZPxUJtMfYNsj3X7auTp2QfL0cOQKoFg7VJQkMys8zOJ4dxTveO3ezZgkJrL+l6J9 -# MBOuuHKKMxjB7grJmKZCzwX9dFzQgx/5oabFzSM2ixz/YMBOwE8/OnNhnECUw5Fk -# O3qwDuMItssgm/a0g9VKAdu1TyIx1brnnkuTbXEArlSYCjOqVkdXNKSyQTNzM2VO -# IRev7TAI4gAt8zvZehRV6ve99bsiWLi9y7b/kdTa/Ke+EPjCuSQUljpRaMBKsZs5 -# UKNs76zCv7vWc1aamKbxuQzEfmAcjXczU5G8aa+j/doRjU0g2aaaG7EIsvGzDY/6 -# CyXs/lZqABhczlYIkDY= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Stop-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Stop-AzFunctionApp.ps1 deleted file mode 100644 index a9d47272157d..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Stop-AzFunctionApp.ps1 +++ /dev/null @@ -1,337 +0,0 @@ -function Stop-AzFunctionApp { - [OutputType([System.Boolean])] - [CmdletBinding(DefaultParameterSetName='StopByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Stops a function app.')] - param( - [Parameter(ParameterSetName='StopByName', Mandatory=$true, HelpMessage='The name of function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${Name}, - - [Parameter(ParameterSetName='StopByName', Mandatory=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - [ValidateNotNullOrEmpty()] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StopByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - [ValidateNotNullOrEmpty()] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNullOrEmpty()] - ${InputObject}, - - [Parameter(HelpMessage='Returns true when the command succeeds.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(HelpMessage='Forces the cmdlet to stop the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='The credentials, account, tenant, and subscription used for communication with Azure.')] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # The input object is an ISite. This needs to be transformed into a FunctionsIdentity. - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $functionsIdentity = CreateFunctionsIdentity -InputObject $InputObject - $PSBoundParameters.Add("InputObject", $functionsIdentity) | Out-Null - - # Set the name of the function app for the ShouldProcess and ShouldContinue calls. - $Name = $InputObject.Name - } - - if ($PsCmdlet.ShouldProcess($Name, "Stopping function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Stop function app '$Name'?", "Stopping function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Stop-AzFunctionApp @PSBoundParameters - } - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCplQQwwtyuWRaM -# p1Etye5gU238WMxizmxMbku665CQ3KCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIP6WeGvqKGKcAVTVE8C25+vo -# nEpDk2TLw4RUrQy7RHMoMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEANGqhpH02QpsQbqcL1YFFt3w0cQVtJKfmJOsvC67TT5MrqcthxWlxXB7q -# DyRlKVi934xE1TGes8A0UBPk6s/NwCagwCOhwFyf1y6wSW1GAhtVaJJ5Utak2KFw -# kSeZQNvhNx9dRIPGDQ+0Q2CUGSw07eU7wHTb8+NRB2QXCZQhyQY8+JjwACLSxPw7 -# YdgU/HP/9AB5XwVqAfvGjUTO/oXgSNKn4dnG3YtOFJFhC/dJAumv4NVyVm7noVfa -# W/MZAjZT3FQ0Wpj8vNy997IHTORHOztqEA/DFNBeleVFNrkesK8yWzX7sezxNAoC -# y6oeRGoD/05o0wasRz+RHIFpeF+wGqGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCQ97msjwuJZLGf0yLKnoC1ChqTnRyO/aM/eX3vUZ1uVgIGZ3gW1Ix3 -# GBMyMDI1MDEwOTA2MzY0My41NjFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAezgK6SC0JFSgAABAAAB7DANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzhaFw0yNTAzMDUxODQ1MzhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCwR/RuCTbgxUWVm/Vdul22uwdEZm0IoAFs6oIr39VK -# /ItP80cn+8TmtP67iabB4DmAKJ9GH6dJGhEPJpY4vTKRSOwrRNxVIKoPPeUF3f4V -# yHEco/u1QUadlwD132NuZCxbnh6Mi2lLG7pDvszZqMG7S3MCi2bk2nvtGKdeAIL+ -# H77gL4r01TSWb7rsE2Jb1P/N6Y/W1CqDi1/Ib3/zRqWXt4zxvdIGcPjS4ZKyQEF3 -# SEZAq4XIjiyowPHaqNbZxdf2kWO/ajdfTU85t934CXAinb0o+uQ9KtaKNLVVcNf5 -# QpS4f6/MsXOvIFuCYMRdKDjpmvowAeL+1j27bCxCBpDQHrWkfPzZp/X+bt9C7E5h -# PP6HVRoqBYR7u1gUf5GEq+5r1HA0jajn0Q6OvfYckE0HdOv6KWa+sAmJG7PDvTZa -# e77homzx6IPqggVpNZuCk79SfVmnKu9F58UAnU58TqDHEzGsQnMUQKstS3zjn6SU -# 0NLEFNCetluaKkqWDRVLEWbu329IEh3tqXPXfy6Rh/wCbwe9SCJIoqtBexBrPyQY -# A2Xaz1fK9ysTsx0kA9V1JwVV44Ia9c+MwtAR6sqKdAgRo/bs/Xu8gua8LDe6KWyu -# 974e9mGW7ZO8narDFrAT1EXGHDueygSKvv2K7wB8lAgMGJj73CQvr+jqoWwx6Xdy -# eQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFPRa0Edk/iv1whYQsV8UgEf4TIWGMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCSvMSkMSrvjlDPag8ARb0OFrAQtSLMDpN0 -# UY3FjvPhwGKDrrixmnuMfjrmVjRq1u8IhkDvGF/bffbFTr+IAnDSeg8TB9zfG/4y -# bknuopklbeGjbt7MLxpfholCERyEc20PMZKJz9SvzfuO1n5xrrLOL8m0nmv5kBcv -# +y1AXJ5QcLicmhe2Ip3/D67Ed6oPqQI03mDjYaS1NQhBNtu57wPKXZ1EoNToBk8b -# A6839w119b+a9WToqIskdRGoP5xjDIv+mc0vBHhZGkJVvfIhm4Ap8zptC7xVAly0 -# jeOv5dUGMCYgZjvoTmgd45bqAwundmPlGur7eleWYedLQf7s3L5+qfaY/xEh/9uo -# 17SnM/gHVSGAzvnreGhOrB2LtdKoVSe5LbYpihXctDe76iYtL+mhxXPEpzda3bJl -# hPTOQ3KOEZApVERBo5yltWjPCWlXxyCpl5jj9nY0nfd071bemnou8A3rUZrdgKIa -# utsH7SHOiOebZGqNu+622vJta3eAYsCAaxAcB9BiJPla7Xad9qrTYdT45VlCYTtB -# SY4oVRsedSADv99jv/iYIAGy1bCytua0o/Qqv9erKmzQCTVMXaDc25DTLcMGJrRu -# a3K0xivdtnoBexzVJr6yXqM+Ba2whIVRvGcriBkKX0FJFeW7r29XX+k0e4DnG6iB -# HKQjec6VNzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE0MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCO -# HPtgVdz9EW0iPNL/BXqJoqVMf6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ynVPTAiGA8yMDI1MDEwOTA0NTUy -# NVoYDzIwMjUwMTEwMDQ1NTI1WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKdU9 -# AgEAMAcCAQACAhryMAcCAQACAhP2MAoCBQDrKya9AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAICWG8yWRgHoXz9JYFijAGjGixH4TfXR3oGebmc8GXuqmQgC -# NMsPKXnDkMH3to/GtrDQMQzCnFrp70UayuyqzQG/17bFYhIJWLSBh8ZkfI/59STE -# Ww8GB0bM1LwicEP5C5EYXiw8hSouGSifaCcW2vTYPgC2IV+5R/WP0YG8gIjmzDxS -# Mwj1cFsa8/oWoQ7W4l9DMBzfhqPKa9g/VDsFbk/lvzJeH45AH7MdS5K6SYHFyDrn -# cVJ31h++IxmNHGXMdea0ps6k3ZACOevC5nIGQXYUKVj3+qDhINa5jBK1Nt1CAb6A -# aCE9pT7Dbh2njkY/EIlRJr3YP5Jnpgfiav16KigxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAezgK6SC0JFSgAABAAAB7DAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCBFh1q/4TvtZNObxNmKQC1qMytj6CJAC9K1M63UKsVt2jCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICcJ5vVqfTfIhx21QBBbKyo/xciQ -# IXaoMWULejAE1QqDMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHs4CukgtCRUoAAAQAAAewwIgQgnJ2RIDHfm/1iC7okcNVUdgSDqfax -# zykqLmzdwjBiKIwwDQYJKoZIhvcNAQELBQAEggIAJZn6kvDcFI1m6+ApFIqZZkPD -# xGjpOwdEnRgLA2uBFLpgFMOPWtjSUu47K+0A9C2DW6mRXLPn5LujhEGkW2S5CIbe -# UC/1u2JlGUCdM7AR79wJlZiURz0xyIU/TC+D66terb097MwazfzAefBXatUMa/AU -# K32cpHNvaIDSWKoGRfq23ckPdlkI0WBLdaiCZCw6HatDh5Vxun4kq7QtRqGVNlna -# aUxFnUXPXvk0oOhbeYOUXrUAdRZyNQ0GXh+tOBT6tPZf9e5eZnYF3frt/X/JI9Jg -# zEXC5FbmO/eSK/zkGAabSPUi6Q/0EyZ1G5Lm7rqSNJjpRBugBj/twuCKEGAuQJOi -# HgciwR4O/7NxsYekfNCWteQVqTO7eojFqAIFNZ4jf2TB8EjZ6nXzBqyoe4h8ZyG3 -# 0bknAmZyRb+inXv2TX3SkdgzLRCfm9enNAW7uwGTAJBZVJHPFK48KevUTg5bI6e0 -# /QoqcZ0JhZilJQGl0xwKStfaMNAI7167g5vogAycODwee+Odu91ZGN6xoDFpeZqL -# WAP4YZeTgmzy/KwE798OLArQwlokzjI0k+++9ZEqSROkWReW2znpUF1q8Jvm7aW1 -# G+yjB80JfEHDtfRt+2MV9UweUD1e7C4q55CFdA2nIBFMdC0m4iVmWYIVxUc9mfDq -# Lq/tK8HRj0RtKRBxWfA= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionApp.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionApp.ps1 deleted file mode 100644 index 4ce0c14f81a8..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionApp.ps1 +++ /dev/null @@ -1,585 +0,0 @@ - -function Update-AzFunctionApp { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Updates a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName="ByName", HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName='ByName', HelpMessage='The name of the resource group.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName="ByName", HelpMessage='The name of the function app.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='The name of the service plan.')] - [ValidateNotNullOrEmpty()] - [System.String] - ${PlanName}, - - [Parameter(HelpMessage='Forces the cmdlet to update the function app without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='Name of the existing App Insights project to be added to the function app.')] - [ValidateNotNullOrEmpty()] - [System.String] - [Alias("AppInsightsName")] - ${ApplicationInsightsName}, - - [Parameter(HelpMessage='Instrumentation key of App Insights to be added.')] - [ValidateNotNullOrEmpty()] - [System.String] - [System.String] - [Alias("AppInsightsKey")] - ${ApplicationInsightsKey}, - - [Parameter(HelpMessage='Resource tags.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(HelpMessage="Specifies the type of identity used for the function app. - The type 'None' will remove any identities from the function app. The acceptable values for this parameter are: - - SystemAssigned - - UserAssigned - - None - ")] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityUpdateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - ${IdentityType}, - - [Parameter(HelpMessage="Specifies the list of user identities associated with the function app. - The user identity references will be ARM resource ids in the form: - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}'")] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${IdentityID}, - - [Parameter(HelpMessage='Starts the operation and returns immediately, before the operation is completed. In order to determine if the operation has successfully been completed, use some other mechanism.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(HelpMessage='Runs the cmdlet as a background job.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - $paramsToRemove = @( - "PlanName", - "ApplicationInsightsName", - "ApplicationInsightsKey" - "IdentityType", - "IdentityID", - "Tag" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $useParams = $false - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - - $existingFunctionApp = $null - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $InputObject.ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - - $existingFunctionApp = $InputObject - } - else - { - $useParams = $true - $existingFunctionApp = GetFunctionAppByName -Name $Name -ResourceGroupName $ResourceGroupName @params - } - - $appSettings = New-Object -TypeName System.Collections.Generic.List[System.Object] - $siteCofig = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.SiteConfig - $functionAppDef = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.Site - - # Identity information - if ($IdentityType) - { - $functionAppDef.IdentityType = $IdentityType - - if ($IdentityType -eq "UserAssigned") - { - # Set UserAssigned managed identity - if (-not $IdentityID) - { - $errorMessage = "IdentityID is required for UserAssigned identity" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "IdentityIDIsRequiredForUserAssignedIdentity" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - - } - - $identityUserAssignedIdentity = NewIdentityUserAssignedIdentity -IdentityID $IdentityID - $functionAppDef.IdentityUserAssignedIdentity = $identityUserAssignedIdentity - } - } - elseif ($existingFunctionApp.IdentityType) - { - if ($existingFunctionApp.IdentityType -eq "UserAssigned") - { - $functionAppDef.IdentityType = "UserAssigned" - - if ($existingFunctionApp.IdentityUserAssignedIdentity -and $existingFunctionApp.IdentityUserAssignedIdentity.Count -gt 0) - { - $identityUserAssignedIdentity = NewIdentityUserAssignedIdentity -IdentityID $existingFunctionApp.IdentityUserAssignedIdentity.Keys - $functionAppDef.IdentityUserAssignedIdentity = $identityUserAssignedIdentity - } - } - elseif ($existingFunctionApp.IdentityType -eq "SystemAssigned") - { - $functionAppDef.IdentityType = "SystemAssigned" - } - else - { - $errorMessage = "Unknown IdentityType '$($existingFunctionApp.IdentityType)'" - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "UnknownIdentityType" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - - # Update function app hosting plan - if ($PlanName) - { - # Validate that the new plan is exists - $newFunctionAppPlan = GetServicePlan $PlanName @params - - # Get the current plan in which the app is being hosted - $currentFunctionAppPlan = GetFunctionAppServicePlanInfo $existingFunctionApp.ServerFarmId @params - - ValidatePlanSwitchCompatibility -CurrentServicePlan $currentFunctionAppPlan -NewServicePlan $newFunctionAppPlan - - $functionAppDef.ServerFarmId = $newFunctionAppPlan.Id - $functionAppDef.Location = $newFunctionAppPlan.Location - $functionAppDef.Reserved = $newFunctionAppPlan.Reserved - } - else - { - # Copy the existing function app plan settings - $functionAppDef.ServerFarmId = $existingFunctionApp.ServerFarmId - $functionAppDef.Location = $existingFunctionApp.Location - $functionAppDef.Reserved = $existingFunctionApp.Reserved - } - - # Set Application Insights - $currentApplicationSettings = $null - $settings = if ($useParams) - { - Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $existingFunctionApp.Name -ResourceGroupName $existingFunctionApp.ResourceGroupName @params - } else { - Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $existingFunctionApp.Name -ResourceGroupName $existingFunctionApp.ResourceGroupName -SubscriptionId $existingFunctionApp.SubscriptionId - } - if ($null -ne $settings) - { - $currentApplicationSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - - if ($ApplicationInsightsKey) - { - $currentApplicationSettings['APPINSIGHTS_INSTRUMENTATIONKEY'] = $ApplicationInsightsKey - } - elseif ($ApplicationInsightsName) - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - $appInsightsProject = GetApplicationInsightsProject -Name $ApplicationInsightsName @params - if (-not $appInsightsProject) - { - $errorMessage = "Failed to get application insights key for project name '$ApplicationInsightsName'. Please make sure the project exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "ApplicationInsightsProjectNotFound" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $currentApplicationSettings['APPINSIGHTS_INSTRUMENTATIONKEY'] = $appInsightsProject.InstrumentationKey - } - - # Set app settings - foreach ($appSettingName in $currentApplicationSettings.Keys) - { - $appSettingValue = $currentApplicationSettings[$appSettingName] - $appSettings.Add((NewAppSetting -Name $appSettingName -Value $appSettingValue)) - } - - # Set Tag - if ($Tag -and ($Tag.Count -gt 0)) - { - $resourceTag = NewResourceTag -Tag $Tag - $functionAppDef.Tag = $resourceTag - } - elseif ($existingFunctionApp.Tag.AdditionalProperties -and ($existingFunctionApp.Tag.AdditionalProperties.Count -gt 0)) - { - $functionAppDef.Tag = $existingFunctionApp.Tag - } - - # Set siteConfig properties: AlwaysOn, LinuxFxVersion, JavaVersion, PowerShellVersion - $siteCofig.AlwaysOn = $existingFunctionApp.SiteConfig.AlwaysOn - $siteCofig.LinuxFxVersion = $existingFunctionApp.SiteConfig.LinuxFxVersion - $siteCofig.JavaVersion = $existingFunctionApp.SiteConfig.JavaVersion - $siteCofig.PowerShellVersion = $existingFunctionApp.SiteConfig.PowerShellVersion - - # Set the function app Kind - $functionAppDef.Kind = $existingFunctionApp.Kind - - # Set app settings and site configuration - $siteCofig.AppSetting = $appSettings - $functionAppDef.Config = $siteCofig - $PSBoundParameters.Add("SiteEnvelope", $functionAppDef) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - try - { - if ($PsCmdlet.ShouldProcess($Name, "Updating function app")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Update function app '$Name'?", "Updating function app")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Set-AzFunctionApp @PSBoundParameters - } - } - } - catch - { - $errorMessage = GetErrorMessage -Response $_ - - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToUdpateFunctionApp" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB+joQ4udqc4BI7 -# 4CdnFC52vGxe/sxBTqS/Ow8BDFqjZKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBNEjK/ov1Qo9b2FP7SLuHAo -# w/SmQZh3UT2OkTkrpD4YMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEArAhvC6mDoqQGZQwvhOw7zirMeOabvJcBqG1aZfZes3wtXrH64Eysv5KP -# 7qAeG19CnNsrU+jQKnnLbMyfp3NqgcmwMCM2x2gaEfnnGaRgo7A9jEuGKrWvSWVY -# P2JR9gLQmVBdzKHk3sXGYpPR5QRmq9KhxII+9rDEvjDCnOtF/ZSnRiTcEiXohmJC -# Pae6fphtk2fNDvC0b5HNW5iQdDUPhrfuluGEXJUtycd4IzweAOI6EiD7Byxnjn/r -# 7M6msadAY5REPchLaxosMoUNx2I22IGFwU2+PrmfwXeEqgEomjW7GMSzJHfrRDQ7 -# ynBkIngkagRhE7LWUGa3jiMl1tdux6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAXL31C2RXYLyLC6ugYowMJlR9FbVwKiyxzAla5PsrniAIGZ1rLfdLi -# GBMyMDI1MDEwOTA2MzY0Mi44MDJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w -# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAekPcTB+XfESNgABAAAB6TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjZaFw0yNTAzMDUxODQ1MjZaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCsmowxQRVgp4TSc3nTa6yrAPJnV6A7aZYnTw/yx90u -# 1DSH89nvfQNzb+5fmBK8ppH76TmJzjHUcImd845A/pvZY5O8PCBu7Gq+x5Xe6plQ -# t4xwVUUcQITxklOZ1Rm9fJ5nh8gnxOxaezFMM41sDI7LMpKwIKQMwXDctYKvCyQy -# 6kO2sVLB62kF892ZwcYpiIVx3LT1LPdMt1IeS35KY5MxylRdTS7E1Jocl30NgcBi -# JfqnMce05eEipIsTO4DIn//TtP1Rx57VXfvCO8NSCh9dxsyvng0lUVY+urq/G8QR -# FoOl/7oOI0Rf8Qg+3hyYayHsI9wtvDHGnT30Nr41xzTpw2I6ZWaIhPwMu5DvdkEG -# zV7vYT3tb9tTviY3psul1T5D938/AfNLqanVCJtP4yz0VJBSGV+h66ZcaUJOxpbS -# IjImaOLF18NOjmf1nwDatsBouXWXFK7E5S0VLRyoTqDCxHG4mW3mpNQopM/U1WJn -# jssWQluK8eb+MDKlk9E/hOBYKs2KfeQ4HG7dOcK+wMOamGfwvkIe7dkylzm8BeAU -# QC8LxrAQykhSHy+FaQ93DAlfQYowYDtzGXqE6wOATeKFI30u9YlxDTzAuLDK073c -# ndMV4qaD3euXA6xUNCozg7rihiHUaM43Amb9EGuRl022+yPwclmykssk30a4Rp3v -# 9QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJF+M4nFCHYjuIj0Wuv+jcjtB+xOMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBWsSp+rmsxFLe61AE90Ken2XPgQHJDiS4S -# bLhvzfVjDPDmOdRE75uQohYhFMdGwHKbVmLK0lHV1Apz/HciZooyeoAvkHQaHmLh -# wBGkoyAAVxcaaUnHNIUS9LveL00PwmcSDLgN0V/Fyk20QpHDEukwKR8kfaBEX83A -# yvQzlf/boDNoWKEgpdAsL8SzCzXFLnDozzCJGq0RzwQgeEBr8E4K2wQ2WXI/ZJxZ -# S/+d3FdwG4ErBFzzUiSbV2m3xsMP3cqCRFDtJ1C3/JnjXMChnm9bLDD1waJ7TPp5 -# wYdv0Ol9+aN0t1BmOzCj8DmqKuUwzgCK9Tjtw5KUjaO6QjegHzndX/tZrY792dfR -# AXr5dGrKkpssIHq6rrWO4PlL3OS+4ciL/l8pm+oNJXWGXYJL5H6LNnKyXJVEw/1F -# bO4+Gz+U4fFFxs2S8UwvrBbYccVQ9O+Flj7xTAeITJsHptAvREqCc+/YxzhIKkA8 -# 8Q8QhJKUDtazatJH7ZOdi0LCKwgqQO4H81KZGDSLktFvNRhh8ZBAenn1pW+5UBGY -# z2GpgcxVXKT1CuUYdlHR9D6NrVhGqdhGTg7Og/d/8oMlPG3YjuqFxidiIsoAw2+M -# hI1zXrIi56t6JkJ75J69F+lkh9myJJpNkx41sSB1XK2jJWgq7VlBuP1BuXjZ3qgy -# m9r1wv0MtTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCr -# aYf1xDk2rMnU/VJo2GGK1nxo8aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJpTAiGA8yMDI1MDEwODIzMzI1 -# M1oYDzIwMjUwMTA5MjMzMjUzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYml -# AgEAMAcCAQACAiY0MAcCAQACAhO3MAoCBQDrKtslAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAAQlwho/Cpc2tSYw1vt8Nusm/AJf/Yqg9evZ8PETElVrzhay -# zWqvq1NvLQUDBF/h2v4OUD3KLxjhCUKlA/o7mMBoFc7qpe/AyIaAE19CN0TkdcyL -# Ea/SMG0cUnkOoFF+Oo+eSKd3uznYnmYR9I06LuajHlThXy6N7GOr7J6gOB8vBmPs -# T7MG2CqyCfzRkz32sb2aUq0NAptBFpcJne91zFxwTUaXk5wQRyQe94HO9RW2NESk -# Z9EwvsW2ePzGIpcqLVg7IuOBlV/s89WyfkeoQqlWEdJ4LeuzNFzcn08O6mzom6HB -# rpKEVa7+cHp+6zz+CnEsBGgajWh5fn53NsRbIGoxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAekPcTB+XfESNgABAAAB6TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAbayWVZBUbHiGjIw3WMEIplq6U976NaWknird+eEa9kDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIKSQkniXaTcmj1TKQWF+x2U4riVo -# rGD8TwmgVbN9qsQlMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHpD3Ewfl3xEjYAAQAAAekwIgQgVsI9sjr04+BLBnuWLK2e0f0duiPI -# futB9xw9G6dDkcIwDQYJKoZIhvcNAQELBQAEggIAaEHRJ0rnEBCBaTt/Gfq+xryH -# r8BdEqXx9P08PiGKQSgcnrl8TzMCOSZvrEch3Ek01j2ePoKv7t4NoIE98JMfYc+/ -# 4Fqixnwow3kEfyGbMptq+s3+j8xxyzqyHVRgKZ0f8eWAqBsGiTCItHOOc/pDws9m -# LnS6u9unOHi1e+BXT//BqZ9JarINg+ziQVRbm4IiQktzpGD48pO8WoszlbUtx7HO -# ZNZOppQSDy4rj06iPL8SrWKRHND9ktaVWIgC0ZBYmToJiFLI+80dMMl01LL1f5Qh -# xZ7JFKA7jwUlSChkw+vukSC9L5DlLTGnuYodTJ9NKu0mnRHRM0AklQosv7KsS3aC -# vb8Z/PsNerxbGKWhhr/h0/7vPMDTNzIH+w1jAzDlC7QC5CnGsf0FDoSgwi+ZyRDg -# JhE9UTh0Hcd3oFIyfEql4QSHrWMnRaLtIOOThhHftzyAo0e+PBpy30dsFhOzpAqq -# II/fARPN7i358CN0lMCWJ9KMeAZq/1BDcF686QLBJLU460rIMtvJQq6yUHqagv97 -# 8a5H+nDe9d8A6kFlbWvC3W2defroZqywtW/ltYNIWILNQHMN9KebUC1FUQhbZ56M -# MIyOKvLgd/SzfZx7KBEz1IGPK/RO6KIPbVvlFKcQXaG6c0rcQaHBAwKzrfsTnT7D -# icS+gK4QxlE/ISyzwJI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppPlan.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppPlan.ps1 deleted file mode 100644 index 9a5391d93d4a..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppPlan.ps1 +++ /dev/null @@ -1,507 +0,0 @@ -function Update-AzFunctionAppPlan { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Updates a function app service plan.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(Mandatory=$true, ParameterSetName='ByName', HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(Mandatory=$true, ParameterSetName='ByName', HelpMessage='Name of the App Service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(HelpMessage='The plan sku. Valid inputs are: EP1, EP2, EP3')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [ValidateNotNullOrEmpty()] - [System.String] - # Sku (EP1, EP2 or EP3) - ${Sku}, - - [Parameter(HelpMessage='The maximum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [ValidateRange(1,100)] - [Alias("MaxBurst")] - ${MaximumWorkerCount}, - - [Parameter(HelpMessage='The minimum number of workers for the app service plan.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - [Alias("MinInstances")] - [ValidateRange(1,20)] - ${MinimumWorkerCount}, - - [Parameter(HelpMessage='Forces the cmdlet to update the function app plan without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(HelpMessage='Resource tags.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - [ValidateNotNull()] - ${Tag}, - - [Parameter(HelpMessage='Run the command asynchronously.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${NoWait}, - - [Parameter(HelpMessage='Run the command as a job.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets. - foreach ($paramName in @("Sku", "MaximumWorkerCount", "MinimumWorkerCount", "Tag")) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - $existingPlan = $null - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - } - - $Name = $InputObject.Name - $ResourceGroupName = $InputObject.ResourceGroupName - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - - $existingPlan = $InputObject - } - else - { - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - $existingPlan = Az.Functions.internal\Get-AzFunctionAppPlan -ResourceGroupName $ResourceGroupName ` - -Name $Name ` - -ErrorAction SilentlyContinue ` - @params - - if (-not $existingPlan) - { - $errorMessage = "Plan name '$Name' in resource group name '$ResourceGroupName' does not exist." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "PlanDoesNotExist" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - } - - # Make sure the plan is a 'ElasticPremium' - if ($existingPlan.SkuTier -ne "ElasticPremium") - { - $errorMessage = "Only ElasticPremium sku is suported when updating a function app plan. Current plan sku is: $($existingPlan.SkuTier)." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "InvalidPlanSku" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - if ($MaximumWorkerCount -lt $MinimumWorkerCount) - { - $errorMessage = "MinimumWorkerCount '$($MinimumWorkerCount)' cannot be less than '$($MaximumWorkerCount)'." - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "MaximumWorkerCountIsOnlySupportedForElasticPremiumPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - $shouldUpdateFunctionAppPlan = $false; - $servicePlan = New-Object -TypeName Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.AppServicePlan - - # Plan settings - $servicePlan.Location = $existingPlan.Location - $servicePlan.SkuTier = $existingPlan.SkuTier - $servicePlan.SkuName = $existingPlan.SkuName - $servicePlan.Capacity = $existingPlan.Capacity - $servicePlan.Reserved = $existingPlan.Reserved - - if ($existingPlan.MaximumElasticWorkerCount) - { - $servicePlan.MaximumElasticWorkerCount = $existingPlan.MaximumElasticWorkerCount - } - - if ($Sku) - { - $Sku = NormalizeSku -Sku $Sku - $tier = GetSkuName -Sku $Sku - if ($existingPlan.SkuName -ne $SkuName) - { - $servicePlan.SkuTier = $tier - $servicePlan.SkuName = $Sku - $shouldUpdateFunctionAppPlan = $true - } - } - - if ($Tag -and ($Tag.Count -gt 0)) - { - $resourceTag = NewResourceTag -Tag $Tag - $servicePlan.Tag = $resourceTag - $shouldUpdateFunctionAppPlan = $true - } - - if ($MinimumWorkerCount -gt 0) - { - $servicePlan.Capacity = $MinimumWorkerCount - $shouldUpdateFunctionAppPlan = $true - } - - if ($MaximumWorkerCount -gt 0) - { - $servicePlan.MaximumElasticWorkerCount = $MaximumWorkerCount - $shouldUpdateFunctionAppPlan = $true - } - - # Add the service plan definition - $PSBoundParameters.Add("AppServicePlan", $servicePlan) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app plan")) - { - # Save the ErrorActionPreference - $currentErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference = 'Stop' - - try - { - if (-not $shouldUpdateFunctionAppPlan) - { - # No changes for the current plan, return. - return - } - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app plan")) - { - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue("Update function app plan '$Name'?", "Updating function app plan")) - { - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - if ($PSBoundParameters.ContainsKey("Force")) - { - $PSBoundParameters.Remove("Force") | Out-Null - } - - Az.Functions.internal\Set-AzFunctionAppPlan @PSBoundParameters - } - } - } - catch - { - $errorMessage = GetErrorMessage -Response $_ - if ($errorMessage) - { - $exception = [System.InvalidOperationException]::New($errorMessage) - ThrowTerminatingError -ErrorId "FailedToUpdateFunctionAppPlan" ` - -ErrorMessage $errorMessage ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $exception - } - - throw $_ - } - finally - { - # Reset the ErrorActionPreference - $ErrorActionPreference = $currentErrorActionPreference - } - } - } -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAl+y6s0M00na4y -# DS6Ej1lLyl5+Dk94c/AmGx+5SX21bqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/u2axFj9wKmOfTey3x4Q9U -# 7q6+kSlXEOMoaRpGY3ByMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAG9RvcUwdcjzFsu5YK/78t754pE1R2faB4LsA9UHHuNYx4ML4eRqmwxTf -# eeRsLuZi53wqePJ71JLhzf297Fc3EenfsobELNCisoMFvBhSYuQd5lFKiEt7prQi -# PUwL7EtgVbCnLE9MO9AeRcP1alTX2CINT1a8LMHDU7IRaas76gTZNmXbREmbgidD -# zNboSAlYJxguArPTgeT7nOohPhqI0AtQezB86Ln8PRNYlYpScJBI+q1CVhNkqS+L -# p85Y+TY+zVpBvCa9etBDbyzhPjMfpF2RE1yb7sOLx45nqlK8vD/F4ySNFmwr9024 -# FhugxaOJ+FXG4NSU2k52zgjh57Vc3qGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBVmRlxHaYk9NDlSNKop6Pylwrmk8b2pjzkuV62X4tCggIGZ1rjbLqZ -# GBMyMDI1MDEwOTA2MzY0Mi44NTVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCCQZDkQkRIgt3aT+0t+MMyHx+ZIlXLYdXdncYq7w5sW -# 2zCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIAYwZ2uSXrs84tRlfKhMqx -# BpzC/bMrEcyUfi964sh71Fy75swULmKpmklV8std2EXydDIURy+GWs1Z7/XVbNiM -# QGB/1u+CNXt1wYchByOW+X7dRPmUFfND4PuVdXyu3NAZMWV7slepjJxnaNj2ooYN -# d2alnix83ED1PJEvpI7zdMszqNNXjSbnA1crySMkpfStAmjBVTF/YTBtrxINyAfL -# hq6SrXlxeGe8D9+MZ8c2J+9paBMwB3T4bU67ADGbAEQncyOox2eYXQj7EGNaQeRX -# mGJGHVE8SHxTCgsJMfviDpeMi6V9oo5+mzX+u+bzrpUjGTJ3fsyymBYYBYSdP8Vo -# Ls2Ub5HUZreGhE7MZhvsaYvKv23S6fwimNwm+izK7z5UM+X67yUZQAHPi02oaKku -# i2sATYp9dJU/PQA3M8DE9fXwfSJaHdnshkroxp0ACENigd2PqPkv0mJrb1YVwFrg -# OUxa8QLLN4v3k7B8cX3XCuermVLlpT5Log+rorDMOAurpTawnXNc3e5gp9MrL+R/ -# L7GyPH9tsFrFg013MVGM2N7M7MkXOAn7stJ98KQmUFB9Rp67BcIxhVhrNfKfYje/ -# QlWBtrD0Q7oi7egqzs1ZeU3qpbb4hA4M5ZQDkV1ncN1+FscFS0ZOpvjdP3mB06tj -# 0nC49vp5V/bkh6UOdzOYWiw= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppSetting.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppSetting.ps1 deleted file mode 100644 index f512c48542af..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/Update-AzFunctionAppSetting.ps1 +++ /dev/null @@ -1,391 +0,0 @@ -function Update-AzFunctionAppSetting { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Description('Adds or updates app settings in a function app.')] - [CmdletBinding(DefaultParameterSetName='ByName', SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the function app.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory=$true, HelpMessage='Name of the resource group to which the resource belongs.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [ValidateNotNullOrEmpty()] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', HelpMessage='The Azure subscription ID.')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [ValidateNotNullOrEmpty()] - [System.String] - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - [ValidateNotNull()] - ${InputObject}, - - [Parameter(Mandatory=$true, HelpMessage='Hashtable with keys and values describe the app settings to be added or updated in the function app. For example: @{"myappsetting"="123"}')] - [Hashtable] - [ValidateNotNullOrEmpty()] - ${AppSetting}, - - [Parameter(HelpMessage='Forces the cmdlet to update function app setting without prompting for confirmation.')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - - RegisterFunctionsTabCompleters - - # Remove bound parameters from the dictionary that cannot be process by the intenal cmdlets - $paramsToRemove = @( - "AppSetting" - "Force" - ) - foreach ($paramName in $paramsToRemove) - { - if ($PSBoundParameters.ContainsKey($paramName)) - { - $PSBoundParameters.Remove($paramName) | Out-Null - } - } - - if ($PsCmdlet.ParameterSetName -eq "ByObjectInput") - { - if ($PSBoundParameters.ContainsKey("InputObject")) - { - $PSBoundParameters.Remove("InputObject") | Out-Null - - $Name = $InputObject.Name - $ResourceGroupName = $InputObject.ResourceGroupName - - $PSBoundParameters.Add("Name", $Name) | Out-Null - $PSBoundParameters.Add("ResourceGroupName", $ResourceGroupName) | Out-Null - $PSBoundParameters.Add("SubscriptionId", $InputObject.SubscriptionId) | Out-Null - } - } - - if ($AppSetting.Count -eq 0) - { - return - } - - $params = GetParameterKeyValues -PSBoundParametersDictionary $PSBoundParameters ` - -ParameterList @("SubscriptionId", "HttpPipelineAppend", "HttpPipelinePrepend") - - $currentAppSettings = $null - $settings = $null - $settings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $Name -ResourceGroupName $ResourceGroupName @params - if ($null -ne $settings) - { - $currentAppSettings = ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $settings -ShowAllAppSettings - } - - # Add new or replace any existing app settings - foreach ($keyName in $AppSetting.Keys) - { - $currentAppSettings[$keyName] = $AppSetting[$keyName] - } - - $newAppSettings = NewAppSettingObject -CurrentAppSetting $currentAppSettings - $shouldPromptForConfirmation = ContainsReservedFunctionAppSettingName -AppSettingName $AppSetting.Keys - - $PSBoundParameters.Add("AppSetting", $newAppSettings) | Out-Null - - if ($PsCmdlet.ShouldProcess($Name, "Updating function app setting")) - { - if ($shouldPromptForConfirmation) - { - $message = "You are about to modify app settings that are used to configure your function app '$Name'. " - $message += "Doing this could leave your function app in an inconsistent state. Are you sure?" - - if ($Force.IsPresent -or $PsCmdlet.ShouldContinue($message, "Updating function app settings")) - { - Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - } - else - { - $null = Az.Functions.internal\Set-AzWebAppApplicationSetting @PSBoundParameters | Out-Null - } - - # The latest API version does not return the list of app settings. Make a second call to retrieve them. - $updatedSettings = Az.Functions.internal\Get-AzWebAppApplicationSetting -Name $Name -ResourceGroupName $ResourceGroupName @params - - if ($null -ne $updatedSettings) - { - ConvertWebAppApplicationSettingToHashtable -ApplicationSetting $updatedSettings ` - -AppSettingsToShow $AppSetting.Keys ` - -ShowOnlySpecificAppSettings - } - } - } -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCZKNI32ttjtAjl -# 9jSO+jeAc0VXrohc/IKOWRHZIlYkWKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAxDIyTsLZnnqYaSdNOKzxtx -# q1+WIZMazmZacnYmWb6cMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAGkYLXTrcjIY38t70mX66ZXbJuWQNcGROBPpVC+qUd8MslUJsiwsXzhOb -# OFWgeWZqRkePx/X2oULmaY2esLrdvc6GR55hFYJALutRCoXPpUtxonyh9dLsPj0Q -# 38XCYHvSUAEgU6jBHrABmUEhpjc7WjtU5D9uU41z0W6tg7y4HmasP8tMb+s2LUd4 -# z8Raezb8tZ2Y9BSH23wvz3WFb5t3wSzIVPL/BGoyvvWoet64A8gRroOzZIAaWImN -# NFcU82X4IcQxwQmXWNWDgARjGZabvfkgJJ4P0uN7Dcri30nEzrUblBArz8Nuxj0D -# WvzWFr0p+DNJXvponGcn+NDaCSlrw6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAUlle1fJurdmOmIWrK4W/GGMoCw7ExolmJu2kN547+xwIGZ1r0VeQB -# GBMyMDI1MDEwOTA2MzY1MC4wMzdaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwABAAAB7TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7zD7g88NpbEaQ6SjcTIRbz -# CVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayMyW4YIpFPZP2x4FBMVCdd -# seF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFBz8j0oLWGy3VgLmBTKM4x -# Lqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQMWhykpG+vXDwcpWvwDe+ -# TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQQNC8nLmIvdKkAoWEMXtJ -# sGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5OCEmW6YchEyRDSwP4hU9 -# f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRGtcJ9yBNC5BaRktjz7stP -# aojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF6BHv2TvwlVBeQRN22Xja -# VVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr7wT0zl0iXr+NtqUkWSOn -# WRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8Xf9PTPMzZXDJBI1EciR/9 -# 1QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4gGUsTvTW+r1JZMxUT2Mw -# qQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAqBEfKlAZf0NKh4CIZMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0eHi+iE6/qDY8sbbsO4ema -# ncp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bFI7dXYw09p3vCipbjy4Eo -# ifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCNp0jlJ188/CuRPgqJnfq5 -# EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZqeTIQ0raOItZnFuGDy4+ -# xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr2zrWuceDhz7sKLttLTJ7 -# ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GUkMqc51FsNdG1n+zgc7zH -# u2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Ndk5TeMR8Js2kNUicu2CqZ -# 03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzabtS4JQgUnJrIZfyosk4D1 -# 8rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu4ntkzFUxBBpbFG6k1CIN -# ZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2kGOixDJHsahZVmwsoNvh -# y5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSpMhoJ33V2Za/lkKcbkUM0 -# SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDu -# HayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAiGA8yMDI1MDEwOTAyMjcx -# MloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKbKA -# AgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGduJWnWonsXKPptDkaQJ/jq -# h8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLhoCdhGggzU70J4s1ohAeSn -# auOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+8LXELYRPEXTUNdh0t/Ta -# lsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWccZ+NRtVCuFswqT17sqnw -# 5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/qE0g6Mum/F0YyC9SyYuzJ -# k8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3hX8vV96VdcwABAAAB7TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCCxStZwxWZLwGMqMjllCxddsorxH7MYOzrinkq/tmCiEjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0CFseKxK3A16l1wrIwrsS -# DrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFotPXySbWtoYQzcjhOI+Gdz -# M2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAHh1EKG9j8jF/vjlw6+wl57cU -# ChbG3DdJJehULP4HgLQcKEKcx2vn7FBBOSm1XwaRMre5z/xO879gmgwhNj9JQKzz -# eD9PuCJeN44xe+FbbtQ6jyvaAq0f6UrMWN5B7tW7HIA4o497JLEyyPMJA/1h2nmZ -# dVJoNZf8yi8s/l1Uvyogg9J7BjFlRhL5Szqk/augOvbpgPsqujP94UJ+Xj1w+7O3 -# RHvAexRsl5a3GEBk0cCHlc9RNczdJfRG1j+Q0ICHVa1NEYfXO+F4LJpjQp7wx1zQ -# js/Q9i9aGS/Om4XO3Gg9kYGT9IiEsbmfnYnB7bYI/D6mknt/7Jpx4g73RiPEGyZR -# z/EsokEUr7oxMkn6DQrmbqr2fLS4jMcgbIDKdTsSwYQlyLRIgosEKywB4s4H+ExI -# PhH9t2mrJaaSiHGb4oIR56x5sj8dVgR3HY/1W6OUjz5FiOO/bWFDzoljWCnqjj7y -# zBafmxNbFt9sgz5M5cByCi+AIDMmQqGvHfccWkXQcC7gimtieNaK0+BOfARt5DPk -# lB8Qc0SxFQ7+/1hnm26FvI6Xv7G1rLIl81qoPXGigyH+xxeCdkpzfo66cxf9nJSv -# CAIN+jykDWijrifg/1LPYg0ITHUY4Bjrei10JtwwFEdMYTaUOBvr9QG6nRqdLdm0 -# MPGydTUQQTvZ7vfl8dI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/AvailablePlanType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/AvailablePlanType.cs deleted file mode 100644 index 89fcb576c4fa..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/AvailablePlanType.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AvailablePlanType))] - public partial struct AvailablePlanType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Consumption".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Consumption", "Consumption", global::System.Management.Automation.CompletionResultType.ParameterValue, "Consumption"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Premium".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Premium", "Premium", global::System.Management.Automation.CompletionResultType.ParameterValue, "Premium"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityCreateType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityCreateType.cs deleted file mode 100644 index 848a2ba83ddc..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityCreateType.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityCreateType))] - public partial struct FunctionAppManagedServiceIdentityCreateType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("SystemAssigned", "SystemAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("UserAssigned", "UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserAssigned"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityUpdateType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityUpdateType.cs deleted file mode 100644 index 75b1d58a4b60..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/FunctionAppManagedServiceIdentityUpdateType.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityUpdateType))] - public partial struct FunctionAppManagedServiceIdentityUpdateType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("SystemAssigned", "SystemAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("UserAssigned", "UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserAssigned"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("None", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/PlanType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/PlanType.cs deleted file mode 100644 index 81be45e3279a..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/PlanType.cs +++ /dev/null @@ -1,29 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for PlanTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.PlanType))] - public partial struct PlanType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Premium".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Premium", "Premium", global::System.Management.Automation.CompletionResultType.ParameterValue, "Premium"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/SkuType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/SkuType.cs deleted file mode 100644 index 3e638776246e..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/SkuType.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for SkuOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType))] - public partial struct SkuType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "EP1".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("EP1", "EP1", global::System.Management.Automation.CompletionResultType.ParameterValue, "EP1"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "EP2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("EP2", "EP2", global::System.Management.Automation.CompletionResultType.ParameterValue, "EP2"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "EP3".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("EP3", "EP3", global::System.Management.Automation.CompletionResultType.ParameterValue, "EP3"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/WorkerType.cs b/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/WorkerType.cs deleted file mode 100644 index 8c427ac2a14c..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/custom/api/Support/WorkerType.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace Microsoft.Azure.PowerShell.Cmdlets.Functions.Support -{ - /// Argument completer implementation for WorkerTypeOptions. - [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType))] - public partial struct WorkerType : - System.Management.Automation.IArgumentCompleter - { - - /// - /// Implementations of this function are called by PowerShell to complete arguments. - /// - /// The name of the command that needs argument completion. - /// The name of the parameter that needs argument completion. - /// The (possibly empty) word being completed. - /// The command ast in case it is needed for completion. - /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot - /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. - /// - /// A collection of completion results, most like with ResultType set to ParameterValue. - /// - public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) - { - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Linux".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Linux", "Linux", global::System.Management.Automation.CompletionResultType.ParameterValue, "Linux"); - } - if (global::System.String.IsNullOrEmpty(wordToComplete) || "Windows".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) - { - yield return new global::System.Management.Automation.CompletionResult("Windows", "Windows", global::System.Management.Automation.CompletionResultType.ParameterValue, "Windows"); - } - } - } -} diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/exports/ProxyCmdletDefinitions.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/exports/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 339debe01b69..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/exports/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,5265 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Gets function apps in a subscription. -.Description -Gets function apps in a subscription. -.Example -Get-AzFunctionApp -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -Name Functions1-Windows-DoNet -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -.Example -Get-AzFunctionApp -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8b -.Example -Get-AzFunctionApp -Location "Central US" - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionapp -#> -function Get-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='GetAll', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByLocation', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The location of the function app. - ${Location}, - - [Parameter(ParameterSetName='ByResourceGroupName', Mandatory)] - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByResourceGroupName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Use to specify whether to include deployment slots in results. - ${IncludeSlot}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - GetAll = 'Az.Functions.custom\Get-AzFunctionApp'; - ByLocation = 'Az.Functions.custom\Get-AzFunctionApp'; - ByResourceGroupName = 'Az.Functions.custom\Get-AzFunctionApp'; - ByName = 'Az.Functions.custom\Get-AzFunctionApp'; - } - if (('GetAll', 'ByLocation', 'ByResourceGroupName', 'ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Gets the location where a function app for the given os and plan type is available. -.Description -Gets the location where a function app for the given os and plan type is available. -.Example -Get-AzFunctionAppAvailableLocation -.Example -Get-AzFunctionAppAvailableLocation -PlanType Premium -OSType Linux -.Example -Get-AzFunctionAppAvailableLocation -PlanType Consumption -OSType Windows - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappavailablelocation -#> -function Get-AzFunctionAppAvailableLocation { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Position=1)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AvailablePlanType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The plan type. - # Valid inputs: Consumption or Premium - ${PlanType}, - - [Parameter(Position=2)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The OS type for the service plan. - ${OSType}, - - [Parameter(Position=3)] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(Position=4, DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(Position=5, DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(Position=6, DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(Position=7, DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.Functions.custom\Get-AzFunctionAppAvailableLocation'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Get function apps plans in a subscription. -.Description -Get function apps plans in a subscription. -.Example -Get-AzFunctionAppPlan -.Example -Get-AzFunctionAppPlan -ResourceGroupName "West Europe" -.Example -Get-AzFunctionAppPlan -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8z -.Example -Get-AzFunctionAppPlan -Location "Central US" - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappplan -#> -function Get-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='GetAll', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByLocation', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The location of the function app plan. - ${Location}, - - [Parameter(ParameterSetName='ByResourceGroupName')] - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The service plan name. - ${Name}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - GetAll = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - ByLocation = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - ByResourceGroupName = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - ByName = 'Az.Functions.custom\Get-AzFunctionAppPlan'; - } - if (('GetAll', 'ByLocation', 'ByResourceGroupName', 'ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Gets app settings for a function app. -.Description -Gets app settings for a function app. -.Example -Get-AzFunctionAppSetting -Name MyAppName -ResourceGroupName MyResourceGroupName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappsetting -#> -function Get-AzFunctionAppSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Get-AzFunctionAppSetting'; - ByObjectInput = 'Az.Functions.custom\Get-AzFunctionAppSetting'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Creates a function app. -.Description -Creates a function app. -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -Location centralUS ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -DockerImageName myacr.azurecr.io/myimage:tag -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -StorageAccountName MyStorageAccountName ` - -Environment MyEnvironment ` - -WorkloadProfileName MyWorkloadProfileName - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionapp -#> -function New-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='Consumption', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the function app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the storage account. - ${StorageAccountName}, - - [Parameter(ParameterSetName='Consumption', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The location for the consumption plan. - ${Location}, - - [Parameter(ParameterSetName='Consumption', Mandatory)] - [Parameter(ParameterSetName='ByAppServicePlan', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The function runtime. - ${Runtime}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Alias('AppInsightsName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the existing App Insights project to be added to the function app. - ${ApplicationInsightsName}, - - [Parameter()] - [Alias('AppInsightsKey')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Instrumentation key of App Insights to be added. - ${ApplicationInsightsKey}, - - [Parameter(ParameterSetName='Consumption')] - [Parameter(ParameterSetName='ByAppServicePlan')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The OS to host the function app. - ${OSType}, - - [Parameter(ParameterSetName='Consumption')] - [Parameter(ParameterSetName='ByAppServicePlan')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The function runtime. - ${RuntimeVersion}, - - [Parameter(ParameterSetName='Consumption')] - [Parameter(ParameterSetName='ByAppServicePlan')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The Functions version. - ${FunctionsVersion}, - - [Parameter()] - [Alias('DisableAppInsights')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Disable creating application insights resource during the function app creation. - # No logs will be available. - ${DisableApplicationInsights}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Collections.Hashtable] - # Function app settings. - ${AppSetting}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityCreateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Specifies the type of identity used for the function app. - # The acceptable values for this parameter are: - # - SystemAssigned - # - UserAssigned - ${IdentityType}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Specifies the list of user identities associated with the function app. - # The user identity references will be ARM resource ids in the form: - # '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}' - ${IdentityID}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the container app environment. - ${Environment}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Parameter(ParameterSetName='CustomDockerImage', Mandatory)] - [Alias('DockerImageName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Container image name, e.g., publisher/image-name:tag. - ${Image}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Parameter(ParameterSetName='CustomDockerImage')] - [Alias('DockerRegistryCredential')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.PSCredential] - # The container registry username and password. - # Required for private registries. - ${RegistryCredential}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The workload profile name to run the container app on. - ${WorkloadProfileName}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # The CPU in cores of the container app. - # e.g., 0.75. - ${ResourceCpu}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The memory size of the container app. - # e.g., 1.0Gi. - ${ResourceMemory}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The maximum number of replicas when creating a function app on container app. - ${ScaleMaxReplica}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The minimum number of replicas when create function app on container app. - ${ScaleMinReplica}, - - [Parameter(ParameterSetName='EnvironmentForContainerApp')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The container registry server hostname, e.g. - # myregistry.azurecr.io. - ${RegistryServer}, - - [Parameter(ParameterSetName='CustomDockerImage', Mandatory)] - [Parameter(ParameterSetName='ByAppServicePlan', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the service plan. - ${PlanName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Starts the operation and returns immediately, before the operation is completed. - # In order to determine if the operation has successfully been completed, use some other mechanism. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Runs the cmdlet as a background job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - Consumption = 'Az.Functions.custom\New-AzFunctionApp'; - EnvironmentForContainerApp = 'Az.Functions.custom\New-AzFunctionApp'; - CustomDockerImage = 'Az.Functions.custom\New-AzFunctionApp'; - ByAppServicePlan = 'Az.Functions.custom\New-AzFunctionApp'; - } - if (('Consumption', 'EnvironmentForContainerApp', 'CustomDockerImage', 'ByAppServicePlan') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Creates a function app service plan. -.Description -Creates a function app service plan. -.Example -New-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -Location WestEurope ` - -MinimumWorkerCount 1 ` - -MaximumWorkerCount 10 ` - -Sku EP1 ` - -WorkerType Windows - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionappplan -#> -function New-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The location for the consumption plan. - ${Location}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The plan sku. - # Valid inputs are: EP1, EP2, EP3 - ${Sku}, - - [Parameter()] - [Alias('MaxBurst')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The maximum number of workers for the app service plan. - ${MaximumWorkerCount}, - - [Parameter()] - [Alias('MinInstances')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The minimum number of workers for the app service plan. - ${MinimumWorkerCount}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.WorkerType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.String] - # The worker type for the plan. - # Valid inputs are: Windows or Linux. - ${WorkerType}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.Functions.custom\New-AzFunctionAppPlan'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Deletes a function app. -.Description -Deletes a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionApp -Force -.Example -Remove-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionapp -#> -function Remove-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to remove the function app without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Remove-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Remove-AzFunctionApp'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Deletes a function app plan. -.Description -Deletes a function app plan. -.Example -Get-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionAppPlan -Force -.Example -Remove-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionappplan -#> -function Remove-AzFunctionAppPlan { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to remove the function app plan without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Remove-AzFunctionAppPlan'; - ByObjectInput = 'Az.Functions.custom\Remove-AzFunctionAppPlan'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Removes app settings from a function app. -.Description -Removes app settings from a function app. -.Example -Remove-AzFunctionAppSetting -Name MyAppName -ResourceGroupName MyResourceGroupName -AppSettingName "MyAppSetting1", "MyAppSetting2" - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionappsetting -#> -function Remove-AzFunctionAppSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of function app settings to be removed from the function app. - ${AppSettingName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to remove function app setting without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Remove-AzFunctionAppSetting'; - ByObjectInput = 'Az.Functions.custom\Remove-AzFunctionAppSetting'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Restarts a function app. -.Description -Restarts a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Restart-AzFunctionApp -Force -.Example -Restart-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/restart-azfunctionapp -#> -function Restart-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='RestartByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='RestartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='RestartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='RestartByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to restart the function app without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - RestartByName = 'Az.Functions.custom\Restart-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Restart-AzFunctionApp'; - } - if (('RestartByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Starts a function app. -.Description -Starts a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Start-AzFunctionApp -.Example -Start-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/start-azfunctionapp -#> -function Start-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='StartByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='StartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='StartByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StartByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - StartByName = 'Az.Functions.custom\Start-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Start-AzFunctionApp'; - } - if (('StartByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Stops a function app. -.Description -Stops a function app. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Stop-AzFunctionApp -Force -.Example -Stop-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/stop-azfunctionapp -#> -function Stop-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='StopByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='StopByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of function app. - ${Name}, - - [Parameter(ParameterSetName='StopByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - ${ResourceGroupName}, - - [Parameter(ParameterSetName='StopByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to stop the function app without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The credentials, account, tenant, and subscription used for communication with Azure. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds. - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - StopByName = 'Az.Functions.custom\Stop-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Stop-AzFunctionApp'; - } - if (('StopByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Updates a function app. -.Description -Updates a function app. -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -PlanName NewPlanName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType SystemAssigned -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -ApplicationInsightsName ApplicationInsightsProjectName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType None -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionapp -#> -function Update-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the resource group. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The name of the service plan. - ${PlanName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to update the function app without prompting for confirmation. - ${Force}, - - [Parameter()] - [Alias('AppInsightsName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the existing App Insights project to be added to the function app. - ${ApplicationInsightsName}, - - [Parameter()] - [Alias('AppInsightsKey')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Instrumentation key of App Insights to be added. - ${ApplicationInsightsKey}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionAppManagedServiceIdentityUpdateType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Specifies the type of identity used for the function app. - # The type 'None' will remove any identities from the function app. - # The acceptable values for this parameter are: - # - SystemAssigned - # - UserAssigned - # - None - ${IdentityType}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Specifies the list of user identities associated with the function app. - # The user identity references will be ARM resource ids in the form: - # '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/identities/{identityName}' - ${IdentityID}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Starts the operation and returns immediately, before the operation is completed. - # In order to determine if the operation has successfully been completed, use some other mechanism. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Runs the cmdlet as a background job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Update-AzFunctionApp'; - ByObjectInput = 'Az.Functions.custom\Update-AzFunctionApp'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Updates a function app service plan. -.Description -Updates a function app service plan. -.Example -Update-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -MaximumWorkerCount 20 ` - -Sku EP2 ` - -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionappplan -#> -function Update-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The plan sku. - # Valid inputs are: EP1, EP2, EP3 - ${Sku}, - - [Parameter()] - [Alias('MaxBurst')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The maximum number of workers for the app service plan. - ${MaximumWorkerCount}, - - [Parameter()] - [Alias('MinInstances')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The minimum number of workers for the app service plan. - ${MinimumWorkerCount}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to update the function app plan without prompting for confirmation. - ${Force}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously. - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job. - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Update-AzFunctionAppPlan'; - ByObjectInput = 'Az.Functions.custom\Update-AzFunctionAppPlan'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Adds or updates app settings in a function app. -.Description -Adds or updates app settings in a function app. -.Example -Update-AzFunctionAppSetting -Name MyAppName -ResourceGroupName MyResourceGroupName -AppSetting @{"Name1" = "Value1"} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionappsetting -#> -function Update-AzFunctionAppSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='ByName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the function app. - ${Name}, - - [Parameter(ParameterSetName='ByName', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='ByName')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The Azure subscription ID. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Collections.Hashtable] - # Hashtable with keys and values describe the app settings to be added or updated in the function app. - # For example: @{"myappsetting"="123"} - ${AppSetting}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Forces the cmdlet to update function app setting without prompting for confirmation. - ${Force}, - - [Parameter(ParameterSetName='ByObjectInput', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - ByName = 'Az.Functions.custom\Update-AzFunctionAppSetting'; - ByObjectInput = 'Az.Functions.custom\Update-AzFunctionAppSetting'; - } - if (('ByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Functions.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -# SIG # Begin signature block -# MIIoKAYJKoZIhvcNAQcCoIIoGTCCKBUCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD9xRZV1AfC/8dK -# Dq6vhVadfkBjd74xrIHN8ZC9Z8I8ZqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGggwghoEAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIErcSbWeBiJIX//iz+ubhgWX -# Tqr4Yj3/lu9KqMJQtCf+MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAsXKYwGyFIptqoXvcfEl7KlqbDgjjsUwnQhTN0tpitQKxSsV6RqRhZHu9 -# rWFEvdtC/QiTpz/HpkiLbIJnEkhBELh/JyhJoi54lQ7Qj0akSk9PS7ewcqlqnxx4 -# igyfwyCKel706e35LSOVcDWKMJyKUcpPEob5yZJJ5W8Sh7CWYfTp5od7ClpW/rii -# QVYRxRfghdPfnzHA/8XC1tW69ZRPBfCQ59klw+dFAQOll4QWOdr1JH8uaTugxg0j -# 8Z4TNieKAWgSbASuz93QPWMyNyBW7FCRS4nqM7ysQ7UEHNDrTsXHn2TyN9WOiJrv -# Z7+i5acyQISve3WK+B7+d0hvV75rf6GCF5IwgheOBgorBgEEAYI3AwMBMYIXfjCC -# F3oGCSqGSIb3DQEHAqCCF2swghdnAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFQBgsq -# hkiG9w0BCRABBKCCAT8EggE7MIIBNwIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBJilvwcjTkNpnJNN2aViSfW33EeImjcQMH+4mZQArCzAIGZ1rd48j4 -# GBEyMDI1MDEwOTA2MzY0Ny4zWjAEgAIB9KCB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR -# 6jCCByAwggUIoAMCAQICEzMAAAHzxQpDrgPMHTEAAQAAAfMwDQYJKoZIhvcNAQEL -# BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjMxMjA2MTg0NjAy -# WhcNMjUwMzA1MTg0NjAyWjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEF -# AAOCAg8AMIICCgKCAgEA/p+m2uErgfYkjuVjIW54KmAG/s9yH8zaWSFkv7IH14ZS -# 2Jhp7FLaxl9zlXIPvJKyXYsbjVDDu2QDqgmbF1Izs/M3J9WlA+Q9q9j4c1Sox7Yr -# 1hoBo+MecKlntUKL97zM/Fh7CrH2nSJVo3wTJ1SlaJjsm0O/to3OGn849lyUEEph -# PY0EaAaIA8JqmWpHmJyMdBJjrrnD6+u+E+v2Gkz4iGJRn/l1druqEBwJDBuesWD0 -# IpIrUI4zVhwA3wamwRGqqaWrLcaUTXOIndktcVUMXEBl45wIHnlW2z2wKBC4W8Ps -# 91XrUcLhBSUc0+oW1hIL8/SzGD0m4qBy/MPmYlqN8bsN0e3ybKnu6arJ48L54j+7 -# HxNbrX4u5NDUGTKb4jrP/9t/R+ngOiDlbRfMOuoqRO9RGK3EjazhpU5ubqqvrMjt -# bnWTnijNMWO9vDXBgxap47hT2xBJuvnrWSn7VPY8Swks6lzlTs3agPDuV2txONY9 -# 7OzJUxeEOwWK0Jm6caoU737iJWMCNgM3jtzor3HsycAY9hUIE4lR2nLzEA4EgOxO -# b8rWpNPjCwZtAHFuCD3q/AOIDhg/aEqa5sgLtSesBZAa39ko5/onjauhcdLVo/CK -# YN7kL3LoN+40mnReqta1BGqDyGo2QhlZPqOcJ+q7fnMHSd/URFON2lgsJ9Avl8cC -# AwEAAaOCAUkwggFFMB0GA1UdDgQWBBTDZBX2pRFRDIwNwKaFMfag6w0KJDAfBgNV -# HSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5o -# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBU -# aW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwG -# CCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRz -# L01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNV -# HRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIH -# gDANBgkqhkiG9w0BAQsFAAOCAgEA38Qcj/zR/u/b3N5YjuHO51zP1ChXAJucOtRc -# UcT8Ql0V5YjY2e7A6jT9A81EwVPbUuQ6pKkUoiFdeY+6vHunpYPP3A9279LFuBqP -# QDC+JYQOTAYN8MynYoXydBPxyKnB19dZsLW6U4gtrIAFIe/jmZ2/U8CRO6WxATyU -# FMcbgokuf69LNkFYqQZov/DBFtniIuJifrxyOQwmgBqKE+ANef+6DY/c8s0QAU1C -# AjTa0tfSn68hDeXYeZKjhuEIHGvcOi+wi/krrk2YtEmfGauuYitoUPCDADlcXsAq -# Q+JWS+jQ7FTUsATVzlJbMTgDtxtMDU/nAboPxw+NwexNqHVX7Oh9hGAmcVEta4EX -# hndrqkMYENsKzLk2+cpDvqnfuJ4Wn//Ujd4HraJrUJ+SM4XwpK2k9Sp2RfEyN8nt -# Wd6Z3q9Ap/6deR+8DcA5AQImftos/TVBHmC3zBpvbxKw1QQ0TIxrBPx6qmO0E0k7 -# Q71O/s2cETxo4mGFBV0/lYJH3R4haSsONl7JtDHy+Wjmt9RcgjNe/6T0yCk0YirA -# xd+9EsCMGQI1c4g//UIRBQbvaaIxVCzmb87i+YkhCSHKqKVQMHWzXa6GYthzfJ3w -# 48yWvAjE5EHkn0LEKSq/NzoQZhNzBdrM/IKnt5aHNOQ1vCTb2d9vCabNyyQgC7dK -# 0DyWJzswggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3 -# DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIw -# MAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAx -# MDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# 5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/ -# XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1 -# hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7 -# M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3K -# Ni1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy -# 1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF80 -# 3RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQc -# NIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahha -# YQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkL -# iWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV -# 2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIG -# CSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUp -# zxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBT -# MFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYI -# KwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG -# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186a -# GMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br -# aS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsG -# AQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcN -# AQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1 -# OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYA -# A7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbz -# aN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6L -# GYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3m -# Sj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0 -# SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxko -# JLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFm -# PWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC482 -# 2rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7 -# vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDTTCC -# AjUCAQEwgfmhgdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAl -# BgNVBAsTHm5TaGllbGQgVFNTIEVTTjo4RDAwLTA1RTAtRDk0NzElMCMGA1UEAxMc -# TWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAbvoG -# LNi0YWuaRTu/YNy5H8CkZyiggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ -# Q0EgMjAxMDANBgkqhkiG9w0BAQsFAAIFAOspnA0wIhgPMjAyNTAxMDkwMDUxMjVa -# GA8yMDI1MDExMDAwNTEyNVowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymcDQIB -# ADAHAgEAAgIaGjAHAgEAAgIR8DAKAgUA6yrtjQIBADA2BgorBgEEAYRZCgQCMSgw -# JjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3 -# DQEBCwUAA4IBAQCIvMv6BEg8aqVR3y4BzcoMAfya7ZgiN0bEAnIFeVSuEeGU1z1w -# lU7LE/lAOobkOndO2NFVh+8Fwq4Fvw4+x5iaWA1uCnGeUme/rxGTf433FVTlR0pS -# 284bID3z3KsPysztOspWr+JJS4PdvmstrZbGQdj5SgBSNcy17D6w2cTU/wP/yrGn -# Z2z64lCg8Xgxsr1q/tLCjE+lWXhN/lCun4m1gQPXhWlCpJt47VxoTAx7VjZiPauh -# H1gITvyripRJxm5qrYRI1fUE7cQWjMOCkW9AWazlQRUk7oXT6sjEhNKteT8yeJyn -# MH1oInEX3mzF51NCswgA1rF6HCz4hZLqhgARMYIEDTCCBAkCAQEwgZMwfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHzxQpDrgPMHTEAAQAAAfMwDQYJ -# YIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkq -# hkiG9w0BCQQxIgQgRxknCIs8/MZQa/GbPNN5VN2BvTgt7cBEahVVPfoqawQwgfoG -# CyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAYvNk0i7bhuFZKfMAZiZP0/kQIfONb -# Bv2gzsMYOjti6DCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# AhMzAAAB88UKQ64DzB0xAAEAAAHzMCIEIBko1vDIytSKDkE8aWnbKqrgaLyQ1CUT -# xgpwAAUPa/dYMA0GCSqGSIb3DQEBCwUABIICABDsKj/63q27gZPqr/8/c9qVfu6O -# nY4GHWiYS8fmrBLo9VhrXPkDIZTqReg5hQqqoJdFjY5MUXhNEd9Ckyyl9AjNil8x -# 14IzUGp3e2zl9uPPLuE8xl5SJnMg4sqyZHLGT9ljKEcsCnU6hPa8bK6vuNZrYWsk -# zHx1ZKGM6Z6DdjWYz8noXH9GoX8gskSoo5pb2RLslgIVXbJEPCxijp7Accdbj1De -# h6hQjt9HIfPKXnEZDCsAsWDGRyb6rgJ1CAwbqBG1IqsUFoJYxfGb+U+IZUkjRHAu -# tja4JL/8qs+9uSvx6RSF6hTMKtmT7ACnB/Q005z3F07lHhoeN+mevttjVl1EKiog -# OVTHZOU1RwlxI4UfgsALbt6hp2a5Wbx2Lq/AyKxRPMNGKDXbSPFQlw1PHOWSMkKM -# YN28TPmrY8As/3j/FFD9gwYDwuxhXhMjspIqZE1D7fga8cDdHlxLcWQMSE8RkdN0 -# yHb7aG5mYCfDVVH4ynDDRRI/WX/tW+T5/qofjQtped9/BJqNxbPxxMbgW1p/zBZ3 -# Wskd1DN/2hdQ2z01qaEbWHA4k02uRutzVyg/203UvpnzlfWjdtzSU1blKXb2jnHm -# pWUWo8aSncnym1f6c4Xf6V+pqFidxR2vh1Bwe34gaPy8pld2yrpNmvsQK7xtPWWj -# uR2Tu8vcfoIE2+Xn -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/Az.Functions.internal.psm1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/Az.Functions.internal.psm1 deleted file mode 100644 index 490dfbbfc33a..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/Az.Functions.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Functions.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Functions.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCW8pSzs/LD3Np7 -# xk5xTtwXcyHIkknEaUUUyo4SpNgjn6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIGzmlAVDtDuJGgpkFds+A5YG -# OSuEe7r3U0cC+8jWxwkzMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAB1XwVCLiIreehXfZGrdx8IJYmke2DmkjNZOMptJhxTh2OvXD6qugZi6r -# UitWHEmH0+1sKcHdWXmGkq59/mH1AnOW/eH8JgmV2aA1AgYjpxAlKC9knKkjLX8R -# 4gaLoobGMARkj1B3oANb20EXx+suPrNVVptmwGnE3Jkt6zpQX8FlmTsCUtZQ5bZi -# rA2dbO9dmYCyI9Ut4abcMUq08EKejQCrKF7EKXGhjocrqkMuSRxs731bOSowVsqG -# 7bkAAw+tkKbK7vV6a8fPgYtVOcSiIA3lFXIO5enRFm9DYsdXLmTTGzm8R0l7SW5l -# e0EZLErfJFWMJZqlJwYtVQ/IMiH0aKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCrHZB7coghxuBi0KxOmWPLDab5RgqI3hZVS8DwT8nCaQIGZ1rRdmth -# GBMyMDI1MDEwOTA2Mzc0Mi4zODVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAecujy+TC08b6QABAAAB5zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTlaFw0yNTAzMDUxODQ1MTlaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDCV58v4IuQ659XPM1DtaWMv9/HRUC5kdiEF89YBP6/ -# Rn7kjqMkZ5ESemf5Eli4CLtQVSefRpF1j7S5LLKisMWOGRaLcaVbGTfcmI1vMRJ1 -# tzMwCNIoCq/vy8WH8QdV1B/Ab5sK+Q9yIvzGw47TfXPE8RlrauwK/e+nWnwMt060 -# akEZiJJz1Vh1LhSYKaiP9Z23EZmGETCWigkKbcuAnhvh3yrMa89uBfaeHQZEHGQq -# dskM48EBcWSWdpiSSBiAxyhHUkbknl9PPztB/SUxzRZjUzWHg9bf1mqZ0cIiAWC0 -# EjK7ONhlQfKSRHVLKLNPpl3/+UL4Xjc0Yvdqc88gOLUr/84T9/xK5r82ulvRp2A8 -# /ar9cG4W7650uKaAxRAmgL4hKgIX5/0aIAsbyqJOa6OIGSF9a+DfXl1LpQPNKR79 -# 2scF7tjD5WqwIuifS9YUiHMvRLjjKk0SSCV/mpXC0BoPkk5asfxrrJbCsJePHSOE -# blpJzRmzaP6OMXwRcrb7TXFQOsTkKuqkWvvYIPvVzC68UM+MskLPld1eqdOOMK7S -# bbf2tGSZf3+iOwWQMcWXB9gw5gK3AIYK08WkJJuyzPqfitgubdRCmYr9CVsNOuW+ -# wHDYGhciJDF2LkrjkFUjUcXSIJd9f2ssYitZ9CurGV74BQcfrxjvk1L8jvtN7mul -# IwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM/+4JiAnzY4dpEf/Zlrh1K73o9YMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQB0ofDbk+llWi1cC6nsfie5Jtp09o6b6ARC -# pvtDPq2KFP+hi+UNNP7LGciKuckqXCmBTFIhfBeGSxvk6ycokdQr3815pEOaYWTn -# HvQ0+8hKy86r1F4rfBu4oHB5cTy08T4ohrG/OYG/B/gNnz0Ol6v7u/qEjz48zXZ6 -# ZlxKGyZwKmKZWaBd2DYEwzKpdLkBxs6A6enWZR0jY+q5FdbV45ghGTKgSr5ECAOn -# LD4njJwfjIq0mRZWwDZQoXtJSaVHSu2lHQL3YHEFikunbUTJfNfBDLL7Gv+sTmRi -# DZky5OAxoLG2gaTfuiFbfpmSfPcgl5COUzfMQnzpKfX6+FkI0QQNvuPpWsDU8sR+ -# uni2VmDo7rmqJrom4ihgVNdLaMfNUqvBL5ZiSK1zmaELBJ9a+YOjE5pmSarW5sGb -# n7iVkF2W9JQIOH6tGWLFJS5Hs36zahkoHh8iD963LeGjZqkFusKaUW72yMj/yxTe -# GEDOoIr35kwXxr1Uu+zkur2y+FuNY0oZjppzp95AW1lehP0xaO+oBV1XfvaCur/B -# 5PVAp2xzrosMEUcAwpJpio+VYfIufGj7meXcGQYWA8Umr8K6Auo+Jlj8IeFS6lSv -# KhqQpmdBzAMGqPOQKt1Ow3ZXxehK7vAiim3ZiALlM0K546k0sZrxdZPgpmz7O8w9 -# gHLuyZAQezCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCz -# cgTnGasSwe/dru+cPe1NF/vwQ6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymPnzAiGA8yMDI1MDEwODIzNTgy -# M1oYDzIwMjUwMTA5MjM1ODIzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKY+f -# AgEAMAcCAQACAgqMMAcCAQACAhNMMAoCBQDrKuEfAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEZtHe+7A3SvgaoN66naRZpTnp73wRcRs8dMBT3/c8PYbwX6 -# vxGPyBv1qSfycPyf9PDPX/Typ8w+8P/annh29uNumbttljO38YGNwi3IUG9QAltD -# SvoglH7QcJm1KiuZLmAzFL2BMD7cA9wCHR78jZR4LHt6D1oOhUKwPLbYbdZWPkLx -# jtfTqqXmcMxoQFvztZBl2qyhuq59akIRrkd2wSsk73bLo2YlaSsElNMFTIyPrpL+ -# /PamnIX0XpSRdWwwiJxNJs0McQpR65/Tmfbv1Z7u0DMlHQWJOyXQl1bRAqOMtisp -# xf389cbnpY4LLkQC73n7bxQVm8Gm4uYVeOOdODMxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAecujy+TC08b6QABAAAB5zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCConQ811dtV+AKLFCRw8Rp9PzXs//w4zjuhpJKaddsXuTCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIOU2XQ12aob9DeDFXM9UFHeEX74F -# v0ABvQMG7qC51nOtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHnLo8vkwtPG+kAAQAAAecwIgQgRJvjJ1+gVGsNoaDt9U/FTkFEV0dZ -# g7U4j7s6WjWsakEwDQYJKoZIhvcNAQELBQAEggIAUX/lwJso8bNBD+b8rm5/PPmm -# mCkElIedWVvT0+NT+g/iGHzVec4ho32dBvozBJtzYxqADWqES0l3qEK6STpUzl3d -# eS8KgeaWJ6op52l+tyH+q+GHSb8sKOyUrMq0YZcgvTaddcWYZnRKSqryV9Ka7cc8 -# Z696rEZtsyAxGgQfk+IjzKY1La3iNgSt5uxMy+OAuiD5KNM3/jAtDDjdQPjymo73 -# /uisBEOXOGfBHHXF77w8Q4MXGQ1Q08qAVg7Wmlsx36UvHQ7qAM9DDmqzxwr4kO+7 -# MM0kWtS2fAzocI95pe6RnbpHcqcFwiIo+OfE3QgBuigmPUF7wT5US6y1kwwHel9Z -# J4ta7Ex0H/+Y0mXfqOgiSjDuSgzvjUu0iKh7ZO+2H0MJ0VgnHC9MdMmwlzqpTe0o -# E4Q7TTkWFKifLmtovRedu5lJ5wj8kn+aq4+WpioHC+nQhygOlqtGHPHU+mLhMKp5 -# wyKIL7vRdURTLBGCQ/4qfZuvmuwuNfir/KpONpUq50zrkb+poXXoSzmxe3JqW8bI -# sZZWPH95kHzARlRJJaiykX1FuUCGSR6DGxH7pjsg/ML9DXsl2t2QsuxEq3s8IvYw -# 1j4cWJE47sUYdx5BfBN+NUTn+9K/oK2wg2bIrZ6k4IeH550TQYeFofDJKFxA29uL -# 0D7LnQpqjhivX5jZG5E= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/ProxyCmdletDefinitions.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 407ef48d3915..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/internal/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,22614 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Description for Creates a backup of an app. -.Description -Description for Creates a backup of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupItem -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -DATABASE : Databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -REQUEST : Description of a backup which will be performed. - [Kind ]: Kind of resource. - [BackupName ]: Name of the backup. - [BackupScheduleFrequencyInterval ]: How often the backup should be executed (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) - [BackupScheduleFrequencyUnit ]: The unit of time for how often the backup should be executed (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) - [BackupScheduleKeepAtLeastOneBackup ]: True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. - [BackupScheduleRetentionPeriodInDay ]: After how many days backups should be deleted. - [BackupScheduleStartTime ]: When the schedule should start working. - [Database ]: Databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - [Enabled ]: True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled. - [StorageAccountUrl ]: SAS URL to the container. -.Link -https://learn.microsoft.com/powershell/module/az.functions/backup-azfunctionapp -#> -function Backup-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupItem])] -[CmdletBinding(DefaultParameterSetName='BackupExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Backup', Mandatory)] - [Parameter(ParameterSetName='BackupExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Backup', Mandatory)] - [Parameter(ParameterSetName='BackupExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Backup')] - [Parameter(ParameterSetName='BackupExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='BackupViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='BackupViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Backup', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='BackupViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IBackupRequest] - # Description of a backup which will be performed. - # To construct, see NOTES section for REQUEST properties and create a hash table. - ${Request}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the backup. - ${BackupName}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # How often the backup should be executed (e.g. - # for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) - ${BackupScheduleFrequencyInterval}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FrequencyUnit])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FrequencyUnit] - # The unit of time for how often the backup should be executed (e.g. - # for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) - ${BackupScheduleFrequencyUnit}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. - ${BackupScheduleKeepAtLeastOneBackup}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # After how many days backups should be deleted. - ${BackupScheduleRetentionPeriodInDay}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # When the schedule should start working. - ${BackupScheduleStartTime}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IDatabaseBackupSetting[]] - # Databases included in the backup. - # To construct, see NOTES section for DATABASE properties and create a hash table. - ${Database}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled. - ${Enabled}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='BackupExpanded')] - [Parameter(ParameterSetName='BackupViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # SAS URL to the container. - ${StorageAccountUrl}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Backup = 'Az.Functions.private\Backup-AzFunctionApp_Backup'; - BackupExpanded = 'Az.Functions.private\Backup-AzFunctionApp_BackupExpanded'; - BackupViaIdentity = 'Az.Functions.private\Backup-AzFunctionApp_BackupViaIdentity'; - BackupViaIdentityExpanded = 'Az.Functions.private\Backup-AzFunctionApp_BackupViaIdentityExpanded'; - } - if (('Backup', 'BackupExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Get the API Key for this key id. -.Description -Get the API Key for this key id. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponentApiKey -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azappinsightsapikey -#> -function Get-AzAppInsightsApiKey { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponentApiKey])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The API Key ID. - # This is unique within a Application Insights component. - ${KeyId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Application Insights component resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzAppInsightsApiKey_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzAppInsightsApiKey_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzAppInsightsApiKey_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Returns an Application Insights component. -.Description -Returns an Application Insights component. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azappinsights -#> -function Get-AzAppInsights { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Application Insights component resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzAppInsights_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzAppInsights_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzAppInsights_List'; - List1 = 'Az.Functions.private\Get-AzAppInsights_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get a list of available geographical regions. -.Description -Description for Get a list of available geographical regions. -.Example -Get-AzFunctionAppAvailableLocation -.Example -Get-AzFunctionAppAvailableLocation -PlanType Premium -OSType Linux -.Example -Get-AzFunctionAppAvailableLocation -PlanType Consumption -OSType Windows - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappavailablelocation -#> -function Get-AzFunctionAppAvailableLocation { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IGeoRegion])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true if you want to filter to only regions that support Linux Consumption Workers. - ${LinuxDynamicWorkersEnabled}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true if you want to filter to only regions that support Linux workers. - ${LinuxWorkersEnabled}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuName])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SkuName] - # Name of SKU used to filter the regions. - ${Sku}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true if you want to filter to only regions that support Xenon workers. - ${XenonWorkersEnabled}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzFunctionAppAvailableLocation_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get an App Service plan. -.Description -Description for Get an App Service plan. -.Example -Get-AzFunctionAppPlan -.Example -Get-AzFunctionAppPlan -ResourceGroupName "West Europe" -.Example -Get-AzFunctionAppPlan -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8z -.Example -Get-AzFunctionAppPlan -Location "Central US" - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionappplan -#> -function Get-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to return all App Service plan properties. - # The default is false, which returns a subset of the properties. - # Retrieval of all properties may increase the API latency. - ${Detailed}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzFunctionAppPlan_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzFunctionAppPlan_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzFunctionAppPlan_List'; - List1 = 'Az.Functions.private\Get-AzFunctionAppPlan_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the details of a web, mobile, or API app. -.Description -Description for Gets the details of a web, mobile, or API app. -.Example -Get-AzFunctionApp -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -Name Functions1-Windows-DoNet -.Example -Get-AzFunctionApp -ResourceGroupName Functions-West-Europe-Win -.Example -Get-AzFunctionApp -SubscriptionId fe16564a-d943-4bf8-8c28-cf01708c3f8b -.Example -Get-AzFunctionApp -Location "Central US" - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunctionapp -#> -function Get-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to include deployment slots in results. - # The default is false, which only gives you the production slot of all apps. - ${IncludeSlot}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzFunctionApp_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzFunctionApp_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzFunctionApp_List'; - List1 = 'Az.Functions.private\Get-AzFunctionApp_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get function information by its ID for web site, or a deployment slot. -.Description -Description for Get function information by its ID for web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azfunction -#> -function Get-AzFunction { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzFunction_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzFunction_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzFunction_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account. -.Description -Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccountKey -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azstorageaccountkey -#> -function Get-AzStorageAccountKey { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccountKey])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ListKeyExpand])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ListKeyExpand] - # Specifies type of the key to be listed. - # Possible value is kerb. - ${Expand}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzStorageAccountKey_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Lists all the storage accounts available under the subscription. -Note that storage keys are not returned; use the ListKeys operation for this. -.Description -Lists all the storage accounts available under the subscription. -Note that storage keys are not returned; use the ListKeys operation for this. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccount -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azstorageaccount -#> -function Get-AzStorageAccount { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20190401.IStorageAccount])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzStorageAccount_List'; - List1 = 'Az.Functions.private\Get-AzStorageAccount_List1'; - } - if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Gets the systemAssignedIdentity available under the specified RP scope. -.Description -Gets the systemAssignedIdentity available under the specified RP scope. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.ISystemAssignedIdentity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azsystemassignedidentity -#> -function Get-AzSystemAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.ISystemAssignedIdentity])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The resource provider scope of the resource. - # Parent resource being extended by Managed Identities. - ${Scope}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzSystemAssignedIdentity_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzSystemAssignedIdentity_GetViaIdentity'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Gets the identity. -.Description -Gets the identity. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azuserassignedidentity -#> -function Get-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzUserAssignedIdentity_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzUserAssignedIdentity_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzUserAssignedIdentity_List'; - List1 = 'Az.Functions.private\Get-AzUserAssignedIdentity_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the application settings of an app. -.Description -Description for Gets the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappapplicationsettingslot -#> -function Get-AzWebAppApplicationSettingSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will get the application settings for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppApplicationSettingSlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the application settings of an app. -.Description -Description for Gets the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappapplicationsetting -#> -function Get-AzWebAppApplicationSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppApplicationSetting_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Description -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappbasicpublishingcredentialspolicyslot -#> -function Get-AzWebAppBasicPublishingCredentialsPolicySlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppBasicPublishingCredentialsPolicySlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Description -Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappbasicpublishingcredentialspolicy -#> -function Get-AzWebAppBasicPublishingCredentialsPolicy { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppBasicPublishingCredentialsPolicy_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Description -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationslot -#> -function Get-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will return configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfigurationSlot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfigurationSlot_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzWebAppConfigurationSlot_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Description -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshotinfoslot -#> -function Get-AzWebAppConfigurationSnapshotInfoSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will return configuration for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotInfoSlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Description -Description for Gets a list of web app configuration snapshots identifiers. -Each element of the list contains a timestamp and the ID of the snapshot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshotinfo -#> -function Get-AzWebAppConfigurationSnapshotInfo { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigurationSnapshotInfo])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotInfo_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Description -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshotslot -#> -function Get-AzWebAppConfigurationSnapshotSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will return configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The ID of the snapshot to read. - ${SnapshotId}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotSlot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshotSlot_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Description -Description for Gets a snapshot of the configuration of an app at a previous point in time. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfigurationsnapshot -#> -function Get-AzWebAppConfigurationSnapshot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The ID of the snapshot to read. - ${SnapshotId}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfigurationSnapshot_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Description -Description for Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications, Always On, etc. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappconfiguration -#> -function Get-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppConfiguration_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppConfiguration_GetViaIdentity'; - List = 'Az.Functions.private\Get-AzWebAppConfiguration_List'; - } - if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get function keys for a function in a web site, or a deployment slot. -.Description -Description for Get function keys for a function in a web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappfunctionkeyslot -#> -function Get-AzWebAppFunctionKeySlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppFunctionKeySlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Get function keys for a function in a web site, or a deployment slot. -.Description -Description for Get function keys for a function in a web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappfunctionkey -#> -function Get-AzWebAppFunctionKey { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppFunctionKey_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed on the site or not. -.Description -Description for Returns whether Scm basic auth is allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappscmallowedslot -#> -function Get-AzWebAppScmAllowedSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppScmAllowedSlot_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppScmAllowedSlot_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Returns whether Scm basic auth is allowed on the site or not. -.Description -Description for Returns whether Scm basic auth is allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappscmallowed -#> -function Get-AzWebAppScmAllowed { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppScmAllowed_Get'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppScmAllowed_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the config reference app settings and status of an app -.Description -Description for Gets the config reference app settings and status of an app -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsettingkeyvaultreferenceslot -#> -function Get-AzWebAppSettingKeyVaultReferenceSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='Get1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # App Setting key name. - ${AppSettingKey}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_Get'; - Get1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_Get1'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_GetViaIdentity'; - GetViaIdentity1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReferenceSlot_GetViaIdentity1'; - } - if (('Get', 'Get1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Gets the config reference app settings and status of an app -.Description -Description for Gets the config reference app settings and status of an app -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsettingkeyvaultreference -#> -function Get-AzWebAppSettingKeyVaultReference { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IApiKvReference])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='Get1')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # App Setting key name. - ${AppSettingKey}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_Get'; - Get1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_Get1'; - GetViaIdentity = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_GetViaIdentity'; - GetViaIdentity1 = 'Az.Functions.private\Get-AzWebAppSettingKeyVaultReference_GetViaIdentity1'; - } - if (('Get', 'Get1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for This is to allow calling via powershell and ARM template. -.Description -Description for This is to allow calling via powershell and ARM template. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -System.Boolean -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsyncstatusslot -#> -function Get-AzWebAppSyncStatusSlot { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppSyncStatusSlot_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for This is to allow calling via powershell and ARM template. -.Description -Description for This is to allow calling via powershell and ARM template. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -System.Boolean -.Link -https://learn.microsoft.com/powershell/module/az.functions/get-azwebappsyncstatus -#> -function Get-AzWebAppSyncStatus { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Functions.private\Get-AzWebAppSyncStatus_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Move resources between resource groups. -.Description -Description for Move resources between resource groups. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmMoveResourceEnvelope -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -MOVERESOURCEENVELOPE : Object with a list of the resources that need to be moved and the resource group they should be moved to. - [Resource ]: - [TargetResourceGroup ]: -.Link -https://learn.microsoft.com/powershell/module/az.functions/move-az -#> -function Move-Az { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='MoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Move', Mandatory)] - [Parameter(ParameterSetName='MoveExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Move')] - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='MoveViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='MoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Move', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='MoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmMoveResourceEnvelope] - # Object with a list of the resources that need to be moved and the resource group they should be moved to. - # To construct, see NOTES section for MOVERESOURCEENVELOPE properties and create a hash table. - ${MoveResourceEnvelope}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Parameter(ParameterSetName='MoveViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # . - ${Resource}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Parameter(ParameterSetName='MoveViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # . - ${TargetResourceGroup}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Move = 'Az.Functions.private\Move-Az_Move'; - MoveExpanded = 'Az.Functions.private\Move-Az_MoveExpanded'; - MoveViaIdentity = 'Az.Functions.private\Move-Az_MoveViaIdentity'; - MoveViaIdentityExpanded = 'Az.Functions.private\Move-Az_MoveViaIdentityExpanded'; - } - if (('Move', 'MoveExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Creates (or updates) an Application Insights component. -Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation. -.Description -Creates (or updates) an Application Insights component. -Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -INSIGHTPROPERTY : An Application Insights component definition. - Location : Resource location - Kind : The kind of application that this component refers to, used to customize UI. This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone. - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. - [ApplicationType ]: Type of application being monitored. - [FlowType ]: Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API. - [HockeyAppId ]: The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp. - [RequestSource ]: Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'. - [SamplingPercentage ]: Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azappinsights -#> -function New-AzAppInsights { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the resource group. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Application Insights component resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IApplicationInsightsComponent] - # An Application Insights component definition. - # To construct, see NOTES section for INSIGHTPROPERTY properties and create a hash table. - ${InsightProperty}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The kind of application that this component refers to, used to customize UI. - # This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource location - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ApplicationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ApplicationType] - # Type of application being monitored. - ${ApplicationType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FlowType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FlowType] - # Used by the Application Insights system to determine what kind of flow this component was created by. - # This is to be set to 'Bluefield' when creating/updating a component via the REST API. - ${FlowType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp. - ${HockeyAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RequestSource])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RequestSource] - # Describes what tool created this Application Insights component. - # Customers using this API should set this to the default 'rest'. - ${RequestSource}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry. - ${SamplingPercentage}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20150501.IComponentsResourceTags]))] - [System.Collections.Hashtable] - # Resource tags - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzAppInsights_Create'; - CreateExpanded = 'Az.Functions.private\New-AzAppInsights_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzAppInsights_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzAppInsights_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates or updates an App Service Plan. -.Description -Description for Creates or updates an App Service Plan. -.Example -New-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -Location WestEurope ` - -MinimumWorkerCount 1 ` - -MaximumWorkerCount 10 ` - -Sku EP1 ` - -WorkerType Windows - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEPLAN : App Service plan. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -SKUCAPABILITY : Capabilities of the SKU, e.g., is traffic manager enabled - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionappplan -#> -function New-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # App Service plan. - # To construct, see NOTES section for APPSERVICEPLAN properties and create a hash table. - ${AppServicePlan}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Current number of instances assigned to the resource. - ${Capacity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # ServerFarm supports ElasticScale. - # Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - ${ElasticScaleEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm free offer expires. - ${FreeOfferExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Hyper-V container app service plan true, false otherwise. - ${HyperV}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan owns spot instances. - ${IsSpot}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: If Hyper-V container app service plan true, false otherwise. - ${IsXenon}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the Kubernetes Environment. - ${KubeEnvironmentProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - ${MaximumElasticWorkerCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, apps assigned to this App Service plan can be scaled independently.If false, apps assigned to this App Service plan will scale to all instances of the plan. - ${PerSiteScaling}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Linux app service plan true, false otherwise. - ${Reserved}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICapability[]] - # Capabilities of the SKU, e.g., is traffic manager enabled - # To construct, see NOTES section for SKUCAPABILITY properties and create a hash table. - ${SkuCapability}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Default number of workers for this App Service plan SKU. - ${SkuCapacityDefault}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of Elastic workers for this App Service plan SKU. - ${SkuCapacityElasticMaximum}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers for this App Service plan SKU. - ${SkuCapacityMaximum}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Minimum number of workers for this App Service plan SKU. - ${SkuCapacityMinimum}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Available scale configurations for an App Service plan. - ${SkuCapacityScaleType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Family code of the resource SKU. - ${SkuFamily}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Locations of the SKU. - ${SkuLocation}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the resource SKU. - ${SkuName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Size specifier of the resource SKU. - ${SkuSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Service tier of the resource SKU. - ${SkuTier}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm expires. - # Valid only if it is a spot server farm. - ${SpotExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker count. - ${TargetWorkerCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker size ID. - ${TargetWorkerSizeId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Target worker tier assigned to the App Service plan. - ${WorkerTierName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan will perform availability zone balancing.If false, this App Service Plan will not perform availability zone balancing. - ${ZoneRedundant}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzFunctionAppPlan_Create'; - CreateExpanded = 'Az.Functions.private\New-AzFunctionAppPlan_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzFunctionAppPlan_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzFunctionAppPlan_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Description -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -Location centralUS ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -Runtime PowerShell -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -PlanName MyPlanName ` - -StorageAccountName MyStorageAccountName ` - -DockerImageName myacr.azurecr.io/myimage:tag -.Example -New-AzFunctionApp -Name MyUniqueFunctionAppName ` - -ResourceGroupName MyResourceGroupName ` - -StorageAccountName MyStorageAccountName ` - -Environment MyEnvironment ` - -WorkloadProfileName MyWorkloadProfileName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -HOSTNAMESSLSTATE : Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -SCALEANDCONCURRENCYALWAYSREADY : 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - -SITECONFIG : Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -SITEENVELOPE : A web app, a mobile app backend, or an API app. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunctionapp -#> -function New-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Unique name of the app to create or update. - # To create or update a deployment slot, use the {slot} parameter. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # A web app, a mobile app backend, or an API app. - # To construct, see NOTES section for SITEENVELOPE properties and create a hash table. - ${SiteEnvelope}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for StorageAccountConnectionString. - # Set the name of the app setting that has the storage account connection string. - # Do not set a value for this property when using other authentication type. - ${AuthenticationStorageAccountConnectionStringName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType] - # Property to select authentication type to access the selected storage account. - # Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - ${AuthenticationType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for UserAssignedIdentity. - # Set the resource ID of the identity. - # Do not set a value for this property when using other authentication type. - ${AuthenticationUserAssignedIdentityResourceId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. - # Default is true. - ${ClientAffinityEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client certificate authentication (TLS mutual authentication); otherwise, false. - # Default is false. - ${ClientCertEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # client certificate authentication comma-separated exclusion paths - ${ClientCertExclusionPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode] - # This composes with ClientCertEnabled setting.- ClientCertEnabled: false means ClientCert is ignored.- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - ${ClientCertMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICloningInfoAppSettingsOverrides]))] - [System.Collections.Hashtable] - # Application setting overrides for cloned app. - # If specified, these settings override the settings cloned from source app. - # Otherwise, application settings from source app are retained. - ${CloningInfoAppSettingsOverride}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone custom hostnames from source app; otherwise, false. - ${CloningInfoCloneCustomHostName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone source control from source app; otherwise, false. - ${CloningInfoCloneSourceControl}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to configure load balancing for source and destination app. - ${CloningInfoConfigureLoadBalancing}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Correlation ID of cloning operation. - # This ID ties multiple cloning operationstogether to use the same snapshot. - ${CloningInfoCorrelationId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment. - ${CloningInfoHostingEnvironment}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to overwrite destination app; otherwise, false. - ${CloningInfoOverwrite}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the source app. - # App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - ${CloningInfoSourceWebAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Location of source app ex: West US or North Europe - ${CloningInfoSourceWebAppLocation}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the Traffic Manager profile to use, if it exists. - # Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - ${CloningInfoTrafficManagerProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of Traffic Manager profile to create. - # This is only needed if Traffic Manager profile does not already exist. - ${CloningInfoTrafficManagerProfileName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Size of the function container. - ${ContainerSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Unique identifier that verifies the custom domains assigned to the app. - # Customer will add this id to a txt record for verification. - ${CustomDomainVerificationId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum allowed daily memory-time quota (applicable on dynamic apps only). - ${DailyMemoryTimeQuota}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Dapr application identifier - ${DaprConfigAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Tells Dapr which port your application is listening on - ${DaprConfigAppPort}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Enables API logging for the Dapr sidecar - ${DaprConfigEnableApiLogging}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Boolean indicating if the Dapr side car is enabled - ${DaprConfigEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Increasing max size of request body http servers parameter in MB to handle uploading of big files. - # Default is 4 MB. - ${DaprConfigHttpMaxRequestSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. - # Default is 65KB. - ${DaprConfigHttpReadBufferSize}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel] - # Sets the log level for the Dapr sidecar. - # Allowed values are debug, info, warn, error. - # Default is info. - ${DaprConfigLogLevel}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Alternate DNS server to be used by apps. - # This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - ${DnsConfigurationDnsAltServer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Custom time for DNS to be cached in seconds. - # Allowed range: 0-60. - # Default is 30 seconds. - # 0 means caching disabled. - ${DnsConfigurationDnsMaxCacheTimeout}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Total number of retries for dns lookup. - # Allowed range: 1-5. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Timeout for a single dns lookup in seconds. - # Allowed range: 1-30. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptTimeout}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of custom DNS servers to be used by an app for lookups. - # Maximum 5 dns servers can be set. - ${DnsConfigurationDnsServer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the app is enabled; otherwise, false. - # Setting this value to false disables the app (takes the app offline). - ${Enabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHostNameSslState[]] - # Hostname SSL states are used to manage the SSL bindings for app's hostnames. - # To construct, see NOTES section for HOSTNAMESSLSTATE properties and create a hash table. - ${HostNameSslState}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to disable the public hostnames of the app; otherwise, false. - # If true, the app is only accessible via API management process. - ${HostNamesDisabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of concurrent HTTP trigger invocations per instance. - ${HttpPerInstanceConcurrency}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # HttpsOnly: configures a web site to accept only https requests. - # Issues redirect forhttp requests - ${HttpsOnly}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Hyper-V sandbox. - ${HyperV}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Type of managed service identity. - ${IdentityType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IManagedServiceIdentityUserAssignedIdentities]))] - [System.Collections.Hashtable] - # The list of user assigned identities associated with the resource. - # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - ${IdentityUserAssignedIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: Hyper-V sandbox. - ${IsXenon}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. - # This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - ${ManagedEnvironmentId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - # Allowed Values: 'Enabled', 'Disabled' or an empty string. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode] - # Site redundancy mode - ${RedundancyMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if reserved; otherwise, false. - ${Reserved}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Required CPU in cores, e.g. - # 0.5 - ${ResourceConfigCpu}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Required memory, e.g. - # "1Gi" - ${ResourceConfigMemory}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName] - # Function app runtime name. - # Available options: dotnet-isolated, node, java, powershell, python, custom - ${RuntimeName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function app runtime version. - # Example: 8 (for dotnet-isolated) - ${RuntimeVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionsAlwaysReadyConfig[]] - # 'Always Ready' configuration for the function app. - # To construct, see NOTES section for SCALEANDCONCURRENCYALWAYSREADY properties and create a hash table. - ${ScaleAndConcurrencyAlwaysReady}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # Set the amount of memory allocated to each instance of the function app in MB. - # CPU and network bandwidth are allocated proportionally. - ${ScaleAndConcurrencyInstanceMemoryMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of instances for the function app. - ${ScaleAndConcurrencyMaximumInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to stop SCM (KUDU) site when the app is stopped; otherwise, false. - # The default is false. - ${ScmSiteAlsoStopped}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - ${ServerFarmId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfig] - # Configuration of the app. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Checks if Customer provided storage account is required - ${StorageAccountRequired}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType] - # Property to select Azure Storage type. - # Available options: blobContainer. - ${StorageType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to set the URL for the selected Azure Storage type. - # Example: For blobContainer, the value could be https://.blob.core.windows.net/. - ${StorageValue}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - ${VirtualNetworkSubnetId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable Backup and Restore operations over virtual network - ${VnetBackupRestoreEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable accessing content over virtual network - ${VnetContentShareEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable pulling image over Virtual Network - ${VnetImagePullEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Workload profile name for function app to execute on. - ${WorkloadProfileName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzFunctionApp_Create'; - CreateExpanded = 'Az.Functions.private\New-AzFunctionApp_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzFunctionApp_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzFunctionApp_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Create function for web site, or a deployment slot. -.Description -Description for Create function for web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -FUNCTIONENVELOPE : Function information. - [Kind ]: Kind of resource. - [Config ]: Config information. - [ConfigHref ]: Config URI. - [File ]: File list. - [(Any) ]: This indicates any property can be added to this object. - [FunctionAppId ]: Function App ID. - [Href ]: Function URI. - [InvokeUrlTemplate ]: The invocation URL - [IsDisabled ]: Gets or sets a value indicating whether the function is disabled - [Language ]: The function language - [ScriptHref ]: Script URI. - [ScriptRootPathHref ]: Script root path URI. - [SecretsFileHref ]: Secrets file URI. - [TestData ]: Test data used when testing via the Azure Portal. - [TestDataHref ]: Test data URI. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azfunction -#> -function New-AzFunction { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelope] - # Function information. - # To construct, see NOTES section for FUNCTIONENVELOPE properties and create a hash table. - ${FunctionEnvelope}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IAny] - # Config information. - ${Config}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Config URI. - ${ConfigHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionEnvelopePropertiesFiles]))] - [System.Collections.Hashtable] - # File list. - ${File}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function App ID. - ${FunctionAppId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function URI. - ${Href}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The invocation URL - ${InvokeUrlTemplate}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether the function is disabled - ${IsDisabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The function language - ${Language}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Script URI. - ${ScriptHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Script root path URI. - ${ScriptRootPathHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Secrets file URI. - ${SecretsFileHref}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Test data used when testing via the Azure Portal. - ${TestData}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Test data URI. - ${TestDataHref}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzFunction_Create'; - CreateExpanded = 'Az.Functions.private\New-AzFunction_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzFunction_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzFunction_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Create or update an identity in the specified subscription and resource group. -.Description -Create or update an identity in the specified subscription and resource group. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -PARAMETER : Describes an identity resource. - Location : The geo-location where the resource lives - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azuserassignedidentity -#> -function New-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated] - # Describes an identity resource. - # To construct, see NOTES section for PARAMETER properties and create a hash table. - ${Parameter}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The geo-location where the resource lives - ${Location}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ITrackedResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzUserAssignedIdentity_Create'; - CreateExpanded = 'Az.Functions.private\New-AzUserAssignedIdentity_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzUserAssignedIdentity_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzUserAssignedIdentity_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azwebappconfigurationslot -#> -function New-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzWebAppConfigurationSlot_Create'; - CreateExpanded = 'Az.Functions.private\New-AzWebAppConfigurationSlot_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzWebAppConfigurationSlot_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzWebAppConfigurationSlot_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/new-azwebappconfiguration -#> -function New-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Create', Mandatory)] - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Create')] - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Create = 'Az.Functions.private\New-AzWebAppConfiguration_Create'; - CreateExpanded = 'Az.Functions.private\New-AzWebAppConfiguration_CreateExpanded'; - CreateViaIdentity = 'Az.Functions.private\New-AzWebAppConfiguration_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Az.Functions.private\New-AzWebAppConfiguration_CreateViaIdentityExpanded'; - } - if (('Create', 'CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Delete an App Service plan. -.Description -Description for Delete an App Service plan. -.Example -Get-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionAppPlan -Force -.Example -Remove-AzFunctionAppPlan -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionappplan -#> -function Remove-AzFunctionAppPlan { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzFunctionAppPlan_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzFunctionAppPlan_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Deletes a web, mobile, or API app, or one of the deployment slots. -.Description -Description for Deletes a web, mobile, or API app, or one of the deployment slots. -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Remove-AzFunctionApp -Force -.Example -Remove-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunctionapp -#> -function Remove-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app to delete. - ${Name}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify false if you want to keep empty App Service plan. - # By default, empty App Service plan is deleted. - ${DeleteEmptyServerFarm}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # If true, web app metrics are also deleted. - ${DeleteMetric}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzFunctionApp_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzFunctionApp_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Delete a function for web site, or a deployment slot. -.Description -Description for Delete a function for web site, or a deployment slot. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azfunction -#> -function Remove-AzFunction { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Site name. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Function name. - ${FunctionName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzFunction_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzFunction_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Deletes the identity. -.Description -Deletes the identity. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/remove-azuserassignedidentity -#> -function Remove-AzUserAssignedIdentity { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Delete')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Delete = 'Az.Functions.private\Remove-AzUserAssignedIdentity_Delete'; - DeleteViaIdentity = 'Az.Functions.private\Remove-AzUserAssignedIdentity_DeleteViaIdentity'; - } - if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Restarts an app (or deployment slot, if specified). -.Description -Description for Restarts an app (or deployment slot, if specified). -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Restart-AzFunctionApp -Force -.Example -Restart-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/restart-azfunctionapp -#> -function Restart-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Restart', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Restart', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Restart', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Restart')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to apply the configuration settings and restarts the app only if necessary. - # By default, the API always restarts and reprovisions the app. - ${SoftRestart}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Query')] - [System.Management.Automation.SwitchParameter] - # Specify true to block until the app is restarted. - # By default, it is set to false, and the API responds immediately (asynchronous). - ${Synchronou}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Restart = 'Az.Functions.private\Restart-AzFunctionApp_Restart'; - RestartViaIdentity = 'Az.Functions.private\Restart-AzFunctionApp_RestartViaIdentity'; - } - if (('Restart') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Restores a specific backup to another app (or deployment slot, if specified). -.Description -Description for Restores a specific backup to another app (or deployment slot, if specified). -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRestoreRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -DATABASE : Collection of databases which should be restored. This list has to match the list of databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -REQUEST : Description of a restore request. - [Kind ]: Kind of resource. - [AdjustConnectionString ]: true if SiteConfig.ConnectionStrings should be set in new app; otherwise, false. - [AppServicePlan ]: Specify app service plan that will own restored site. - [BlobName ]: Name of a blob which contains the backup. - [Database ]: Collection of databases which should be restored. This list has to match the list of databases included in the backup. - DatabaseType : Database type (e.g. SqlAzure / MySql). - [ConnectionString ]: Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. - [ConnectionStringName ]: Contains a connection string name that is linked to the SiteConfig.ConnectionStrings. This is used during restore with overwrite connection strings options. - [Name ]: - [HostingEnvironment ]: App Service Environment name, if needed (only when restoring an app to an App Service Environment). - [IgnoreConflictingHostName ]: Changes a logic when restoring an app with custom domains. true to remove custom domains automatically. If false, custom domains are added to the app's object when it is being restored, but that might fail due to conflicts during the operation. - [IgnoreDatabase ]: Ignore the databases and only restore the site content - [OperationType ]: Operation type. - [Overwrite ]: true if the restore operation can overwrite target app; otherwise, false. true is needed if trying to restore over an existing app. - [SiteName ]: Name of an app. - [StorageAccountUrl ]: SAS URL to the container. -.Link -https://learn.microsoft.com/powershell/module/az.functions/restore-azfunctionapp -#> -function Restore-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='RestoreExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Restore', Mandatory)] - [Parameter(ParameterSetName='RestoreExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # ID of the backup. - ${BackupId}, - - [Parameter(ParameterSetName='Restore', Mandatory)] - [Parameter(ParameterSetName='RestoreExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Restore', Mandatory)] - [Parameter(ParameterSetName='RestoreExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Restore')] - [Parameter(ParameterSetName='RestoreExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='RestoreViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Restore', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='RestoreViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRestoreRequest] - # Description of a restore request. - # To construct, see NOTES section for REQUEST properties and create a hash table. - ${Request}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if SiteConfig.ConnectionStrings should be set in new app; otherwise, false. - ${AdjustConnectionString}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Specify app service plan that will own restored site. - ${AppServicePlan}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of a blob which contains the backup. - ${BlobName}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IDatabaseBackupSetting[]] - # Collection of databases which should be restored. - # This list has to match the list of databases included in the backup. - # To construct, see NOTES section for DATABASE properties and create a hash table. - ${Database}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment name, if needed (only when restoring an app to an App Service Environment). - ${HostingEnvironment}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Changes a logic when restoring an app with custom domains. - # true to remove custom domains automatically. - # If false, custom domains are added to the app's object when it is being restored, but that might fail due to conflicts during the operation. - ${IgnoreConflictingHostName}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Ignore the databases and only restore the site content - ${IgnoreDatabase}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.BackupRestoreOperationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.BackupRestoreOperationType] - # Operation type. - ${OperationType}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the restore operation can overwrite target app; otherwise, false. - # true is needed if trying to restore over an existing app. - ${Overwrite}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of an app. - ${SiteName}, - - [Parameter(ParameterSetName='RestoreExpanded')] - [Parameter(ParameterSetName='RestoreViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # SAS URL to the container. - ${StorageAccountUrl}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Restore = 'Az.Functions.private\Restore-AzFunctionApp_Restore'; - RestoreExpanded = 'Az.Functions.private\Restore-AzFunctionApp_RestoreExpanded'; - RestoreViaIdentity = 'Az.Functions.private\Restore-AzFunctionApp_RestoreViaIdentity'; - RestoreViaIdentityExpanded = 'Az.Functions.private\Restore-AzFunctionApp_RestoreViaIdentityExpanded'; - } - if (('Restore', 'RestoreExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates or updates an App Service Plan. -.Description -Description for Creates or updates an App Service Plan. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEPLAN : App Service plan. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [Capacity ]: Current number of instances assigned to the resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [ExtendedLocationName ]: Name of extended location. - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SkuCapability ]: Capabilities of the SKU, e.g., is traffic manager enabled? - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. - [SkuCapacityDefault ]: Default number of workers for this App Service plan SKU. - [SkuCapacityElasticMaximum ]: Maximum number of Elastic workers for this App Service plan SKU. - [SkuCapacityMaximum ]: Maximum number of workers for this App Service plan SKU. - [SkuCapacityMinimum ]: Minimum number of workers for this App Service plan SKU. - [SkuCapacityScaleType ]: Available scale configurations for an App Service plan. - [SkuFamily ]: Family code of the resource SKU. - [SkuLocation ]: Locations of the SKU. - [SkuName ]: Name of the resource SKU. - [SkuSize ]: Size specifier of the resource SKU. - [SkuTier ]: Service tier of the resource SKU. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. - -SKUCAPABILITY : Capabilities of the SKU, e.g., is traffic manager enabled - [Name ]: Name of the SKU capability. - [Reason ]: Reason of the SKU capability. - [Value ]: Value of the SKU capability. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azfunctionappplan -#> -function Set-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan] - # App Service plan. - # To construct, see NOTES section for APPSERVICEPLAN properties and create a hash table. - ${AppServicePlan}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Current number of instances assigned to the resource. - ${Capacity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # ServerFarm supports ElasticScale. - # Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - ${ElasticScaleEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm free offer expires. - ${FreeOfferExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Hyper-V container app service plan true, false otherwise. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan owns spot instances. - ${IsSpot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: If Hyper-V container app service plan true, false otherwise. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the Kubernetes Environment. - ${KubeEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - ${MaximumElasticWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, apps assigned to this App Service plan can be scaled independently.If false, apps assigned to this App Service plan will scale to all instances of the plan. - ${PerSiteScaling}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Linux app service plan true, false otherwise. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICapability[]] - # Capabilities of the SKU, e.g., is traffic manager enabled - # To construct, see NOTES section for SKUCAPABILITY properties and create a hash table. - ${SkuCapability}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Default number of workers for this App Service plan SKU. - ${SkuCapacityDefault}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of Elastic workers for this App Service plan SKU. - ${SkuCapacityElasticMaximum}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers for this App Service plan SKU. - ${SkuCapacityMaximum}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Minimum number of workers for this App Service plan SKU. - ${SkuCapacityMinimum}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Available scale configurations for an App Service plan. - ${SkuCapacityScaleType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Family code of the resource SKU. - ${SkuFamily}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Locations of the SKU. - ${SkuLocation}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the resource SKU. - ${SkuName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Size specifier of the resource SKU. - ${SkuSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Service tier of the resource SKU. - ${SkuTier}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm expires. - # Valid only if it is a spot server farm. - ${SpotExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker count. - ${TargetWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker size ID. - ${TargetWorkerSizeId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Target worker tier assigned to the App Service plan. - ${WorkerTierName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan will perform availability zone balancing.If false, this App Service Plan will not perform availability zone balancing. - ${ZoneRedundant}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzFunctionAppPlan_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzFunctionAppPlan_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Description -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -HOSTNAMESSLSTATE : Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - -SCALEANDCONCURRENCYALWAYSREADY : 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - -SITECONFIG : Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -SITEENVELOPE : A web app, a mobile app backend, or an API app. - Location : Resource Location. - [Kind ]: Kind of resource. - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. - [AuthenticationStorageAccountConnectionStringName ]: Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. - [AuthenticationType ]: Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - [AuthenticationUserAssignedIdentityResourceId ]: Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [Config ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DaprConfigAppId ]: Dapr application identifier - [DaprConfigAppPort ]: Tells Dapr which port your application is listening on - [DaprConfigEnableApiLogging ]: Enables API logging for the Dapr sidecar - [DaprConfigEnabled ]: Boolean indicating if the Dapr side car is enabled - [DaprConfigHttpMaxRequestSize ]: Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. - [DaprConfigHttpReadBufferSize ]: Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. - [DaprConfigLogLevel ]: Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [ExtendedLocationName ]: Name of extended location. - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpPerInstanceConcurrency ]: The maximum number of concurrent HTTP trigger invocations per instance. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [ManagedEnvironmentId ]: Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [PublicNetworkAccess ]: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ResourceConfigCpu ]: Required CPU in cores, e.g. 0.5 - [ResourceConfigMemory ]: Required memory, e.g. "1Gi" - [RuntimeName ]: Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom - [RuntimeVersion ]: Function app runtime version. Example: 8 (for dotnet-isolated) - [ScaleAndConcurrencyAlwaysReady ]: 'Always Ready' configuration for the function app. - [InstanceCount ]: Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. - [Name ]: Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. - [ScaleAndConcurrencyInstanceMemoryMb ]: Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. - [ScaleAndConcurrencyMaximumInstanceCount ]: The maximum number of instances for the function app. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [StorageType ]: Property to select Azure Storage type. Available options: blobContainer. - [StorageValue ]: Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://.blob.core.windows.net/. - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - [VnetBackupRestoreEnabled ]: To enable Backup and Restore operations over virtual network - [VnetContentShareEnabled ]: To enable accessing content over virtual network - [VnetImagePullEnabled ]: To enable pulling image over Virtual Network - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WorkloadProfileName ]: Workload profile name for function app to execute on. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azfunctionapp -#> -function Set-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Unique name of the app to create or update. - # To create or update a deployment slot, use the {slot} parameter. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite] - # A web app, a mobile app backend, or an API app. - # To construct, see NOTES section for SITEENVELOPE properties and create a hash table. - ${SiteEnvelope}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource Location. - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for StorageAccountConnectionString. - # Set the name of the app setting that has the storage account connection string. - # Do not set a value for this property when using other authentication type. - ${AuthenticationStorageAccountConnectionStringName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AuthenticationType] - # Property to select authentication type to access the selected storage account. - # Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. - ${AuthenticationType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Use this property for UserAssignedIdentity. - # Set the resource ID of the identity. - # Do not set a value for this property when using other authentication type. - ${AuthenticationUserAssignedIdentityResourceId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. - # Default is true. - ${ClientAffinityEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client certificate authentication (TLS mutual authentication); otherwise, false. - # Default is false. - ${ClientCertEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # client certificate authentication comma-separated exclusion paths - ${ClientCertExclusionPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode] - # This composes with ClientCertEnabled setting.- ClientCertEnabled: false means ClientCert is ignored.- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - ${ClientCertMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICloningInfoAppSettingsOverrides]))] - [System.Collections.Hashtable] - # Application setting overrides for cloned app. - # If specified, these settings override the settings cloned from source app. - # Otherwise, application settings from source app are retained. - ${CloningInfoAppSettingsOverride}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone custom hostnames from source app; otherwise, false. - ${CloningInfoCloneCustomHostName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone source control from source app; otherwise, false. - ${CloningInfoCloneSourceControl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to configure load balancing for source and destination app. - ${CloningInfoConfigureLoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Correlation ID of cloning operation. - # This ID ties multiple cloning operationstogether to use the same snapshot. - ${CloningInfoCorrelationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment. - ${CloningInfoHostingEnvironment}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to overwrite destination app; otherwise, false. - ${CloningInfoOverwrite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the source app. - # App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - ${CloningInfoSourceWebAppId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Location of source app ex: West US or North Europe - ${CloningInfoSourceWebAppLocation}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the Traffic Manager profile to use, if it exists. - # Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - ${CloningInfoTrafficManagerProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of Traffic Manager profile to create. - # This is only needed if Traffic Manager profile does not already exist. - ${CloningInfoTrafficManagerProfileName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Size of the function container. - ${ContainerSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Unique identifier that verifies the custom domains assigned to the app. - # Customer will add this id to a txt record for verification. - ${CustomDomainVerificationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum allowed daily memory-time quota (applicable on dynamic apps only). - ${DailyMemoryTimeQuota}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Dapr application identifier - ${DaprConfigAppId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Tells Dapr which port your application is listening on - ${DaprConfigAppPort}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Enables API logging for the Dapr sidecar - ${DaprConfigEnableApiLogging}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Boolean indicating if the Dapr side car is enabled - ${DaprConfigEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Increasing max size of request body http servers parameter in MB to handle uploading of big files. - # Default is 4 MB. - ${DaprConfigHttpMaxRequestSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. - # Default is 65KB. - ${DaprConfigHttpReadBufferSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DaprLogLevel] - # Sets the log level for the Dapr sidecar. - # Allowed values are debug, info, warn, error. - # Default is info. - ${DaprConfigLogLevel}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Alternate DNS server to be used by apps. - # This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - ${DnsConfigurationDnsAltServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Custom time for DNS to be cached in seconds. - # Allowed range: 0-60. - # Default is 30 seconds. - # 0 means caching disabled. - ${DnsConfigurationDnsMaxCacheTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Total number of retries for dns lookup. - # Allowed range: 1-5. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Timeout for a single dns lookup in seconds. - # Allowed range: 1-30. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of custom DNS servers to be used by an app for lookups. - # Maximum 5 dns servers can be set. - ${DnsConfigurationDnsServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the app is enabled; otherwise, false. - # Setting this value to false disables the app (takes the app offline). - ${Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of extended location. - ${ExtendedLocationName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHostNameSslState[]] - # Hostname SSL states are used to manage the SSL bindings for app's hostnames. - # To construct, see NOTES section for HOSTNAMESSLSTATE properties and create a hash table. - ${HostNameSslState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to disable the public hostnames of the app; otherwise, false. - # If true, the app is only accessible via API management process. - ${HostNamesDisabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of concurrent HTTP trigger invocations per instance. - ${HttpPerInstanceConcurrency}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # HttpsOnly: configures a web site to accept only https requests. - # Issues redirect forhttp requests - ${HttpsOnly}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Hyper-V sandbox. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Type of managed service identity. - ${IdentityType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IManagedServiceIdentityUserAssignedIdentities]))] - [System.Collections.Hashtable] - # The list of user assigned identities associated with the resource. - # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - ${IdentityUserAssignedIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: Hyper-V sandbox. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. - # This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - ${ManagedEnvironmentId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - # Allowed Values: 'Enabled', 'Disabled' or an empty string. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode] - # Site redundancy mode - ${RedundancyMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if reserved; otherwise, false. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Required CPU in cores, e.g. - # 0.5 - ${ResourceConfigCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Required memory, e.g. - # "1Gi" - ${ResourceConfigMemory}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RuntimeName] - # Function app runtime name. - # Available options: dotnet-isolated, node, java, powershell, python, custom - ${RuntimeName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Function app runtime version. - # Example: 8 (for dotnet-isolated) - ${RuntimeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IFunctionsAlwaysReadyConfig[]] - # 'Always Ready' configuration for the function app. - # To construct, see NOTES section for SCALEANDCONCURRENCYALWAYSREADY properties and create a hash table. - ${ScaleAndConcurrencyAlwaysReady}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # Set the amount of memory allocated to each instance of the function app in MB. - # CPU and network bandwidth are allocated proportionally. - ${ScaleAndConcurrencyInstanceMemoryMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Single] - # The maximum number of instances for the function app. - ${ScaleAndConcurrencyMaximumInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to stop SCM (KUDU) site when the app is stopped; otherwise, false. - # The default is false. - ${ScmSiteAlsoStopped}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - ${ServerFarmId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfig] - # Configuration of the app. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Checks if Customer provided storage account is required - ${StorageAccountRequired}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FunctionsDeploymentStorageType] - # Property to select Azure Storage type. - # Available options: blobContainer. - ${StorageType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to set the URL for the selected Azure Storage type. - # Example: For blobContainer, the value could be https://.blob.core.windows.net/. - ${StorageValue}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - ${VirtualNetworkSubnetId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable Backup and Restore operations over virtual network - ${VnetBackupRestoreEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable accessing content over virtual network - ${VnetContentShareEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # To enable pulling image over Virtual Network - ${VnetImagePullEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Workload profile name for function app to execute on. - ${WorkloadProfileName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzFunctionApp_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzFunctionApp_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Create or update an identity in the specified subscription and resource group. -.Description -Create or update an identity in the specified subscription and resource group. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -PARAMETER : Describes an identity resource. - Location : The geo-location where the resource lives - [Tag ]: Resource tags. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azuserassignedidentity -#> -function Set-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated] - # Describes an identity resource. - # To construct, see NOTES section for PARAMETER properties and create a hash table. - ${Parameter}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The geo-location where the resource lives - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api10.ITrackedResourceTags]))] - [System.Collections.Hashtable] - # Resource tags. - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzUserAssignedIdentity_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzUserAssignedIdentity_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Replaces the application settings of an app. -.Description -Description for Replaces the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : String dictionary resource. - [Kind ]: Kind of resource. - [Property ]: Settings. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappapplicationsettingslot -#> -function Set-AzWebAppApplicationSettingSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update the application settings for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary] - # String dictionary resource. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionaryProperties]))] - [System.Collections.Hashtable] - # Settings. - ${Property}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppApplicationSettingSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppApplicationSettingSlot_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Replaces the application settings of an app. -.Description -Description for Replaces the application settings of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : String dictionary resource. - [Kind ]: Kind of resource. - [Property ]: Settings. - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappapplicationsetting -#> -function Set-AzWebAppApplicationSetting { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionary] - # String dictionary resource. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStringDictionaryProperties]))] - [System.Collections.Hashtable] - # Settings. - ${Property}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppApplicationSetting_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppApplicationSetting_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappconfigurationslot -#> -function Set-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update configuration for the production slot. - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppConfigurationSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppConfigurationSlot_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappconfiguration -#> -function Set-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppConfiguration_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppConfiguration_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates whether user publishing credentials are allowed on the site or not. -.Description -Description for Updates whether user publishing credentials are allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -CSMPUBLISHINGACCESSPOLICIESENTITY : Publishing Credentials Policies parameters. - [Kind ]: Kind of resource. - [Allow ]: true to allow access to a publishing method; otherwise, false. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappscmallowedslot -#> -function Set-AzWebAppScmAllowedSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # . - ${Slot}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity] - # Publishing Credentials Policies parameters. - # To construct, see NOTES section for CSMPUBLISHINGACCESSPOLICIESENTITY properties and create a hash table. - ${CsmPublishingAccessPoliciesEntity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to allow access to a publishing method; otherwise, false. - ${Allow}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppScmAllowedSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppScmAllowedSlot_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates whether user publishing credentials are allowed on the site or not. -.Description -Description for Updates whether user publishing credentials are allowed on the site or not. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -CSMPUBLISHINGACCESSPOLICIESENTITY : Publishing Credentials Policies parameters. - [Kind ]: Kind of resource. - [Allow ]: true to allow access to a publishing method; otherwise, false. -.Link -https://learn.microsoft.com/powershell/module/az.functions/set-azwebappscmallowed -#> -function Set-AzWebAppScmAllowed { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICsmPublishingCredentialsPoliciesEntity] - # Publishing Credentials Policies parameters. - # To construct, see NOTES section for CSMPUBLISHINGACCESSPOLICIESENTITY properties and create a hash table. - ${CsmPublishingAccessPoliciesEntity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to allow access to a publishing method; otherwise, false. - ${Allow}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Set-AzWebAppScmAllowed_Update'; - UpdateExpanded = 'Az.Functions.private\Set-AzWebAppScmAllowed_UpdateExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Starts an app (or deployment slot, if specified). -.Description -Description for Starts an app (or deployment slot, if specified). -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Start-AzFunctionApp -.Example -Start-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/start-azfunctionapp -#> -function Start-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Start', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Start', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Start')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Start = 'Az.Functions.private\Start-AzFunctionApp_Start'; - StartViaIdentity = 'Az.Functions.private\Start-AzFunctionApp_StartViaIdentity'; - } - if (('Start') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Stops an app (or deployment slot, if specified). -.Description -Description for Stops an app (or deployment slot, if specified). -.Example -Get-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName | Stop-AzFunctionApp -Force -.Example -Stop-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/stop-azfunctionapp -#> -function Stop-AzFunctionApp { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Stop', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Stop', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Stop')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='StopViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Stop = 'Az.Functions.private\Stop-AzFunctionApp_Stop'; - StopViaIdentity = 'Az.Functions.private\Stop-AzFunctionApp_StopViaIdentity'; - } - if (('Stop') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Syncs function trigger metadata to the management database -.Description -Description for Syncs function trigger metadata to the management database -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/sync-azfunction -#> -function Sync-AzFunction { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Sync', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${FunctionAppName}, - - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Sync')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='SyncViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Sync = 'Az.Functions.private\Sync-AzFunction_Sync'; - SyncViaIdentity = 'Az.Functions.private\Sync-AzFunction_SyncViaIdentity'; - } - if (('Sync') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Syncs function trigger metadata to the management database -.Description -Description for Syncs function trigger metadata to the management database -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/sync-azwebappfunctionslot -#> -function Sync-AzWebAppFunctionSlot { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Sync', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - ${Slot}, - - [Parameter(ParameterSetName='Sync')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='SyncViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Sync = 'Az.Functions.private\Sync-AzWebAppFunctionSlot_Sync'; - SyncViaIdentity = 'Az.Functions.private\Sync-AzWebAppFunctionSlot_SyncViaIdentity'; - } - if (('Sync') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Check if a resource name is available. -.Description -Description for Check if a resource name is available. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailabilityRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailability -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -REQUEST : Resource name availability request content. - Name : Resource name to verify. - Type : Resource type used for verification. - [EnvironmentId ]: Azure Resource Manager ID of the customer's selected Container Apps Environment on which to host the Function app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - [IsFqdn ]: Is fully qualified domain name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/test-aznameavailability -#> -function Test-AzNameAvailability { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailability])] -[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Check')] - [Parameter(ParameterSetName='CheckExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IResourceNameAvailabilityRequest] - # Resource name availability request content. - # To construct, see NOTES section for REQUEST properties and create a hash table. - ${Request}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource name to verify. - ${Name}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.CheckNameResourceTypes])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.CheckNameResourceTypes] - # Resource type used for verification. - ${Type}, - - [Parameter(ParameterSetName='CheckExpanded')] - [Parameter(ParameterSetName='CheckViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the customer's selected Container Apps Environment on which to host the Function app. - # This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} - ${EnvironmentId}, - - [Parameter(ParameterSetName='CheckExpanded')] - [Parameter(ParameterSetName='CheckViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Is fully qualified domain name. - ${IsFqdn}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Check = 'Az.Functions.private\Test-AzNameAvailability_Check'; - CheckExpanded = 'Az.Functions.private\Test-AzNameAvailability_CheckExpanded'; - CheckViaIdentity = 'Az.Functions.private\Test-AzNameAvailability_CheckViaIdentity'; - CheckViaIdentityExpanded = 'Az.Functions.private\Test-AzNameAvailability_CheckViaIdentityExpanded'; - } - if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Validate if a resource can be created. -.Description -Description for Validate if a resource can be created. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateRequest -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEENVIRONMENT : App Service Environment Properties - VirtualNetworkId : Resource id of the Virtual Network. - [AllowNewPrivateEndpointConnection ]: Property to enable and disable new private endpoint connection creation on ASE - [CertificateUrl ]: The URL referencing the Azure Key Vault certificate secret that should be used as the default SSL/TLS certificate for sites with the custom domain suffix. - [ClusterSetting ]: Custom settings for changing the behavior of the App Service Environment. - [Name ]: Pair name. - [Value ]: Pair value. - [CustomDnsSuffixConfigurationKind ]: Kind of resource. - [CustomDnsSuffixConfigurationPropertiesDnsSuffix ]: The default custom domain suffix to use for all sites deployed on the ASE. - [DedicatedHostCount ]: Dedicated Host Count - [DnsSuffix ]: DNS suffix of the App Service Environment. - [FrontEndScaleFactor ]: Scale factor for front-ends. - [FtpEnabled ]: Property to enable and disable FTP on ASEV3 - [InboundIPAddressOverride ]: Customer provided Inbound IP Address. Only able to be set on Ase create. - [InternalLoadBalancingMode ]: Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. - [IpsslAddressCount ]: Number of IP SSL addresses reserved for the App Service Environment. - [KeyVaultReferenceIdentity ]: The user-assigned identity to use for resolving the key vault certificate reference. If not specified, the system-assigned ASE identity will be used if available. - [MultiSize ]: Front-end VM size, e.g. "Medium", "Large". - [NetworkingConfigurationKind ]: Kind of resource. - [RemoteDebugEnabled ]: Property to enable and disable Remote Debug on ASEV3 - [UpgradePreference ]: Upgrade Preference - [UserWhitelistedIPRange ]: User added ip ranges to whitelist on ASE db - [VirtualNetworkSubnet ]: Subnet within the Virtual Network. - [ZoneRedundant ]: Whether or not this App Service Environment is zone-redundant. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -VALIDATEREQUEST : Resource validation request content. - Location : Expected location of the resource. - Name : Resource name to verify. - Type : Resource type used for verification. - [AppServiceEnvironment ]: App Service Environment Properties - VirtualNetworkId : Resource id of the Virtual Network. - [AllowNewPrivateEndpointConnection ]: Property to enable and disable new private endpoint connection creation on ASE - [CertificateUrl ]: The URL referencing the Azure Key Vault certificate secret that should be used as the default SSL/TLS certificate for sites with the custom domain suffix. - [ClusterSetting ]: Custom settings for changing the behavior of the App Service Environment. - [Name ]: Pair name. - [Value ]: Pair value. - [CustomDnsSuffixConfigurationKind ]: Kind of resource. - [CustomDnsSuffixConfigurationPropertiesDnsSuffix ]: The default custom domain suffix to use for all sites deployed on the ASE. - [DedicatedHostCount ]: Dedicated Host Count - [DnsSuffix ]: DNS suffix of the App Service Environment. - [FrontEndScaleFactor ]: Scale factor for front-ends. - [FtpEnabled ]: Property to enable and disable FTP on ASEV3 - [InboundIPAddressOverride ]: Customer provided Inbound IP Address. Only able to be set on Ase create. - [InternalLoadBalancingMode ]: Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. - [IpsslAddressCount ]: Number of IP SSL addresses reserved for the App Service Environment. - [KeyVaultReferenceIdentity ]: The user-assigned identity to use for resolving the key vault certificate reference. If not specified, the system-assigned ASE identity will be used if available. - [MultiSize ]: Front-end VM size, e.g. "Medium", "Large". - [NetworkingConfigurationKind ]: Kind of resource. - [RemoteDebugEnabled ]: Property to enable and disable Remote Debug on ASEV3 - [UpgradePreference ]: Upgrade Preference - [UserWhitelistedIPRange ]: User added ip ranges to whitelist on ASE db - [VirtualNetworkSubnet ]: Subnet within the Virtual Network. - [ZoneRedundant ]: Whether or not this App Service Environment is zone-redundant. - [Capacity ]: Target capacity of the App Service plan (number of VMs). - [ContainerImagePlatform ]: Platform (windows or linux) - [ContainerImageRepository ]: Repository name (image name) - [ContainerImageTag ]: Image tag - [ContainerRegistryBaseUrl ]: Base URL of the container registry - [ContainerRegistryPassword ]: Password for to access the container registry - [ContainerRegistryUsername ]: Username for to access the container registry - [HostingEnvironment ]: Name of App Service Environment where app or App Service plan should be created. - [IsSpot ]: true if App Service plan is for Spot instances; otherwise, false. - [IsXenon ]: true if App Service plan is running as a windows container - [NeedLinuxWorker ]: true if App Service plan is for Linux workers; otherwise, false. - [ServerFarmId ]: ARM resource ID of an App Service plan that would host the app. - [SkuName ]: Name of the target SKU for the App Service plan. -.Link -https://learn.microsoft.com/powershell/module/az.functions/test-az -#> -function Test-Az { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateResponse])] -[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Validate', Mandatory)] - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Validate')] - [Parameter(ParameterSetName='ValidateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IValidateRequest] - # Resource validation request content. - # To construct, see NOTES section for VALIDATEREQUEST properties and create a hash table. - ${ValidateRequest}, - - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Expected location of the resource. - ${Location}, - - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource name to verify. - ${Name}, - - [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ValidateResourceTypes])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ValidateResourceTypes] - # Resource type used for verification. - ${Type}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServiceEnvironment] - # App Service Environment Properties - # To construct, see NOTES section for APPSERVICEENVIRONMENT properties and create a hash table. - ${AppServiceEnvironment}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Target capacity of the App Service plan (number of VMs). - ${Capacity}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Platform (windows or linux) - ${ContainerImagePlatform}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Repository name (image name) - ${ContainerImageRepository}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Image tag - ${ContainerImageTag}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Base URL of the container registry - ${ContainerRegistryBaseUrl}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Password for to access the container registry - ${ContainerRegistryPassword}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Username for to access the container registry - ${ContainerRegistryUsername}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of App Service Environment where app or App Service plan should be created. - ${HostingEnvironment}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if App Service plan is for Spot instances; otherwise, false. - ${IsSpot}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if App Service plan is running as a windows container - ${IsXenon}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if App Service plan is for Linux workers; otherwise, false. - ${NeedLinuxWorker}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of an App Service plan that would host the app. - ${ServerFarmId}, - - [Parameter(ParameterSetName='ValidateExpanded')] - [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of the target SKU for the App Service plan. - ${SkuName}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Validate = 'Az.Functions.private\Test-Az_Validate'; - ValidateExpanded = 'Az.Functions.private\Test-Az_ValidateExpanded'; - ValidateViaIdentity = 'Az.Functions.private\Test-Az_ValidateViaIdentity'; - ValidateViaIdentityExpanded = 'Az.Functions.private\Test-Az_ValidateViaIdentityExpanded'; - } - if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates or updates an App Service Plan. -.Description -Description for Creates or updates an App Service Plan. -.Example -Update-AzFunctionAppPlan -ResourceGroupName MyResourceGroupName ` - -Name MyPremiumPlan ` - -MaximumWorkerCount 20 ` - -Sku EP2 ` - -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlanPatchResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSERVICEPLAN : ARM resource for a app service plan. - [Kind ]: Kind of resource. - [ElasticScaleEnabled ]: ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - [FreeOfferExpirationTime ]: The time when the server farm free offer expires. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HyperV ]: If Hyper-V container app service plan true, false otherwise. - [IsSpot ]: If true, this App Service Plan owns spot instances. - [IsXenon ]: Obsolete: If Hyper-V container app service plan true, false otherwise. - [KubeEnvironmentProfileId ]: Resource ID of the Kubernetes Environment. - [MaximumElasticWorkerCount ]: Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - [PerSiteScaling ]: If true, apps assigned to this App Service plan can be scaled independently. If false, apps assigned to this App Service plan will scale to all instances of the plan. - [Reserved ]: If Linux app service plan true, false otherwise. - [SpotExpirationTime ]: The time when the server farm expires. Valid only if it is a spot server farm. - [TargetWorkerCount ]: Scaling worker count. - [TargetWorkerSizeId ]: Scaling worker size ID. - [WorkerTierName ]: Target worker tier assigned to the App Service plan. - [ZoneRedundant ]: If true, this App Service Plan will perform availability zone balancing. If false, this App Service Plan will not perform availability zone balancing. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionappplan -#> -function Update-AzFunctionAppPlan { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlan])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the App Service plan. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IAppServicePlanPatchResource] - # ARM resource for a app service plan. - # To construct, see NOTES section for APPSERVICEPLAN properties and create a hash table. - ${AppServicePlan}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # ServerFarm supports ElasticScale. - # Apps in this plan will scale as if the ServerFarm was ElasticPremium sku - ${ElasticScaleEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm free offer expires. - ${FreeOfferExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Hyper-V container app service plan true, false otherwise. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan owns spot instances. - ${IsSpot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: If Hyper-V container app service plan true, false otherwise. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the Kubernetes Environment. - ${KubeEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan - ${MaximumElasticWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, apps assigned to this App Service plan can be scaled independently.If false, apps assigned to this App Service plan will scale to all instances of the plan. - ${PerSiteScaling}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If Linux app service plan true, false otherwise. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # The time when the server farm expires. - # Valid only if it is a spot server farm. - ${SpotExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker count. - ${TargetWorkerCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Scaling worker size ID. - ${TargetWorkerSizeId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Target worker tier assigned to the App Service plan. - ${WorkerTierName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # If true, this App Service Plan will perform availability zone balancing.If false, this App Service Plan will not perform availability zone balancing. - ${ZoneRedundant}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzFunctionAppPlan_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzFunctionAppPlan_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzFunctionAppPlan_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzFunctionAppPlan_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Description -Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing app. -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -PlanName NewPlanName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType SystemAssigned -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -ApplicationInsightsName ApplicationInsightsProjectName -Force -.Example -Update-AzFunctionApp -Name MyUniqueFunctionAppName -ResourceGroupName MyResourceGroupName -IdentityType None -Force - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISitePatchResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -HOSTNAMESSLSTATE : Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -SITECONFIG : Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -SITEENVELOPE : ARM resource for a site. - [Kind ]: Kind of resource. - [ClientAffinityEnabled ]: true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. - [ClientCertEnabled ]: true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. - [ClientCertExclusionPath ]: client certificate authentication comma-separated exclusion paths - [ClientCertMode ]: This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - [CloningInfoAppSettingsOverride ]: Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. - [(Any) ]: This indicates any property can be added to this object. - [CloningInfoCloneCustomHostName ]: true to clone custom hostnames from source app; otherwise, false. - [CloningInfoCloneSourceControl ]: true to clone source control from source app; otherwise, false. - [CloningInfoConfigureLoadBalancing ]: true to configure load balancing for source and destination app. - [CloningInfoCorrelationId ]: Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. - [CloningInfoHostingEnvironment ]: App Service Environment. - [CloningInfoOverwrite ]: true to overwrite destination app; otherwise, false. - [CloningInfoSourceWebAppId ]: ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - [CloningInfoSourceWebAppLocation ]: Location of source app ex: West US or North Europe - [CloningInfoTrafficManagerProfileId ]: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - [CloningInfoTrafficManagerProfileName ]: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. - [ContainerSize ]: Size of the function container. - [CustomDomainVerificationId ]: Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. - [DailyMemoryTimeQuota ]: Maximum allowed daily memory-time quota (applicable on dynamic apps only). - [DnsConfigurationDnsAltServer ]: Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - [DnsConfigurationDnsMaxCacheTimeout ]: Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. - [DnsConfigurationDnsRetryAttemptCount ]: Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. - [DnsConfigurationDnsRetryAttemptTimeout ]: Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. - [DnsConfigurationDnsServer ]: List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. - [Enabled ]: true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). - [HostNameSslState ]: Hostname SSL states are used to manage the SSL bindings for app's hostnames. - [HostType ]: Indicates whether the hostname is a standard or repository hostname. - [Name ]: Hostname. - [SslState ]: SSL type. - [Thumbprint ]: SSL certificate thumbprint. - [ToUpdate ]: Set to true to update existing hostname. - [VirtualIP ]: Virtual IP address assigned to the hostname if IP based SSL is enabled. - [HostNamesDisabled ]: true to disable the public hostnames of the app; otherwise, false. If true, the app is only accessible via API management process. - [HostingEnvironmentProfileId ]: Resource ID of the App Service Environment. - [HttpsOnly ]: HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests - [HyperV ]: Hyper-V sandbox. - [IdentityType ]: Type of managed service identity. - [IdentityUserAssignedIdentity ]: The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - [(Any) ]: This indicates any property can be added to this object. - [IsXenon ]: Obsolete: Hyper-V sandbox. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [RedundancyMode ]: Site redundancy mode - [Reserved ]: true if reserved; otherwise, false. - [ScmSiteAlsoStopped ]: true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. - [ServerFarmId ]: Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - [SiteConfig ]: Configuration of the app. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - [StorageAccountRequired ]: Checks if Customer provided storage account is required - [VirtualNetworkSubnetId ]: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azfunctionapp -#> -function Update-AzFunctionApp { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISite])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Unique name of the app to create or update. - # To create or update a deployment slot, use the {slot} parameter. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISitePatchResource] - # ARM resource for a site. - # To construct, see NOTES section for SITEENVELOPE properties and create a hash table. - ${SiteEnvelope}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. - # Default is true. - ${ClientAffinityEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable client certificate authentication (TLS mutual authentication); otherwise, false. - # Default is false. - ${ClientCertEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # client certificate authentication comma-separated exclusion paths - ${ClientCertExclusionPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ClientCertMode] - # This composes with ClientCertEnabled setting.- ClientCertEnabled: false means ClientCert is ignored.- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. - ${ClientCertMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ICloningInfoAppSettingsOverrides]))] - [System.Collections.Hashtable] - # Application setting overrides for cloned app. - # If specified, these settings override the settings cloned from source app. - # Otherwise, application settings from source app are retained. - ${CloningInfoAppSettingsOverride}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone custom hostnames from source app; otherwise, false. - ${CloningInfoCloneCustomHostName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to clone source control from source app; otherwise, false. - ${CloningInfoCloneSourceControl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to configure load balancing for source and destination app. - ${CloningInfoConfigureLoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Correlation ID of cloning operation. - # This ID ties multiple cloning operationstogether to use the same snapshot. - ${CloningInfoCorrelationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App Service Environment. - ${CloningInfoHostingEnvironment}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to overwrite destination app; otherwise, false. - ${CloningInfoOverwrite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the source app. - # App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. - ${CloningInfoSourceWebAppId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Location of source app ex: West US or North Europe - ${CloningInfoSourceWebAppLocation}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # ARM resource ID of the Traffic Manager profile to use, if it exists. - # Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. - ${CloningInfoTrafficManagerProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Name of Traffic Manager profile to create. - # This is only needed if Traffic Manager profile does not already exist. - ${CloningInfoTrafficManagerProfileName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Size of the function container. - ${ContainerSize}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Unique identifier that verifies the custom domains assigned to the app. - # Customer will add this id to a txt record for verification. - ${CustomDomainVerificationId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum allowed daily memory-time quota (applicable on dynamic apps only). - ${DailyMemoryTimeQuota}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Alternate DNS server to be used by apps. - # This property replicates the WEBSITE_DNS_ALT_SERVER app setting. - ${DnsConfigurationDnsAltServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Custom time for DNS to be cached in seconds. - # Allowed range: 0-60. - # Default is 30 seconds. - # 0 means caching disabled. - ${DnsConfigurationDnsMaxCacheTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Total number of retries for dns lookup. - # Allowed range: 1-5. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Timeout for a single dns lookup in seconds. - # Allowed range: 1-30. - # Default is 3. - ${DnsConfigurationDnsRetryAttemptTimeout}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # List of custom DNS servers to be used by an app for lookups. - # Maximum 5 dns servers can be set. - ${DnsConfigurationDnsServer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if the app is enabled; otherwise, false. - # Setting this value to false disables the app (takes the app offline). - ${Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHostNameSslState[]] - # Hostname SSL states are used to manage the SSL bindings for app's hostnames. - # To construct, see NOTES section for HOSTNAMESSLSTATE properties and create a hash table. - ${HostNameSslState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to disable the public hostnames of the app; otherwise, false. - # If true, the app is only accessible via API management process. - ${HostNamesDisabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the App Service Environment. - ${HostingEnvironmentProfileId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # HttpsOnly: configures a web site to accept only https requests. - # Issues redirect forhttp requests - ${HttpsOnly}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Hyper-V sandbox. - ${HyperV}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedServiceIdentityType] - # Type of managed service identity. - ${IdentityType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IManagedServiceIdentityUserAssignedIdentities]))] - [System.Collections.Hashtable] - # The list of user assigned identities associated with the resource. - # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} - ${IdentityUserAssignedIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Obsolete: Hyper-V sandbox. - ${IsXenon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.RedundancyMode] - # Site redundancy mode - ${RedundancyMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if reserved; otherwise, false. - ${Reserved}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to stop SCM (KUDU) site when the app is stopped; otherwise, false. - # The default is false. - ${ScmSiteAlsoStopped}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". - ${ServerFarmId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfig] - # Configuration of the app. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Checks if Customer provided storage account is required - ${StorageAccountRequired}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName} - ${VirtualNetworkSubnetId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzFunctionApp_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzFunctionApp_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzFunctionApp_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzFunctionApp_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Update an identity in the specified subscription and resource group. -.Description -Update an identity in the specified subscription and resource group. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityUpdate -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -PARAMETER : Describes an identity resource. - [Location ]: The geo-location where the resource lives - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azuserassignedidentity -#> -function Update-AzUserAssignedIdentity { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the Resource Group to which the identity belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # The name of the identity resource. - ${ResourceName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityUpdate] - # Describes an identity resource. - # To construct, see NOTES section for PARAMETER properties and create a hash table. - ${Parameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The geo-location where the resource lives - ${Location}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20181130.IIdentityUpdateTags]))] - [System.Collections.Hashtable] - # Resource tags - ${Tag}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzUserAssignedIdentity_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzUserAssignedIdentity_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzUserAssignedIdentity_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzUserAssignedIdentity_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azwebappconfigurationslot -#> -function Update-AzWebAppConfigurationSlot { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the deployment slot. - # If a slot is not specified, the API will update configuration for the production slot. - ${Slot}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzWebAppConfigurationSlot_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Description for Updates the configuration of an app. -.Description -Description for Updates the configuration of an app. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -APPSETTING : Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - -CONNECTIONSTRING : Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - -EXPERIMENTRAMPUPRULE : List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - -HANDLERMAPPING : Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [ActionName ]: The workflow action name. - [AnalysisName ]: Analysis Name - [AppSettingKey ]: App Setting key name. - [Authprovider ]: The auth provider for the users. - [BackupId ]: ID of the backup. - [BaseAddress ]: Module base address. - [BasicAuthName ]: name of the basic auth entry. - [BlobServicesName ]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default' - [CertificateOrderName ]: Name of the certificate order.. - [ConnectionStringKey ]: - [ContainerName ]: Site Container Name - [DatabaseConnectionName ]: Name of the database connection. - [DeletedSiteId ]: The numeric ID of the deleted app, e.g. 12345 - [DetectorName ]: Detector Resource Name - [DiagnosticCategory ]: Diagnostic Category - [DiagnosticsName ]: Name of the diagnostics item. - [DomainName ]: Name of the domain. - [DomainOwnershipIdentifierName ]: Name of domain ownership identifier. - [EntityName ]: Name of the hybrid connection. - [EnvironmentName ]: The stage site identifier. - [FunctionAppName ]: Name of the function app registered with the static site build. - [FunctionName ]: Function name. - [GatewayName ]: Name of the gateway. Currently, the only supported string is "primary". - [HistoryName ]: The workflow trigger history name. Corresponds to the run name for triggers that resulted in a run. - [HostName ]: Hostname in the hostname binding. - [HostingEnvironmentName ]: Name of the hosting environment. - [Id ]: Deployment ID. - [Id1 ]: Resource identity path - [ImmutabilityPolicyName ]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default' - [Instance ]: Name of the instance in the multi-role pool. - [InstanceId ]: - [KeyId ]: The API Key ID. This is unique within a Application Insights component. - [KeyName ]: The name of the key. - [KeyType ]: The type of host key. - [LinkedBackendName ]: Name of the linked backend that should be retrieved - [Location ]: - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [Name ]: Name of the certificate. - [NamespaceName ]: The namespace for this hybrid connection. - [OperationId ]: GUID of the operation. - [PremierAddOnName ]: Add-on name. - [PrivateEndpointConnectionName ]: Name of the private endpoint connection. - [ProcessId ]: PID. - [PublicCertificateName ]: Public certificate name. - [PurgeId ]: In a purge status request, this is the Id of the operation the status of which is returned. - [RelayName ]: The relay name for this hybrid connection. - [RepetitionName ]: The workflow repetition. - [RequestHistoryName ]: The request history name. - [ResourceGroupName ]: Name of the resource group to which the resource belongs. - [ResourceName ]: The name of the Application Insights component resource. - [RouteName ]: Name of the Virtual Network route. - [RunName ]: The workflow run name. - [Scope ]: The resource provider scope of the resource. Parent resource being extended by Managed Identities. - [SiteExtensionId ]: Site extension name. - [SiteName ]: Site Name - [Slot ]: Slot Name - [SnapshotId ]: The ID of the snapshot to read. - [SourceControlType ]: Type of source control - [SubscriptionId ]: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000). - [TriggerName ]: The workflow trigger name. - [Userid ]: The user id of the user. - [VersionId ]: The workflow versionId. - [View ]: The type of view. Only "summary" is supported at this time. - [VnetName ]: Name of the virtual network. - [WebJobName ]: Name of Web Job. - [WorkerName ]: Name of worker machine, which typically starts with RD. - [WorkerPoolName ]: Name of the worker pool. - [WorkflowName ]: Workflow name. - -IPSECURITYRESTRICTION : IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -METADATA : Application metadata. This property cannot be retrieved, since it may contain secrets. - [Name ]: Pair name. - [Value ]: Pair value. - -SCMIPSECURITYRESTRICTION : IP security restrictions for scm. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - -SITECONFIG : Web app configuration ARM resource. - [Kind ]: Kind of resource. - [AcrUseManagedIdentityCred ]: Flag to use Managed Identity Creds for ACR pull - [AcrUserManagedIdentityId ]: If using user managed identity, the user managed identity ClientId - [ActionMinProcessExecutionTime ]: Minimum time the process must execute before taking the action - [ActionType ]: Predefined action to be taken. - [AlwaysOn ]: true if Always On is enabled; otherwise, false. - [ApiDefinitionUrl ]: The URL of the API definition. - [ApiManagementConfigId ]: APIM-Api Identifier. - [AppCommandLine ]: App command line to launch. - [AppSetting ]: Application settings. - [Name ]: Pair name. - [Value ]: Pair value. - [AutoHealEnabled ]: true if Auto Heal is enabled; otherwise, false. - [AutoSwapSlotName ]: Auto-swap slot name. - [AzureStorageAccount ]: List of Azure Storage Accounts. - [(Any) ]: This indicates any property can be added to this object. - [ConnectionString ]: Connection strings. - [ConnectionString ]: Connection string value. - [Name ]: Name of connection string. - [Type ]: Type of database. - [CorAllowedOrigin ]: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. - [CorSupportCredentials ]: Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. - [CustomActionExe ]: Executable to be run. - [CustomActionParameter ]: Parameters for the executable. - [DefaultDocument ]: Default documents. - [DetailedErrorLoggingEnabled ]: true if detailed error logging is enabled; otherwise, false. - [DocumentRoot ]: Document root. - [DynamicTagsJson ]: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - [ElasticWebAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to apps in plans where ElasticScaleEnabled is true - [ExperimentRampUpRule ]: List of ramp-up rules. - [ActionHostName ]: Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. - [ChangeDecisionCallbackUrl ]: Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ - [ChangeIntervalInMinute ]: Specifies interval in minutes to reevaluate ReroutePercentage. - [ChangeStep ]: In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. - [MaxReroutePercentage ]: Specifies upper boundary below which ReroutePercentage will stay. - [MinReroutePercentage ]: Specifies lower boundary above which ReroutePercentage will stay. - [Name ]: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. - [ReroutePercentage ]: Percentage of the traffic which will be redirected to ActionHostName. - [FtpsState ]: State of FTP / FTPS service - [FunctionAppScaleLimit ]: Maximum number of workers that a site can scale out to. This setting only applies to the Consumption and Elastic Premium Plans - [FunctionsRuntimeScaleMonitoringEnabled ]: Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled, the ScaleController will not monitor event sources directly, but will instead call to the runtime to get scale status. - [HandlerMapping ]: Handler mappings. - [Argument ]: Command-line arguments to be passed to the script processor. - [Extension ]: Requests with this extension will be handled using the specified FastCGI application. - [ScriptProcessor ]: The absolute path to the FastCGI application. - [HealthCheckPath ]: Health check path - [Http20Enabled ]: Http20Enabled: configures a web site to allow clients to connect over http2.0 - [HttpLoggingEnabled ]: true if HTTP logging is enabled; otherwise, false. - [IPSecurityRestriction ]: IP security restrictions for main. - [Action ]: Allow or Deny access for this IP range. - [Description ]: IP restriction rule description. - [Header ]: IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. - [(Any) ]: This indicates any property can be added to this object. - [IPAddress ]: IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. - [Name ]: IP restriction rule name. - [Priority ]: Priority of IP restriction rule. - [SubnetMask ]: Subnet mask for the range of IP addresses the restriction is valid for. - [SubnetTrafficTag ]: (internal) Subnet traffic tag - [Tag ]: Defines what this IP filter will be used for. This is to support IP filtering on proxies. - [VnetSubnetResourceId ]: Virtual network resource id - [VnetTrafficTag ]: (internal) Vnet traffic tag - [IPSecurityRestrictionsDefaultAction ]: Default action for main access restriction if no rules are matched. - [IsPushEnabled ]: Gets or sets a flag indicating whether the Push endpoint is enabled. - [JavaContainer ]: Java container. - [JavaContainerVersion ]: Java container version. - [JavaVersion ]: Java version. - [KeyVaultReferenceIdentity ]: Identity to use for Key Vault Reference authentication. - [LimitMaxDiskSizeInMb ]: Maximum allowed disk size usage in MB. - [LimitMaxMemoryInMb ]: Maximum allowed memory usage in MB. - [LimitMaxPercentageCpu ]: Maximum allowed CPU usage percentage. - [LinuxFxVersion ]: Linux App Framework and version - [LoadBalancing ]: Site load balancing. - [LocalMySqlEnabled ]: true to enable local MySQL; otherwise, false. - [LogsDirectorySizeLimit ]: HTTP logs directory size limit. - [MachineKeyDecryption ]: Algorithm used for decryption. - [MachineKeyDecryptionKey ]: Decryption key. - [MachineKeyValidation ]: MachineKey validation. - [MachineKeyValidationKey ]: Validation key. - [ManagedPipelineMode ]: Managed pipeline mode. - [ManagedServiceIdentityId ]: Managed Service Identity Id - [Metadata ]: Application metadata. This property cannot be retrieved, since it may contain secrets. - [MinTlsCipherSuite ]: The minimum strength TLS cipher suite allowed for an application - [MinTlsVersion ]: MinTlsVersion: configures the minimum version of TLS required for SSL requests - [MinimumElasticInstanceCount ]: Number of minimum instance count for a site This setting only applies to the Elastic Plans - [NetFrameworkVersion ]: .NET Framework version. - [NodeVersion ]: Version of Node.js. - [NumberOfWorker ]: Number of workers. - [PhpVersion ]: Version of PHP. - [PowerShellVersion ]: Version of PowerShell. - [PreWarmedInstanceCount ]: Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans - [PublicNetworkAccess ]: Property to allow or block all public traffic. - [PublishingUsername ]: Publishing user name. - [PushKind ]: Kind of resource. - [PythonVersion ]: Version of Python. - [RemoteDebuggingEnabled ]: true if remote debugging is enabled; otherwise, false. - [RemoteDebuggingVersion ]: Remote debugging version. - [RequestCount ]: Request Count. - [RequestTimeInterval ]: Time interval. - [RequestTracingEnabled ]: true if request tracing is enabled; otherwise, false. - [RequestTracingExpirationTime ]: Request tracing expiration time. - [ScmIPSecurityRestriction ]: IP security restrictions for scm. - [ScmIPSecurityRestrictionsDefaultAction ]: Default action for scm access restriction if no rules are matched. - [ScmIPSecurityRestrictionsUseMain ]: IP security restrictions for scm to use main. - [ScmMinTlsVersion ]: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - [ScmType ]: SCM type. - [SlowRequestCount ]: Request Count. - [SlowRequestPath ]: Request Path. - [SlowRequestTimeInterval ]: Time interval. - [SlowRequestTimeTaken ]: Time taken. - [TagWhitelistJson ]: Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - [TagsRequiringAuth ]: Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. - [TracingOption ]: Tracing options. - [TriggerPrivateBytesInKb ]: A rule based on private bytes. - [TriggerSlowRequestsWithPath ]: A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - [TriggerStatusCode ]: A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - [TriggerStatusCodesRange ]: A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - [Use32BitWorkerProcess ]: true to use 32-bit worker process; otherwise, false. - [VirtualApplication ]: Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. - [VnetName ]: Virtual Network name. - [VnetPrivatePortsCount ]: The number of private ports assigned to this app. These will be assigned dynamically on runtime. - [VnetRouteAllEnabled ]: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - [WebSocketsEnabled ]: true if WebSocket is enabled; otherwise, false. - [WebsiteTimeZone ]: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - [WindowsFxVersion ]: Xenon App Framework and version - [XManagedServiceIdentityId ]: Explicit Managed Service Identity Id - -TRIGGERSLOWREQUESTSWITHPATH : A rule based on multiple Slow Requests Rule with path - [Count ]: Request Count. - [Path ]: Request Path. - [TimeInterval ]: Time interval. - [TimeTaken ]: Time taken. - -TRIGGERSTATUSCODE : A rule based on status codes. - [Count ]: Request Count. - [Path ]: Request Path - [Status ]: HTTP status code. - [SubStatus ]: Request Sub Status. - [TimeInterval ]: Time interval. - [Win32Status ]: Win32 error code. - -TRIGGERSTATUSCODESRANGE : A rule based on status codes ranges. - [Count ]: Request Count. - [Path ]: - [StatusCode ]: HTTP status code. - [TimeInterval ]: Time interval. - -VIRTUALAPPLICATION : Virtual applications. - [PhysicalPath ]: Physical path. - [PreloadEnabled ]: true if preloading is enabled; otherwise, false. - [VirtualDirectory ]: Virtual directories for virtual application. - [PhysicalPath ]: Physical path. - [VirtualPath ]: Path to virtual application. - [VirtualPath ]: Virtual path. -.Link -https://learn.microsoft.com/powershell/module/az.functions/update-azwebappconfiguration -#> -function Update-AzWebAppConfiguration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the app. - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [System.String] - # Name of the resource group to which the resource belongs. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Your Azure subscription ID. - # This is a GUID-formatted string (e.g. - # 00000000-0000-0000-0000-000000000000). - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.IFunctionsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigResource] - # Web app configuration ARM resource. - # To construct, see NOTES section for SITECONFIG properties and create a hash table. - ${SiteConfig}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Flag to use Managed Identity Creds for ACR pull - ${AcrUseManagedIdentityCred}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # If using user managed identity, the user managed identity ClientId - ${AcrUserManagedIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Minimum time the process must executebefore taking the action - ${ActionMinProcessExecutionTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.AutoHealActionType] - # Predefined action to be taken. - ${ActionType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Always On is enabled; otherwise, false. - ${AlwaysOn}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # The URL of the API definition. - ${ApiDefinitionUrl}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # APIM-Api Identifier. - ${ApiManagementConfigId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # App command line to launch. - ${AppCommandLine}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application settings. - # To construct, see NOTES section for APPSETTING properties and create a hash table. - ${AppSetting}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if Auto Heal is enabled; otherwise, false. - ${AutoHealEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Auto-swap slot name. - ${AutoSwapSlotName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISiteConfigAzureStorageAccounts]))] - [System.Collections.Hashtable] - # List of Azure Storage Accounts. - ${AzureStorageAccount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IConnStringInfo[]] - # Connection strings. - # To construct, see NOTES section for CONNECTIONSTRING properties and create a hash table. - ${ConnectionString}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Gets or sets the list of origins that should be allowed to make cross-origincalls (for example: http://example.com:12345). - # Use "*" to allow all. - ${CorAllowedOrigin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets whether CORS requests with credentials are allowed. - # See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentialsfor more details. - ${CorSupportCredentials}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Executable to be run. - ${CustomActionExe}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Parameters for the executable. - ${CustomActionParameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String[]] - # Default documents. - ${DefaultDocument}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if detailed error logging is enabled; otherwise, false. - ${DetailedErrorLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Document root. - ${DocumentRoot}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. - ${DynamicTagsJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to apps in plans where ElasticScaleEnabled is true - ${ElasticWebAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IRampUpRule[]] - # List of ramp-up rules. - # To construct, see NOTES section for EXPERIMENTRAMPUPRULE properties and create a hash table. - ${ExperimentRampUpRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.FtpsState] - # State of FTP / FTPS service - ${FtpsState}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Maximum number of workers that a site can scale out to.This setting only applies to the Consumption and Elastic Premium Plans - ${FunctionAppScaleLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether functions runtime scale monitoring is enabled. - # When enabled,the ScaleController will not monitor event sources directly, but will instead call to theruntime to get scale status. - ${FunctionsRuntimeScaleMonitoringEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IHandlerMapping[]] - # Handler mappings. - # To construct, see NOTES section for HANDLERMAPPING properties and create a hash table. - ${HandlerMapping}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Health check path - ${HealthCheckPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Http20Enabled: configures a web site to allow clients to connect over http2.0 - ${Http20Enabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if HTTP logging is enabled; otherwise, false. - ${HttpLoggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for main. - # To construct, see NOTES section for IPSECURITYRESTRICTION properties and create a hash table. - ${IPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for main access restriction if no rules are matched. - ${IPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a flag indicating whether the Push endpoint is enabled. - ${IsPushEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container. - ${JavaContainer}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java container version. - ${JavaContainerVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Java version. - ${JavaVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Identity to use for Key Vault Reference authentication. - ${KeyVaultReferenceIdentity}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${Kind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed disk size usage in MB. - ${LimitMaxDiskSizeInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int64] - # Maximum allowed memory usage in MB. - ${LimitMaxMemoryInMb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Double] - # Maximum allowed CPU usage percentage. - ${LimitMaxPercentageCpu}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Linux App Framework and version - ${LinuxFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SiteLoadBalancing] - # Site load balancing. - ${LoadBalancing}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to enable local MySQL; otherwise, false. - ${LocalMySqlEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # HTTP logs directory size limit. - ${LogsDirectorySizeLimit}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ManagedPipelineMode] - # Managed pipeline mode. - ${ManagedPipelineMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Managed Service Identity Id - ${ManagedServiceIdentityId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.INameValuePair[]] - # Application metadata. - # This property cannot be retrieved, since it may contain secrets. - # To construct, see NOTES section for METADATA properties and create a hash table. - ${Metadata}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.TlsCipherSuites] - # The minimum strength TLS cipher suite allowed for an application - ${MinTlsCipherSuite}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # MinTlsVersion: configures the minimum version of TLS required for SSL requests - ${MinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of minimum instance count for a siteThis setting only applies to the Elastic Plans - ${MinimumElasticInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # .NET Framework version. - ${NetFrameworkVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Node.js. - ${NodeVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of workers. - ${NumberOfWorker}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PHP. - ${PhpVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of PowerShell. - ${PowerShellVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Number of preWarmed instances.This setting only applies to the Consumption and Elastic Plans - ${PreWarmedInstanceCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Property to allow or block all public traffic. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Publishing user name. - ${PublishingUsername}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Kind of resource. - ${PushKind}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Version of Python. - ${PythonVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if remote debugging is enabled; otherwise, false. - ${RemoteDebuggingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Remote debugging version. - ${RemoteDebuggingVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${RequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${RequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if request tracing is enabled; otherwise, false. - ${RequestTracingEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.DateTime] - # Request tracing expiration time. - ${RequestTracingExpirationTime}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IIPSecurityRestriction[]] - # IP security restrictions for scm. - # To construct, see NOTES section for SCMIPSECURITYRESTRICTION properties and create a hash table. - ${ScmIPSecurityRestriction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.DefaultAction] - # Default action for scm access restriction if no rules are matched. - ${ScmIPSecurityRestrictionsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # IP security restrictions for scm to use main. - ${ScmIPSecurityRestrictionsUseMain}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.SupportedTlsVersions] - # ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site - ${ScmMinTlsVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType])] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Support.ScmType] - # SCM type. - ${ScmType}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Request Count. - ${SlowRequestCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Request Path. - ${SlowRequestPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time interval. - ${SlowRequestTimeInterval}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Time taken. - ${SlowRequestTimeTaken}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. - ${TagWhitelistJson}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.Tags can consist of alphanumeric characters and the following:'_', '@', '#', '.', ':', '-'. - # Validation should be performed at the PushRequestHandler. - ${TagsRequiringAuth}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Tracing options. - ${TracingOption}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # A rule based on private bytes. - ${TriggerPrivateBytesInKb}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.ISlowRequestsBasedTrigger[]] - # A rule based on multiple Slow Requests Rule with path - # To construct, see NOTES section for TRIGGERSLOWREQUESTSWITHPATH properties and create a hash table. - ${TriggerSlowRequestsWithPath}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesBasedTrigger[]] - # A rule based on status codes. - # To construct, see NOTES section for TRIGGERSTATUSCODE properties and create a hash table. - ${TriggerStatusCode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IStatusCodesRangeBasedTrigger[]] - # A rule based on status codes ranges. - # To construct, see NOTES section for TRIGGERSTATUSCODESRANGE properties and create a hash table. - ${TriggerStatusCodesRange}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true to use 32-bit worker process; otherwise, false. - ${Use32BitWorkerProcess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Models.Api20231201.IVirtualApplication[]] - # Virtual applications. - # To construct, see NOTES section for VIRTUALAPPLICATION properties and create a hash table. - ${VirtualApplication}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Virtual Network name. - ${VnetName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # The number of private ports assigned to this app. - # These will be assigned dynamically on runtime. - ${VnetPrivatePortsCount}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Virtual Network Route All enabled. - # This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. - ${VnetRouteAllEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Management.Automation.SwitchParameter] - # true if WebSocket is enabled; otherwise, false. - ${WebSocketsEnabled}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Sets the time zone a site uses for generating timestamps. - # Compatible with Linux and Windows App Service. - # Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. - # For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - # For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones - ${WebsiteTimeZone}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.String] - # Xenon App Framework and version - ${WindowsFxVersion}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Body')] - [System.Int32] - # Explicit Managed Service Identity Id - ${XManagedServiceIdentityId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Functions.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.Functions.private\Update-AzWebAppConfiguration_Update'; - UpdateExpanded = 'Az.Functions.private\Update-AzWebAppConfiguration_UpdateExpanded'; - UpdateViaIdentity = 'Az.Functions.private\Update-AzWebAppConfiguration_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.Functions.private\Update-AzWebAppConfiguration_UpdateViaIdentityExpanded'; - } - if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Functions.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBFGqs93FHrnLZ7 -# s08jKwgL9FU1uLaeSRrzxKN4odBeTaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINVW5SbRDS9VVJB5+6226PZG -# sl0HacIucFe/9PTZgNTVMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAotRj2Pmh8xLGU0lKIoVH/duQOXrY71OE6bugtMZ+NusnkO7E5FzRA1dd -# mRzNpy3Qj5T3WFNnNSBXKgn2E0HJ/7IhceXxS327wF2pPM4xR7yH25Rn518mkRtJ -# JUQwBr8MvMcKWHB6ByFET83TFHk7sW5cOK5EYr7km2MUIGaUF9IwNACeGd/Ge5eS -# /AjPc78z00kKJYOQAS9qI+LBEXttIpcu/ZtBIzR1KwBpbCr+8+/caK+6eMnUrg8u -# Bihny3cG2LDAuDIBl0jAT+o5TaABUnnEB56gXviQCp+LKAeimYhK4fDZ5MbWcA6m -# qqvxajqLVuaynPeJ1sLAg1UO7fbjXaGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBrbjSE/lj4hWoieXl7nu6cbQPg5V9jHOuG5VOazL+tKgIGZ1rjbLqd -# GBMyMDI1MDEwOTA2MzY0Mi45MzZaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAfGzRfUn6MAW1gABAAAB8TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NTVaFw0yNTAzMDUxODQ1NTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODYwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCxulCZttIf8X97rW9/J+Q4Vg9PiugB1ya1/DRxxLW2 -# hwy4QgtU3j5fV75ZKa6XTTQhW5ClkGl6gp1nd5VBsx4Jb+oU4PsMA2foe8gP9bQN -# PVxIHMJu6TYcrrn39Hddet2xkdqUhzzySXaPFqFMk2VifEfj+HR6JheNs2LLzm8F -# DJm+pBddPDLag/R+APIWHyftq9itwM0WP5Z0dfQyI4WlVeUS+votsPbWm+RKsH4F -# QNhzb0t/D4iutcfCK3/LK+xLmS6dmAh7AMKuEUl8i2kdWBDRcc+JWa21SCefx5SP -# hJEFgYhdGPAop3G1l8T33cqrbLtcFJqww4TQiYiCkdysCcnIF0ZqSNAHcfI9SAv3 -# gfkyxqQNJJ3sTsg5GPRF95mqgbfQbkFnU17iYbRIPJqwgSLhyB833ZDgmzxbKmJm -# dDabbzS0yGhngHa6+gwVaOUqcHf9w6kwxMo+OqG3QZIcwd5wHECs5rAJZ6PIyFM7 -# Ad2hRUFHRTi353I7V4xEgYGuZb6qFx6Pf44i7AjXbptUolDcVzYEdgLQSWiuFajS -# 6Xg3k7Cy8TiM5HPUK9LZInloTxuULSxJmJ7nTjUjOj5xwRmC7x2S/mxql8nvHSCN -# 1OED2/wECOot6MEe9bL3nzoKwO8TNlEStq5scd25GA0gMQO+qNXV/xTDOBTJ8zBc -# GQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLy2xe59sCE0SjycqE5Erb4YrS1gMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDhSEjSBFSCbJyl3U/QmFMW2eLPBknnlsfI -# D/7gTMvANEnhq08I9HHbbqiwqDEHSvARvKtL7j0znICYBbMrVSmvgDxU8jAGqMyi -# LoM80788So3+T6IZV//UZRJqBl4oM3bCIQgFGo0VTeQ6RzYL+t1zCUXmmpPmM4xc -# ScVFATXj5Tx7By4ShWUC7Vhm7picDiU5igGjuivRhxPvbpflbh/bsiE5tx5cuOJE -# JSG+uWcqByR7TC4cGvuavHSjk1iRXT/QjaOEeJoOnfesbOdvJrJdbm+leYLRI67N -# 3cd8B/suU21tRdgwOnTk2hOuZKs/kLwaX6NsAbUy9pKsDmTyoWnGmyTWBPiTb2rp -# 5ogo8Y8hMU1YQs7rHR5hqilEq88jF+9H8Kccb/1ismJTGnBnRMv68Ud2l5LFhOZ4 -# nRtl4lHri+N1L8EBg7aE8EvPe8Ca9gz8sh2F4COTYd1PHce1ugLvvWW1+aOSpd8N -# nwEid4zgD79ZQxisJqyO4lMWMzAgEeFhUm40FshtzXudAsX5LoCil4rLbHfwYtGO -# pw9DVX3jXAV90tG9iRbcqjtt3vhW9T+L3fAZlMeraWfh7eUmPltMU8lEQOMelo/1 -# ehkIGO7YZOHxUqeKpmF9QaW8LXTT090AHZ4k6g+tdpZFfCMotyG+E4XqN6ZWtKEB -# QiE3xL27BDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQD7 -# n7Bk4gsM2tbU/i+M3BtRnLj096CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymhlzAiGA8yMDI1MDEwOTAxMTUw -# M1oYDzIwMjUwMTEwMDExNTAzWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKaGX -# AgEAMAoCAQACAgnWAgH/MAcCAQACAhLZMAoCBQDrKvMXAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABWHux9xbYY4I0L4XVQj97eT2StJ8YAHfLn+PZEx9Hdg -# A8+ONymStatVt+SnyQ9nyV1lIGMKljTA95AUUN3xG9Eo2QioQUCRBmnqjp//gHsX -# Piv0u7m3VgnLsr/TnTo17aLOc0bOyYlS1BTthbz2XeyB646/F8ochBd1OqoCvluI -# Evv6Bx9hcodVtCm3pxAv4YDX8sXb0cFRNWz+Vq9JOKr4ankiYyp0INmV5C8cAHJb -# 4+PKlCzqdqx+GV4RdLaDvK7pcF6qcaO3J5Gl0I5OoeTF6KN1ifx90T0ps6q5LgV1 -# 6lzWULKJA/BVAnUF9Q+ybg+yEa3UGrkVPMsX8vGN7sQxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfGzRfUn6MAW1gABAAAB -# 8TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCAVbIm7+wSGPTiqAhZ3hvr5IYezhYeBihW1siaXKXs1 -# 2zCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINV3/T5hS7ijwao466RosB7w -# wEibt0a1P5EqIwEj9hF4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEwIgQgZv4QEc5hgS9BsS74vtux+Rzx -# z6O0XI7Iv02NK7Hl7vIwDQYJKoZIhvcNAQELBQAEggIAQzBXThskmaqLsh0ipgRj -# EefsP6pgEkh24UY/+g48jhQ561Ptu1+hyXYnN8BEhZ26CRu/cMNaH6bNCuiVmDKw -# 2NPVtz6LPctmlWqGyH74HCoVtbUJCjKiNDQcJ/7Tf11eij0vgHK/QaTry48OXcsY -# Uj4MMl0UVpTczsw5hmeEefH/oDOUO3Ys4dUir/wNXPQD5teGzzycGsYEbVpSMPnC -# rqOgspWs2cPF/ojfI/YoQJEQ/BcJg3HdfpfkFurgj8zhRfb/ZCiTYvVV8PUWKXPL -# VR+qyqLnNIumwDghc7p9beykfLhmUabbxCO5uRWnVrppR9U9p7kY3MTkeqUQxciF -# 19OjmE8neEK20+fTqazi125MrnXhOLS6r23YMeu1X3t1vivaAATxoCNhq3vtlPKo -# 9XHnCdLPYF9CHuzIyxiobZQ8ckHSdLO4O6vu4cw4j8OWVgkf+A3gYTc3d0xpmEug -# 0piKirlOA2gyFto3EDLynBHQF4yAy56/HHhugnqWwmhHylUyMEdwt262q/O6DqtQ -# 9JCLrlNvNRnh/SG1DmNWO2Mfyl46kNeEBqZtdGEkZtvJPY1v+HY++dK/J5jKhkic -# gql5cGnOny/GZQ9ZVGVmWlKiJ+uHNa6/X163Vm7x0MOdeE3HAP45i6IdrdE71Jpc -# xdGb0jqbsqKULPcU2kHeVzI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 deleted file mode 100644 index 9213c3763627..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -param() -if ($env:AzPSAutorestTestPlaybackMode) { - $loadEnvPath = Join-Path $PSScriptRoot '..' 'test' 'loadEnv.ps1' - . ($loadEnvPath) - return $env.SubscriptionId -} -return (Get-AzContext).Subscription.Id -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCvmGT2RlJhp/rC -# DOiTnt/3S1Bv3biEMflyZwWMS2xRdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPSNBc+wDke3rcRSTQbfFzLx -# ZjDqn60fWPPP7nkeXd5aMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIOWv2gqibHDoAsgFKvajYtSyvigIY7LG6+yONh9HcUJdJnIgMxkf+7z/ -# qm0Q7C1aR8JJrAkY+3pKMvBOGYlXRDmicIYAN0EdUyMgxU488QsAjnGWjQXrM1UK -# aob9PRQrhtUBn4ZG5wAbJhh2Mkd1B6OfBaH39wIC9RoNJ82qC+omLBNtcSf1qxxD -# mcok7TsJipQyhezvmyZkp7mZZOCVRnQUzcv8EePP1Mb5XHJxcB9RvJZPdEnNOEor -# /+m5iJXS91Xf1av1uWJ4UtUxLh5wyLuabiujk3tdGllgFevRrW6DU7g19PbWUWFQ -# tDul12Jei/euUx0DggqFpAGcrIUSMKGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDuMbkRPjAvxi4QeVb1DOEEpIfpSuM9f5eAc4Y7kh75MAIGZ1rRdmaw -# GBIyMDI1MDEwOTA2MzY1MS44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUx -# OVoXDTI1MDMwNTE4NDUxOVowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAMJXny/gi5Drn1c8zUO1pYy/38dFQLmR2IQXz1gE/r9G -# fuSOoyRnkRJ6Z/kSWLgIu1BVJ59GkXWPtLkssqKwxY4ZFotxpVsZN9yYjW8xEnW3 -# MzAI0igKr+/LxYfxB1XUH8Bvmwr5D3Ii/MbDjtN9c8TxGWtq7Ar976dafAy3TrRq -# QRmIknPVWHUuFJgpqI/1nbcRmYYRMJaKCQpty4CeG+HfKsxrz24F9p4dBkQcZCp2 -# yQzjwQFxZJZ2mJJIGIDHKEdSRuSeX08/O0H9JTHNFmNTNYeD1t/WapnRwiIBYLQS -# Mrs42GVB8pJEdUsos0+mXf/5QvheNzRi92pzzyA4tSv/zhP3/Ermvza6W9GnYDz9 -# qv1wbhbvrnS4poDFECaAviEqAhfn/RogCxvKok5ro4gZIX1r4N9eXUulA80pHv3a -# xwXu2MPlarAi6J9L1hSIcy9EuOMqTRJIJX+alcLQGg+STlqx/GuslsKwl48dI4Ru -# WknNGbNo/o4xfBFytvtNcVA6xOQq6qRa+9gg+9XMLrxQz4yyQs+V3V6p044wrtJt -# t/a0ZJl/f6I7BZAxxZcH2DDmArcAhgrTxaQkm7LM+p+K2C5t1EKZiv0JWw065b7A -# cNgaFyIkMXYuSuOQVSNRxdIgl31/ayxiK1n0K6sZXvgFBx+vGO+TUvyO+03ua6Uj -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUz/7gmICfNjh2kR/9mWuHUrvej1gwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAHSh8NuT6WVaLVwLqex+J7km2nT2jpvoBEKm -# +0M+rYoU/6GL5Q00/ssZyIq5ySpcKYFMUiF8F4ZLG+TrJyiR1CvfzXmkQ5phZOce -# 9DT7yErLzqvUXit8G7igcHlxPLTxPiiGsb85gb8H+A2fPQ6Xq/u7+oSPPjzNdnpm -# XEobJnAqYplZoF3YNgTDMql0uQHGzoDp6dZlHSNj6rkV1tXjmCEZMqBKvkQIA6cs -# PieMnB+MirSZFlbANlChe0lJpUdK7aUdAvdgcQWKS6dtRMl818EMsvsa/6xOZGIN -# mTLk4DGgsbaBpN+6IVt+mZJ89yCXkI5TN8xCfOkp9fr4WQjRBA2+4+lawNTyxH66 -# eLZWYOjuuaomuibiKGBU10tox81Sq8EvlmJIrXOZoQsEn1r5g6MTmmZJqtbmwZuf -# uJWQXZb0lAg4fq0ZYsUlLkezfrNqGSgeHyIP3rct4aNmqQW6wppRbvbIyP/LFN4Y -# QM6givfmTBfGvVS77OS6vbL4W41jShmOmnOn3kBbWV6E/TFo76gFXVd+9oK6v8Hk -# 9UCnbHOuiwwRRwDCkmmKj5Vh8i58aPuZ5dwZBhYDxSavwroC6j4mWPwh4VLqVK8q -# GpCmZ0HMAwao85Aq3U7DdlfF6Eru8CKKbdmIAuUzQrnjqTSxmvF1k+CmbPs7zD2A -# cu7JkBB7MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALNy -# BOcZqxLB792u75w97U0X+/BDoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKY+fMCIYDzIwMjUwMTA4MjM1ODIz -# WhgPMjAyNTAxMDkyMzU4MjNaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspj58C -# AQAwBwIBAAICCowwBwIBAAICE0wwCgIFAOsq4R8CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEARm0d77sDdK+Bqg3rqdpFmlOenvfBFxGzx0wFPf9zw9hvBfq/ -# EY/IG/WpJ/Jw/J/08M9f9PKnzD7w/9qeeHb2426Zu22WM7fxgY3CLchQb1ACW0NK -# +iCUftBwmbUqK5kuYDMUvYEwPtwD3AIdHvyNlHgse3oPWg6FQrA8ttht1lY+QvGO -# 19OqpeZwzGhAW/O1kGXarKG6rn1qQhGuR3bBKyTvdsujZiVpKwSU0wVMjI+ukv78 -# 9qachfRelJF1bDCInE0mzQxxClHrn9OZ9u/Vnu7QMyUdBYk7JdCXVtECo4y2KynF -# /fz1xueljgsuRALveftvFBWbwabi5hV44504MzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIIZX/FUvXiNbINs5u/kh0fqbsDchKF1hioi+bvU+HGFYMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg5TZdDXZqhv0N4MVcz1QUd4RfvgW/ -# QAG9AwbuoLnWc60wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAecujy+TC08b6QABAAAB5zAiBCBEm+MnX6BUaw2hoO31T8VOQURXR1mD -# tTiPuzpaNaxqQTANBgkqhkiG9w0BAQsFAASCAgBews9oufEPazqt0EzJChqw/s4w -# ydX6moKL9sZr979ineeCHC3pY//7oxmCLxcJg00KBmEGhRv3wvx5m9qYeKgVhyKw -# sW5Nm0pqmNfKwUcNq/6xUB86UWiHOp5XN3B78HkjrT7IEMc9OA2gbRwGZl9nwLyZ -# /5myqnfj3GTfM6OVW+/bZBxHLQVFEWWDKSLpyIoFMyiTUbipXnrQpkbHgmHtAYxJ -# JhGr6I65aoRJKzHZzCkeB9zX/OMIFTcs3k8h9gjNIdgyG3xmyTG9IzeXuGQhO/BV -# vk88pV/btLDG6HF9QSGI95pOCvyfoG/ySV64L5NascO5yRX6DiwN2QPm1XZzE2zI -# D3Ypm8CrMG5lLwqSYuY/jRrb+pUdre7u61nuasWUWV13iepOjy8dF/wMOucfd8m3 -# 5s93Zb0ThTo6RselEpQOd8Qnxjqoq4DO137VbhCxHzgnY23G/jS+pfCuYSX0jId9 -# RXWO59DknoV01R6u1a9bcNuUbwOXU8k6Iwt203tLmXLrFiTN1JqcDoA0zpB1qV2y -# XIhlV7jY/LMe0IZdwGkkMyAe93DSgNofTjTotiDLLcI3dn5yIepxjGF0P1fUNQuM -# eAVMPxi+ne47AJm4NixZWBP48Qi2Py6mFjs8FMYTL5gVwYWWMLB7JG1lUQqWKoDG -# rFnouitaw1wRQR0WhA== -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Unprotect-SecureString.ps1 b/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Unprotect-SecureString.ps1 deleted file mode 100644 index f186085d93b0..000000000000 --- a/Modules/Az.Functions/4.2.0/Functions.Autorest/utils/Unprotect-SecureString.ps1 +++ /dev/null @@ -1,233 +0,0 @@ -#This script converts securestring to plaintext - -param( - [Parameter(Mandatory, ValueFromPipeline)] - [System.Security.SecureString] - ${SecureString} -) - -$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) -try { - $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) -} finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) -} - -return $plaintext -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT7ZbNoY98P1cW -# CLQEXghewcRRqpuzw+uOgG2nbQ8aHaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAmR -# ZNAgxcDFKH97A6YERhvKrSJCqORTlbGk5c1WcUAXMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAfPtlhlRy2E3hutbUEkAOD+7dk7c/QftuRCG3 -# JtEcBxyGQG4SFKjdNfyGA9mU9bcQG7EDyKsTDGaeSxfO20CGY+ge345SXSbS20VD -# E66lqx8no+vYNPDTtYfEUOLzHeGWnWo0iAn0H4j7fwhbL/2eq4mpGdj94cSTUh3g -# ZaXTKsqAy8inZDZCoyX4TMHjuXX+SJU1PLHCt2x79KcDFqoOoUYWlA3GiajtQKS1 -# VP/3aezEpYq7aGFK5aHo/hUQSnEeY/Yr9Os3Rx9lz7ztyn7NVcTQK8JUAOuoR3/S -# mWmUoeRc3k0XBiHZppIi5m9oIevwf4WRMSZhcSx0GNbTicgIy6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDnI7XkFqZmx9eRquXRsqCafUn275vbpU6+ -# eoCsY2oCggIGZ1r0VelAGBMyMDI1MDEwOTA2Mzc0NC45MzVaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwAB -# AAAB7TANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7z -# D7g88NpbEaQ6SjcTIRbzCVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayM -# yW4YIpFPZP2x4FBMVCddseF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFB -# z8j0oLWGy3VgLmBTKM4xLqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQ -# MWhykpG+vXDwcpWvwDe+TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQ -# QNC8nLmIvdKkAoWEMXtJsGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5 -# OCEmW6YchEyRDSwP4hU9f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRG -# tcJ9yBNC5BaRktjz7stPaojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF -# 6BHv2TvwlVBeQRN22XjaVVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr -# 7wT0zl0iXr+NtqUkWSOnWRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8X -# f9PTPMzZXDJBI1EciR/91QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4 -# gGUsTvTW+r1JZMxUT2MwqQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAq -# BEfKlAZf0NKh4CIZMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0e -# Hi+iE6/qDY8sbbsO4emancp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bF -# I7dXYw09p3vCipbjy4Eoifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCN -# p0jlJ188/CuRPgqJnfq5EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZ -# qeTIQ0raOItZnFuGDy4+xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr -# 2zrWuceDhz7sKLttLTJ7ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GU -# kMqc51FsNdG1n+zgc7zHu2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Nd -# k5TeMR8Js2kNUicu2CqZ03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzab -# tS4JQgUnJrIZfyosk4D18rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu -# 4ntkzFUxBBpbFG6k1CINZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2 -# kGOixDJHsahZVmwsoNvhy5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSp -# MhoJ33V2Za/lkKcbkUM0SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDuHayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAi -# GA8yMDI1MDEwOTAyMjcxMloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKbKAAgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGdu -# JWnWonsXKPptDkaQJ/jqh8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLho -# CdhGggzU70J4s1ohAeSnauOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+ -# 8LXELYRPEXTUNdh0t/TalsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWc -# cZ+NRtVCuFswqT17sqnw5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/q -# E0g6Mum/F0YyC9SyYuzJk8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3h -# X8vV96VdcwABAAAB7TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAlDRlJWdI5GuiftyJi+gDtKruZ -# qEWEfY8tPHfV0pTRgjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0 -# CFseKxK3A16l1wrIwrsSDrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFot -# PXySbWtoYQzcjhOI+GdzM2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAZIrQ -# Fu33o8czIck9WXTy7f+Oa+7CJTD7KtQfnM3YL3vgjBt7mopEGazCoqhoa0bWnzr0 -# YkF3ck/7sGUyROa1TQ0/5X+mCJ5yFhlUVdglcq+ARKZBTvXUYljFXfOdP+DqtPUg -# nFG8l6/JGSNYuCFQuQV6EJh0/Jcjt1jFkHH3PMNlzkryQA23TvJe/WOevn3LfGhv -# uwMJi27rNlvCmF63p3HNJZpJYY8ti/aKNgxnydU5SC87mtuhGotAuKAFYO7SNdjx -# fgTmZx+WfObfkvc9qWAP83Dm6nJQsLqUiYnockovlNDEL56XneV6LGQTy54fZ0t3 -# ETd6xpWXjE8+UAz2iASScHFOCBbkOnRgwLTzrByJPiNeTI4Kbh39Ctm1b6PUDGP9 -# iLDLeehaFAH7sbH0ccOk00pXdNCEL7eDmeXTtu6kMbw/L1/rT10n8X15VRa8Mshy -# 503Fd9hjmkcRvvs9MPL2Z3njc3xuQ7HOg7KblPOqBhngHhHs+dIeTrX9qP1gX1XX -# TcrVBzNqVO2C8Swur7/a2m4W8LuXCpqslYzBwWJgaykQ/tqOO13M9rnx4EXGrjSZ -# 4q4gvNI7FsJb0WsbIIBeF+jwktYBoEfUV9Pv5j0OKdcrcrwfCdJ5VJ2latZCoCaq -# TjHwobcIgvCSPH9GiXZgWG2uSWRinDsCc60jJkI= -# SIG # End signature block diff --git a/Modules/Az.Functions/4.2.0/PSGetModuleInfo.xml b/Modules/Az.Functions/4.2.0/PSGetModuleInfo.xml deleted file mode 100644 index 124241569526..000000000000 --- a/Modules/Az.Functions/4.2.0/PSGetModuleInfo.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.Functions - 4.2.0 - Module - Microsoft Azure PowerShell - Azure Functions service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For information on Azure Functions, please visit the following: https://learn.microsoft.com/azure/azure-functions/ - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-14T03:15:04-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - PSModule - Functions - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Get-AzFunctionApp - Get-AzFunctionAppAvailableLocation - Get-AzFunctionAppPlan - Get-AzFunctionAppSetting - New-AzFunctionApp - New-AzFunctionAppPlan - Remove-AzFunctionApp - Remove-AzFunctionAppPlan - Remove-AzFunctionAppSetting - Restart-AzFunctionApp - Start-AzFunctionApp - Stop-AzFunctionApp - Update-AzFunctionApp - Update-AzFunctionAppPlan - Update-AzFunctionAppSetting - - - - - Cmdlet - - - - DscResource - - - - Workflow - - - - Command - - - - Get-AzFunctionApp - Get-AzFunctionAppAvailableLocation - Get-AzFunctionAppPlan - Get-AzFunctionAppSetting - New-AzFunctionApp - New-AzFunctionAppPlan - Remove-AzFunctionApp - Remove-AzFunctionAppPlan - Remove-AzFunctionAppSetting - Restart-AzFunctionApp - Start-AzFunctionApp - Stop-AzFunctionApp - Update-AzFunctionApp - Update-AzFunctionAppPlan - Update-AzFunctionAppSetting - - - - - - - * Upgraded nuget package to signed package. - - - - - - System.Collections.Specialized.OrderedDictionary - System.Object - - - - Name - Az.Accounts - - - MinimumVersion - 4.0.1 - - - CanonicalId - nuget:Az.Accounts/4.0.1 - - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Azure Functions service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For information on Azure Functions, please visit the following: https://learn.microsoft.com/azure/azure-functions/ - True - * Upgraded nuget package to signed package. - True - True - 2362118 - 98196668 - 4036547 - 1/14/2025 3:15:04 AM -05:00 - 1/14/2025 3:15:04 AM -05:00 - 1/30/2025 5:20:00 PM -05:00 - Azure ResourceManager ARM PSModule Functions PSEdition_Core PSEdition_Desktop PSFunction_Get-AzFunctionApp PSCommand_Get-AzFunctionApp PSFunction_Get-AzFunctionAppAvailableLocation PSCommand_Get-AzFunctionAppAvailableLocation PSFunction_Get-AzFunctionAppPlan PSCommand_Get-AzFunctionAppPlan PSFunction_Get-AzFunctionAppSetting PSCommand_Get-AzFunctionAppSetting PSFunction_New-AzFunctionApp PSCommand_New-AzFunctionApp PSFunction_New-AzFunctionAppPlan PSCommand_New-AzFunctionAppPlan PSFunction_Remove-AzFunctionApp PSCommand_Remove-AzFunctionApp PSFunction_Remove-AzFunctionAppPlan PSCommand_Remove-AzFunctionAppPlan PSFunction_Remove-AzFunctionAppSetting PSCommand_Remove-AzFunctionAppSetting PSFunction_Restart-AzFunctionApp PSCommand_Restart-AzFunctionApp PSFunction_Start-AzFunctionApp PSCommand_Start-AzFunctionApp PSFunction_Stop-AzFunctionApp PSCommand_Stop-AzFunctionApp PSFunction_Update-AzFunctionApp PSCommand_Update-AzFunctionApp PSFunction_Update-AzFunctionAppPlan PSCommand_Update-AzFunctionAppPlan PSFunction_Update-AzFunctionAppSetting PSCommand_Update-AzFunctionAppSetting PSIncludes_Function - False - 2025-01-30T17:20:00Z - 4.2.0 - Microsoft Corporation - false - Module - Az.Functions.nuspec|Functions.Autorest\custom\Get-AzFunctionApp.ps1|Functions.Autorest\custom\Get-AzFunctionAppSetting.ps1|Functions.Autorest\custom\New-AzFunctionAppPlan.ps1|Functions.Autorest\custom\Remove-AzFunctionAppSetting.ps1|Functions.Autorest\custom\Stop-AzFunctionApp.ps1|Functions.Autorest\custom\Update-AzFunctionAppPlan.ps1|Functions.Autorest\custom\api\Support\AvailablePlanType.cs|Functions.Autorest\custom\api\Support\FunctionAppManagedServiceIdentityUpdateType.cs|Functions.Autorest\custom\api\Support\SkuType.cs|Functions.Autorest\custom\Api20231201\AppServicePlan.cs|Functions.Autorest\custom\FunctionsStack\functionAppStacks.json|Functions.Autorest\internal\Az.Functions.internal.psm1|Functions.Autorest\utils\Get-SubscriptionIdTestSafe.ps1|Functions.Autorest\Az.Functions.format.ps1xml|Functions.Autorest\custom\Az.Functions.custom.psm1|Functions.Autorest\custom\Get-AzFunctionAppAvailableLocation.ps1|Functions.Autorest\custom\HelperFunctions.ps1|Functions.Autorest\custom\Remove-AzFunctionApp.ps1|Functions.Autorest\custom\Restart-AzFunctionApp.ps1|Functions.Autorest\custom\Update-AzFunctionApp.ps1|Functions.Autorest\custom\Update-AzFunctionAppSetting.ps1|Functions.Autorest\custom\api\Support\FunctionAppManagedServiceIdentityCreateType.cs|Functions.Autorest\custom\api\Support\PlanType.cs|Functions.Autorest\custom\api\Support\WorkerType.cs|Functions.Autorest\custom\Api20231201\Site.cs|Functions.Autorest\exports\ProxyCmdletDefinitions.ps1|Functions.Autorest\internal\ProxyCmdletDefinitions.ps1|Functions.Autorest\utils\Unprotect-SecureString.ps1|Az.Functions.psd1|Functions.Autorest\Az.Functions.psm1|Functions.Autorest\custom\Functions.format.ps1xml|Functions.Autorest\custom\Get-AzFunctionAppPlan.ps1|Functions.Autorest\custom\New-AzFunctionApp.ps1|Functions.Autorest\custom\Remove-AzFunctionAppPlan.ps1|Functions.Autorest\custom\Start-AzFunctionApp.ps1|Az.Functions.psm1|Functions.Autorest\bin\Az.Functions.private.dll|Functions.Autorest\custom\Functions.types.ps1xml|.signature.p7s - eafced71-8742-4a2c-5afd-13117428dd90 - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.Functions\4.2.0 -
-
-
diff --git a/Modules/Az.KeyVault/6.3.1/.signature.p7s b/Modules/Az.KeyVault/6.3.1/.signature.p7s deleted file mode 100644 index f8f2e4bab4c8..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/.signature.p7s and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psd1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psd1 deleted file mode 100644 index 3d998af727de..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psd1 +++ /dev/null @@ -1,223 +0,0 @@ -@{ - ModuleVersion = '1.0' - RootModule = '.\Az.KeyVault.Extension.psm1' - FunctionsToExport = @('Set-Secret','Get-Secret','Remove-Secret','Get-SecretInfo','Test-SecretVault') -} - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBYCJ3nYSwEBxJk -# WHIXQdOalH/h5CcR4O3Y0nHU2vJr26CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIFWrtf5Yo/NtHS0RAUWXnbgh -# ZQV3DmkpIe8jWInnNkaoMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAHlojNpUn8JVn+WRi0olKMZGmRlLTHfRz+Sg5YsFk/t+hnUZTEtAJFjrs -# mLx6hRyc/8Lh9A5UCjcFo6gAQXZNKxIsJcDMYn1Cq9EXkIuue1OLu/jHmja2ucqh -# N2nOomHf74P6ipqNXu5hTm+CRBQwJ0ueI80/7o+e+Iwh1nlQPYG3gGDy8UkpWip5 -# A4Jj4LNH/29CJFi8CEntaBXJhT++Z3m1LPDF/5oCr8ORm2+i0fohhPsfMmSyrjJf -# t3PcqvUbZ1ElwEJ+JhvXLMW1kriSCl6ycxP37JgRNUOg53xOfta4KrQGyaPjAUWM -# TsiidsGtHisefv0mqtBVtNccUxCnZ6GCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCeHkseZ4l3RiuAeTFarcYKVhXEHYUjoLbs2aj7+x4dfgIGZ2K0f1ac -# GBMyMDI1MDEwOTA3MjEzOS4wODhaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/Bigr8xpWoc6AAEAAAH8MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzExNFoXDTI1MTAyMjE4MzExNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZGMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp1DAKLxpbQcPVYPHlJHy -# W7W5lBZjJWWDjMfl5WyhuAylP/LDm2hb4ymUmSymV0EFRQcmM8BypwjhWP8F7x4i -# O88d+9GZ9MQmNh3jSDohhXXgf8rONEAyfCPVmJzM7ytsurZ9xocbuEL7+P7EkIwo -# OuMFlTF2G/zuqx1E+wANslpPqPpb8PC56BQxgJCI1LOF5lk3AePJ78OL3aw/Ndlk -# vdVl3VgBSPX4Nawt3UgUofuPn/cp9vwKKBwuIWQEFZ837GXXITshd2Mfs6oYfxXE -# tmj2SBGEhxVs7xERuWGb0cK6afy7naKkbZI2v1UqsxuZt94rn/ey2ynvunlx0R6/ -# b6nNkC1rOTAfWlpsAj/QlzyM6uYTSxYZC2YWzLbbRl0lRtSz+4TdpUU/oAZSB+Y+ -# s12Rqmgzi7RVxNcI2lm//sCEm6A63nCJCgYtM+LLe9pTshl/Wf8OOuPQRiA+stTs -# g89BOG9tblaz2kfeOkYf5hdH8phAbuOuDQfr6s5Ya6W+vZz6E0Zsenzi0OtMf5RC -# a2hADYVgUxD+grC8EptfWeVAWgYCaQFheNN/ZGNQMkk78V63yoPBffJEAu+B5xlT -# PYoijUdo9NXovJmoGXj6R8Tgso+QPaAGHKxCbHa1QL9ASMF3Os1jrogCHGiykfp1 -# dKGnmA5wJT6Nx7BedlSDsAkCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSY8aUrsUaz -# hxByH79dhiQCL/7QdjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAT7ss/ZAZ0bTa -# FsrsiJYd//LQ6ImKb9JZSKiRw9xs8hwk5Y/7zign9gGtweRChC2lJ8GVRHgrFkBx -# ACjuuPprSz/UYX7n522JKcudnWuIeE1p30BZrqPTOnscD98DZi6WNTAymnaS7it5 -# qAgNInreAJbTU2cAosJoeXAHr50YgSGlmJM+cN6mYLAL6TTFMtFYJrpK9TM5Ryh5 -# eZmm6UTJnGg0jt1pF/2u8PSdz3dDy7DF7KDJad2qHxZORvM3k9V8Yn3JI5YLPuLs -# o2J5s3fpXyCVgR/hq86g5zjd9bRRyyiC8iLIm/N95q6HWVsCeySetrqfsDyYWStw -# L96hy7DIyLL5ih8YFMd0AdmvTRoylmADuKwE2TQCTvPnjnLk7ypJW29t17Yya4V+ -# Jlz54sBnPU7kIeYZsvUT+YKgykP1QB+p+uUdRH6e79Vaiz+iewWrIJZ4tXkDMmL2 -# 1nh0j+58E1ecAYDvT6B4yFIeonxA/6Gl9Xs7JLciPCIC6hGdliiEBpyYeUF0ohZF -# n7NKQu80IZ0jd511WA2bq6x9aUq/zFyf8Egw+dunUj1KtNoWpq7VuJqapckYsmvm -# mYHZXCjK1Eus7V1I+aXjrBYuqyM9QpeFZU4U01YG15uWwUCaj0uZlah/RGSYMd84 -# y9DCqOpfeKE6PLMk7hLnhvcOQrnxP6kwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUATkEpJXOaqI2wfqBsw4NLVwqYqqqggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOspikYwIhgPMjAyNTAxMDgyMzM1MzRaGA8yMDI1MDEwOTIzMzUzNFowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymKRgIBADAHAgEAAgICnzAHAgEAAgIS5jAK -# AgUA6yrbxgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQB4d3GGMvHlPvhW -# VCiZO+Hxa6p9FoMWl6mdTziZ9ghePCOm5QE+r8hw5pPwYd2UqENBe6G+ZuCrugRQ -# HgCx1wMzfx4IdE64mxRdrohX1O51cI3/J5LWARM/yLemjIQkr81/w/cSUpR38KRr -# zmkzN7bSgdfjimliCqg6/sfLppW0VCMEQfsxpP5kK45VEi6NsxkUAQq0XRphg5tR -# 5WfVAWVmSuC4HbBM50dM/bluTJcBbA+2I/CGFWW6TjVWa5dHJYVyLaXrkTyjF3nT -# L4r8Dv4wfwZxB6xULOwyjVViIWolltMPK217+i+tHSKAqmTbm3I2Zluxuc/+ja2M -# kyhi0+F2MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH8GKCvzGlahzoAAQAAAfwwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgqIPFhY59OOby -# Pg3YS6pKkE126THsKAXel1qN40dPjWowgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCCVQq+Qu+/h/BOVP4wweUwbHuCUhh+T7hq3d5MCaNEtYjCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB/Bigr8xpWoc6AAEAAAH8 -# MCIEIG/k+E7zlheViYpK6+4Lo/rwguKJFMT24+YxPKyKBtYKMA0GCSqGSIb3DQEB -# CwUABIICAF8WGT0VPFR5qsW6OAJSd4UAT2ly6PUbnFRfBKkHk3q6e9Li2tCRRWUK -# rRpWVWRWQ1InoA1kkd0bGTJZlYtk3OxC63Du3UAW8xfZmP3vOOo3dWK1DB01NTz5 -# QMBve9f8cQGxOSeuoc2A/WJgubfWuzYdlUZnuTekaUSljMZv1s/f90d3ivnvAnYm -# FQf8MxojsMh6rbrxpAp42F1i1Uhbw2RO1kTN73YdeVDWGzPnU14jB3rg9v8IB+9Z -# DVkYVDZ35UdyK6707sT46BaNlkqOEN5MWVv2nGezR7jysyGkcE+wOTnnLjfTk6br -# YWtYN2pYuKL3jrMJf1P+tp2SUeYSuzahWyp7wTwGPFdm7tk3ubkZxMorh+mEXBXj -# gT6W143+LnR9GeLdn/wlsNhs3ro3JwaUrE7P6XDmQ+3kJ/Xgk338DQzRNAIRGCHs -# 412wO3e7/Hzb+A+Vz49IYnavqloOFBzjN/UAroacKZEfmATrja4jDbL6aTuQ9qwD -# csyv83qwgM51r+93Xb0gl0lBY5ZLpc73LfI3WSE1WZLyQg+2OOafif6lGi/4aQTo -# 7DOnW+RTb8jwyKADclBq8bTHdHBjCYTZrrgx7C37AmtBP6dipD3/qb1+GGZOUSvA -# VApEHD7Gs/l7tGASxJKt/BPugY+HXbYUDhzfoVAudUNfzRNvqIrS -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psm1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psm1 deleted file mode 100644 index 6c9d012324e5..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.Extension/Az.KeyVault.Extension.psm1 +++ /dev/null @@ -1,516 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -function Check-SubscriptionLogIn -{ - param ( - [object] $SubscriptionId, - [object] $AzKVaultName - ) - - if("string" -ne $SubscriptionId.GetType().Name) - { - throw "The type of SubscriptionId should be string, current is " + $SubscriptionId.GetType().Name + ". Please check registration information by 'Get-SecretVault | fl'" - } - - if("string" -ne $AzKVaultName.GetType().Name) - { - throw "The type of AzKVaultName should be string, current is " + $AzKVaultName.GetType().Name + ". Please check registration information by 'Get-SecretVault | fl'" - } - - $azContext = Az.Accounts\Get-AzContext - if (($null -eq $azContext) -or ($azContext.Subscription.Id -ne $SubscriptionId)) - { - try - { - Set-AzContext -SubscriptionId ${SubscriptionId} -ErrorAction Stop - } - catch - { - throw $_.ToString() + "To use Azure vault named '${AzKVaultName}', please try 'Connect-AzAccount -SubscriptionId {SubscriptionId}' to log into Azure account subscription '${SubscriptionId}'." - } - } -} - -function Get-Secret -{ - param ( - [string] $Name, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - $secret = Az.KeyVault\Get-AzKeyVaultSecret -Name $Name -VaultName $AdditionalParameters.AZKVaultName - if ($null -ne $secret) - { - switch ($secret.ContentType) { - 'ByteArray' - { - $SecretValue = Get-ByteArray $Secret - } - 'String' - { - $SecretValue = Get-String $Secret - } - 'PSCredential' - { - $SecretValue = Get-PSCredential $Secret - } - 'Hashtable' - { - $SecretValue = Get-Hashtable $Secret - } - Default - { - $SecretValue = Get-SecureString $Secret - } - } - return $SecretValue - } -} - -function Get-ByteArray -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - $secretValueText = Get-String $Secret - return [System.Text.Encoding]::ASCII.GetBytes($secretValueText) -} - -function Get-String -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - $ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Secret.SecretValue) - try { - $secretValueText = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) - } finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) - } - return $secretValueText -} - -function Get-SecureString -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - return $Secret.SecretValue -} - -function Get-PSCredential -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - $secretHashTable = Get-Hashtable $Secret - return [System.Management.Automation.PSCredential]::new($secretHashTable["UserName"], ($secretHashTable["Password"] | ConvertTo-SecureString -AsPlainText -Force)) -} - -function Get-Hashtable -{ - param ( - [Parameter(Mandatory=$true, Position=0)] - [object] $Secret - ) - - $jsonObject = Get-String $Secret | ConvertFrom-Json - $hashtable = @{} - $jsonObject.psobject.Properties | foreach { $hashtable[$_.Name] = $_.Value } - return $hashtable -} - -function Set-Secret -{ - param ( - [string] $Name, - [object] $Secret, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - switch ($Secret.GetType().Name) { - 'Byte[]' - { - Set-ByteArray -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'ByteArray' - } - 'String' - { - Set-String -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'String' - } - 'SecureString' - { - Set-SecureString -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'SecureString' - } - 'PSCredential' - { - Set-PSCredential -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'PSCredential' - } - 'Hashtable' - { - Set-Hashtable -Name $Name -Secret $Secret -AZKVaultName $AdditionalParameters.AZKVaultName -ContentType 'Hashtable' - } - Default - { - throw "Invalid type. Types supported: byte[], string, SecureString, PSCredential, Hashtable"; - } - } - - return $? -} - -function Set-ByteArray -{ - param ( - [string] $Name, - [Byte[]] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - - $SecretString = [System.Text.Encoding]::ASCII.GetString($Secret) - Set-String -Name $Name -Secret $SecretString -AZKVaultName $AZKVaultName -ContentType $ContentType -} - -function Set-String -{ - param ( - [string] $Name, - [string] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - $SecureSecret = ConvertTo-SecureString -String $Secret -AsPlainText -Force - $null = Az.KeyVault\Set-AzKeyVaultSecret -Name $Name -SecretValue $SecureSecret -VaultName $AZKVaultName -ContentType $ContentType -} - -function Set-SecureString -{ - param ( - [string] $Name, - [SecureString] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - - $null = Az.KeyVault\Set-AzKeyVaultSecret -Name $Name -SecretValue $Secret -VaultName $AZKVaultName -ContentType $ContentType -} - -function Set-PSCredential -{ - param ( - [string] $Name, - [PSCredential] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - $secretHashTable = @{"UserName" = $Secret.UserName; "Password" = $Secret.GetNetworkCredential().Password} - $SecretString = ConvertTo-Json $secretHashTable - Set-String -Name $Name -Secret $SecretString -AZKVaultName $AZKVaultName -ContentType $ContentType -} - -function Set-Hashtable -{ - param ( - [string] $Name, - [Hashtable] $Secret, - [string] $AZKVaultName, - [string] $ContentType - ) - $SecretString = ConvertTo-Json $Secret - Set-String -Name $Name -Secret $SecretString -AZKVaultName $AZKVaultName -ContentType $ContentType -} - -function Remove-Secret -{ - param ( - [string] $Name, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - $null = Az.KeyVault\Remove-AzKeyVaultSecret -Name $Name -VaultName $AdditionalParameters.AZKVaultName -Force - return $? -} - -function Get-SecretInfo -{ - param ( - [string] $Filter, - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - if ([string]::IsNullOrEmpty($Filter)) - { - $Filter = "*" - } - - $pattern = [WildcardPattern]::new($Filter) - - $vaultSecretInfos = Az.KeyVault\Get-AzKeyVaultSecret -VaultName $AdditionalParameters.AZKVaultName - - foreach ($vaultSecretInfo in $vaultSecretInfos) - { - if ($pattern.IsMatch($vaultSecretInfo.Name)) - { - [Microsoft.PowerShell.SecretManagement.SecretType]$secretType = New-Object Microsoft.PowerShell.SecretManagement.SecretType - if (![System.Enum]::TryParse($vaultSecretInfo.ContentType, $true, [ref]$secretType)) - { - $secretType = "Unknown" - } - Write-Output ( - [Microsoft.PowerShell.SecretManagement.SecretInformation]::new( - $vaultSecretInfo.Name, - $secretType, - $VaultName) - ) - } - } -} - -function Test-SecretVault -{ - param ( - [string] $VaultName, - [hashtable] $AdditionalParameters - ) - - try - { - Check-SubscriptionLogIn $AdditionalParameters.SubscriptionId $AdditionalParameters.AZKVaultName - } - catch - { - Write-Error $_ - return $false - } - - return $true -} -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCyKy+DlRs3fTBA -# u5XhgR3udHDfTLCuiuI7TkzA4f8+cKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIM34xkFm1fD1pKv4+nrAj2xv -# HhFVBQvPagnKrJ6UmKIaMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEATiVwtp6VP2X/tCBaKIpSRBq3Pv32LTrz711EuVrCrWG6oWx0uoNdfdsR -# JDsBAfSZtnyvwSlIGGYpl6ICMyTuxmgC7EXyIHE2ozC5reETFeO4BeYJLJfbuEUp -# xThB5St4iEDb9DFjhV+lzdIvTt9JvYF8T//WDAOk4f7ZqRg6GuQhkJ31h4Fe3Fep -# t1PvvQ1g5eRzgmu0bmFn41vVtjaCMGBY/dICsXwOUP1gUeCMyp3Vu3DoSUy4xEu8 -# 8nJs9xLwj+kvULFYSUzmunD14UyxDsRkkaUMW7TUIRXgxJG9xNG+wmzQ/425Zh0R -# pL20aceJirasLvGDuXFlH4KnoQBW5KGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCChroqiyl8Uwo4CMTufNcEONiuXlZ2zA+YGKkcEesmiKwIGZ2f84IFi -# GBMyMDI1MDEwOTA2MzY0My4xNzJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAeqaJHLVWT9hYwABAAAB6jANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzBaFw0yNTAzMDUxODQ1MzBaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC1C1/xSD8gB9X7Ludoo2rWb2ksqaF65QtJkbQpmsc6 -# G4bg5MOv6WP/uJ4XOJvKX/c1t0ej4oWBqdGD6VbjXX4T0KfylTulrzKtgxnxZh7q -# 1uD0Dy/w5G0DJDPb6oxQrz6vMV2Z3y9ZxjfZqBnDfqGon/4VDHnZhdas22svSC5G -# HywsQ2J90MM7L4ecY8TnLI85kXXTVESb09txL2tHMYrB+KHCy08ds36an7IcOGfR -# mhHbFoPa5om9YGpVKS8xeT7EAwW7WbXL/lo5p9KRRIjAlsBBHD1TdGBucrGC3TQX -# STp9s7DjkvvNFuUa0BKsz6UiCLxJGQSZhd2iOJTEfJ1fxYk2nY6SCKsV+VmtV5ai -# PzY/sWoFY542+zzrAPr4elrvr9uB6ci/Kci//EOERZEUTBPXME/ia+t8jrT2y3ug -# 15MSCVuhOsNrmuZFwaRCrRED0yz4V9wlMTGHIJW55iNM3HPVJJ19vOSvrCP9lsEc -# EwWZIQ1FCyPOnkM1fs7880dahAa5UmPqMk5WEKxzDPVp081X5RQ6HGVUz6ZdgQ0j -# cT59EG+CKDPRD6mx8ovzIpS/r/wEHPKt5kOhYrjyQHXc9KHKTWfXpAVj1Syqt5X4 -# nr+Mpeubv+N/PjQEPr0iYJDjSzJrqILhBs5pytb6vyR8HUVMp+mAA4rXjOw42vkH -# fQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFCuBRSWiUebpF0BU1MTIcosFblleMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAog61WXj9+/nxVbX3G37KgvyoNAnuu2w3H -# oWZj3H0YCeQ3b9KSZThVThW4iFcHrKnhFMBbXJX4uQI53kOWSaWCaV3xCznpRt3c -# 4/gSn3dvO/1GP3MJkpJfgo56CgS9zLOiP31kfmpUdPqekZb4ivMR6LoPb5HNlq0W -# bBpzFbtsTjNrTyfqqcqAwc6r99Df2UQTqDa0vzwpA8CxiAg2KlbPyMwBOPcr9hJT -# 8sGpX/ZhLDh11dZcbUAzXHo1RJorSSftVa9hLWnzxGzEGafPUwLmoETihOGLqIQl -# Cpvr94Hiak0Gq0wY6lduUQjk/lxZ4EzAw/cGMek8J3QdiNS8u9ujYh1B7NLr6t3I -# glfScDV3bdVWet1itTUoKVRLIivRDwAT7dRH13Cq32j2JG5BYu/XitRE8cdzaJmD -# VBzYhlPl9QXvC+6qR8I6NIN/9914bTq/S4g6FF4f1dixUxE4qlfUPMixGr0Ft4/S -# 0P4fwmhs+WHRn62PB4j3zCHixKJCsRn9IR3ExBQKQdMi5auiqB6xQBADUf+F7hSK -# ZfbA8sFSFreLSqhvj+qUQF84NcxuaxpbJWVpsO18IL4Qbt45Cz/QMa7EmMGNn7a8 -# MM3uTQOlQy0u6c/jq111i1JqMjayTceQZNMBMM5EMc5Dr5m3T4bDj9WTNLgP8SFe -# 3EqTaWVMOTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjM3MDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCJ -# 2x7cQfjpRskJ8UGIctOCkmEkj6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymMujAiGA8yMDI1MDEwODIzNDYw -# MloYDzIwMjUwMTA5MjM0NjAyWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYy6 -# AgEAMAcCAQACAilmMAcCAQACAhNMMAoCBQDrKt46AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAD82DqrGKBeLyB/qhaHn5sL84B6jIvZs4S+TbOLtcyeb2OGU -# vJPQLbs2boWVY31xNu7YC+SO5o3vMRELcOEQll/D0BBAOdkhoeONpoeMGJy64+7k -# j8iO8HV8BZF5DibWvBkO5D+I86Bw2jOnmz+M5yKq/EFMqPjpi+mwYZxULfR7uCDU -# ORw6xkCd0tbbBqwR8DIWJ2RMLq+IiXgZ6dCfta4r/yDFIErdsemsNHSYwKo9+Pj1 -# PXbpbU5FsUG5SMFCCkQ7Kl1dvmOnjnS7Enoi1+Z0krZCID1CpcrrsnE1QKkb+ctD -# 1mINDaMZiypooNA67hyJqNdpH24pvqzN8Io55J8xggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAeqaJHLVWT9hYwABAAAB6jAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCA3KeXPsRDuRIBib4/x9lm7pLtcgYX+1GBPKj4D92fylDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICmPodXjZDR4iwg0ltLANXBh5G1u -# KqKIvq8sjKekuGZ4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHqmiRy1Vk/YWMAAQAAAeowIgQgxLhl/KOB9b+5yF1sflQqRHWT5fc9 -# MqZDK69Ub+YuTrUwDQYJKoZIhvcNAQELBQAEggIACSQJ8pSJIRu+MYq7vA8C5GyU -# +GFgicNGY/2nrf2pq+Y/kXkAnwgSWOB3gyjr74QTPQv7cHoxKgReOwMhv+PA7KmX -# 82Uh28CzEM/FnhlNQWpCMp7qklKs2+7JlsapgvAaQ0C/ZAtAwNKLGFdwDVE3OWY6 -# JQjjwoE18z6G3QVe4I6SgATSr2QpeVqWqurPI+xt22AqH8bNvJ9RC9fOta8Oz/L6 -# UwIFICc4cmNmd1ak9k7a+G120b7TO+2h5FjkgiJn9A3+21bw1s2Eq63v6rffoySr -# aknzDarMOJ81RtT7sLV2qolTjpdjTykoGpuJSsvhdR7teBsUluBSP3NQC3v9Lw09 -# MQj0rCRK45/n6FAyts/yM09NnRPkQ89sMiqFOXoaUcvT/154U5Vpt17qJU7dhC98 -# 9CajcecVVWBW+e+YomGQKBR+qVihOmXEtHtKqeS5mOC2DNxbz31gNU3ghRK7u7jv -# TuhnN5ogBIsc6lH1o7UG9C2zc7DrvAcbx2bB+JqQWgM5Kidcn01/Ltv0g+Hym9RW -# KELOQrRjAP2s343gHx0FZDqvc5or75WQpxgdVYNCYbkblWpqwevmq8FdwKa9GyCB -# yC0YA17OwDY4dmG8eXZEsu9fcLmxaOBgw4TnArQxCwKq8DbclvZR7yvmETvSd/v1 -# AKTpDS1FylmOeu2z/oE= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psd1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psd1 deleted file mode 100644 index 2758e0e44c7e..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psd1 +++ /dev/null @@ -1,417 +0,0 @@ -# -# Module manifest for module 'Az.KeyVault' -# -# Generated by: Microsoft Corporation -# -# Generated on: 1/9/2025 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Az.KeyVault.psm1' - -# Version number of this module. -ModuleVersion = '6.3.1' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = 'cd188042-f215-4657-adfe-c17ae28cf730' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Key Vault service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. - -For more information on Key Vault, please visit the following: https://learn.microsoft.com/azure/key-vault/' - -# Minimum version of the PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# ClrVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Azure.Security.KeyVault.Administration.dll', - 'Azure.Security.KeyVault.Certificates.dll', - 'Azure.Security.KeyVault.Keys.dll', 'BouncyCastle.Crypto.dll', - 'KeyVault.Autorest/bin/Az.KeyVault.private.dll', - 'Microsoft.Azure.KeyVault.dll', - 'Microsoft.Azure.KeyVault.WebKey.dll', - 'Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll' - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'KeyVault.Autorest\Az.KeyVault.format.ps1xml', - 'KeyVault.format.ps1xml', 'keyvault.generated.format.ps1xml' - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('./Az.KeyVault.Extension', 'KeyVault.Autorest/Az.KeyVault.psm1') - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = 'Add-AzKeyVaultManagedHsmRegion', 'Get-AzKeyVaultManagedHsmRegion', - 'Remove-AzKeyVaultManagedHsmRegion', - 'Test-AzKeyVaultManagedHsmNameAvailability', - 'Test-AzKeyVaultNameAvailability' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = 'Add-AzKeyVaultCertificate', 'Add-AzKeyVaultCertificateContact', - 'Add-AzKeyVaultKey', 'Add-AzKeyVaultManagedStorageAccount', - 'Add-AzKeyVaultNetworkRule', 'Backup-AzKeyVault', - 'Backup-AzKeyVaultCertificate', 'Backup-AzKeyVaultKey', - 'Backup-AzKeyVaultManagedStorageAccount', 'Backup-AzKeyVaultSecret', - 'Export-AzKeyVaultSecurityDomain', 'Get-AzKeyVault', - 'Get-AzKeyVaultCertificate', 'Get-AzKeyVaultCertificateContact', - 'Get-AzKeyVaultCertificateIssuer', - 'Get-AzKeyVaultCertificateOperation', - 'Get-AzKeyVaultCertificatePolicy', 'Get-AzKeyVaultKey', - 'Get-AzKeyVaultKeyRotationPolicy', 'Get-AzKeyVaultManagedHsm', - 'Get-AzKeyVaultManagedStorageAccount', - 'Get-AzKeyVaultManagedStorageSasDefinition', - 'Get-AzKeyVaultRandomNumber', 'Get-AzKeyVaultRoleAssignment', - 'Get-AzKeyVaultRoleDefinition', 'Get-AzKeyVaultSecret', - 'Get-AzKeyVaultSetting', 'Import-AzKeyVaultCertificate', - 'Import-AzKeyVaultSecurityDomain', 'Invoke-AzKeyVaultKeyOperation', - 'Invoke-AzKeyVaultKeyRotation', 'New-AzKeyVault', - 'New-AzKeyVaultCertificateAdministratorDetail', - 'New-AzKeyVaultCertificateOrganizationDetail', - 'New-AzKeyVaultCertificatePolicy', 'New-AzKeyVaultManagedHsm', - 'New-AzKeyVaultNetworkRuleSetObject', - 'New-AzKeyVaultRoleAssignment', 'New-AzKeyVaultRoleDefinition', - 'Remove-AzKeyVault', 'Remove-AzKeyVaultAccessPolicy', - 'Remove-AzKeyVaultCertificate', - 'Remove-AzKeyVaultCertificateContact', - 'Remove-AzKeyVaultCertificateIssuer', - 'Remove-AzKeyVaultCertificateOperation', 'Remove-AzKeyVaultKey', - 'Remove-AzKeyVaultManagedHsm', - 'Remove-AzKeyVaultManagedStorageAccount', - 'Remove-AzKeyVaultManagedStorageSasDefinition', - 'Remove-AzKeyVaultNetworkRule', 'Remove-AzKeyVaultRoleAssignment', - 'Remove-AzKeyVaultRoleDefinition', 'Remove-AzKeyVaultSecret', - 'Restore-AzKeyVault', 'Restore-AzKeyVaultCertificate', - 'Restore-AzKeyVaultKey', 'Restore-AzKeyVaultManagedStorageAccount', - 'Restore-AzKeyVaultSecret', 'Set-AzKeyVaultAccessPolicy', - 'Set-AzKeyVaultCertificateIssuer', - 'Set-AzKeyVaultCertificatePolicy', - 'Set-AzKeyVaultKeyRotationPolicy', - 'Set-AzKeyVaultManagedStorageSasDefinition', 'Set-AzKeyVaultSecret', - 'Stop-AzKeyVaultCertificateOperation', - 'Undo-AzKeyVaultCertificateRemoval', 'Undo-AzKeyVaultKeyRemoval', - 'Undo-AzKeyVaultManagedHsmRemoval', - 'Undo-AzKeyVaultManagedStorageAccountRemoval', - 'Undo-AzKeyVaultManagedStorageSasDefinitionRemoval', - 'Undo-AzKeyVaultRemoval', 'Undo-AzKeyVaultSecretRemoval', - 'Update-AzKeyVault', 'Update-AzKeyVaultCertificate', - 'Update-AzKeyVaultKey', 'Update-AzKeyVaultManagedHsm', - 'Update-AzKeyVaultManagedStorageAccount', - 'Update-AzKeyVaultManagedStorageAccountKey', - 'Update-AzKeyVaultNetworkRuleSet', 'Update-AzKeyVaultSecret', - 'Update-AzKeyVaultSetting' - -# Variables to export from this module -# VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = 'Set-AzKeyVaultCertificateAttribute', 'Set-AzKeyVaultKey', - 'Set-AzKeyVaultKeyAttribute', 'Set-AzKeyVaultRoleDefinition', - 'Set-AzKeyVaultSecretAttribute' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -ModuleList = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.1'; }) - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','KeyVault','SecretManagement' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Upgraded nuget package to signed package. -* Upgraded Azure.Core to 1.44.1.' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBcTf1BVUSiinW9 -# HZaxYslVD6Djz3MAudi8tWIHrRXp9KCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIDtl -# 9KqgS4A2C5aNKaJIl4ANYnu1kb9qUIMJAZJ9j+ylMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAReMf3Wi4DHgNsHtt3eNkV8Vjz4qjxktDYxgj -# 5zfT1pldK0VuQD2Gm0R6ZiVVzDP5slhFMPPvULi9RUI7C4qZvgTsxQGy70L0QLGN -# PMWzSfssnDKdvjRYkRm0OruSwInoWGBETcUm0TtbZl3Twzo45+AVmKkzYxnKzPhq -# rx0yV2Fe/fdC8ojZT1ON6bjpe1vXY/GLXerrgbiDR/+crszLqBinOw/Ln14S26lT -# CwScxocvKMcCw9sgWOC0uAQZ+Ld851+7Fh6dZAbMI3gk3WkkLDNDTvsVNlZE70x5 -# 8X+1PArxHowmd9Mc99K69AJh7cNXFTEUnN2ksUqZVy40ggpZ26GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCE3E55u4iW6tYqKD8LEG0bSaOLAB987QmZ -# uiDeuifLmwIGZ2LdpGMEGBMyMDI1MDEwOTA3MjE0MS40NTVaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7 -# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG -# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd -# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 -# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK -# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah -# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 -# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L -# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p -# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN -# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG -# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW -# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf -# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat -# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS -# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V -# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 -# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs -# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M -# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe -# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z -# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw -# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsps2kwIhgPMjAyNTAxMDkwMjMxMDVaGA8yMDI1 -# MDExMDAyMzEwNVowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ymzaQIBADAHAgEA -# AgIX6DAHAgEAAgIT7zAKAgUA6ysE6QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQBfpriYcRpFKMdJiKNk1xJYEkoh+gsgmOG6RUiM6szqMC1KwjVgtrR5fX4R -# 2oGR1rWTAnSJRe29FzSnErYZo7Ozduk7Kp8mJIWi3y+r+1igw2k+pBv8OJ8W98kG -# Ek9Xs4a9dMcZIOCfzAJaZh8eyaQ2bZPH0GrWzV5axBN2j6NcQuNHo7Uq0menMUbC -# sVqc+hHLPB1HpGqqvhhejNzQhg3lMgdgVVX1BgdEVfac3NvyVJtMJwG1vG1D7NWu -# ToAXNWhaZphJqzV1XFvI0KRtfarsaIpD7w7WdUcKhpCdKZ7T6PzGRG1Y1gQErSHA -# L9cil1FxjDyZhl4XDeqE9WCoQFIVMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgb6NHW3F//llwGGeD8qxqc1WejipqYhEwuRncBix6UL0wgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNStYoc -# bkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# +vs7RNN3M8bTAAEAAAH6MCIEIA89pXoYouKT0ovNta5BVR3Qz8l5bdnbU3BRc+gQ -# huuDMA0GCSqGSIb3DQEBCwUABIICAFgCVC9AMc+8h+OwHu9Cyc1LxR1J1HNkORF5 -# nEDafkD5uWBBRzTOzIaK/RwcOTCxN7pTsEeV0GdF1PP2i9BPE5imOUHp28pB8u37 -# 4L6Sq13hmzh+z9HXVN1lx3NyUNMI2IDQnfSsINtLeTL10G5TAtoPEjqXUvNWfyKg -# JD00iiEOHvaumZNhU3bUxVHTs3xaiZ7SYu/Ffmbfwe5s5FauapUf2cjB2nUmA//N -# 3PVrr9oIZGpv14Wi1BaHr8UXUK69ViZjwBfJqStohBz12ylSQINU89dfAlp2lR3U -# DS4w4W5og4h/55OMauhEBk9/MNNq83it84ugFrJOOSa34ighZXrp+SV3rVfK5eje -# L0IYO6vbj+igeLYdoU0XvB/PEmHBJIeMrWCbAUjUurtQ5q1FCvyaxPT/yImNwH+n -# M05xV5UThrH4ocLXisad+qlwdPc4smOQnJjyKH6YNNJ6H8TKEQL2eCU0z4y1a7Dj -# JWoDXaL1PcdAtrF5mO0CBAQB0d+zUKo3zmhuG5pzyvP7U1sBqdiXalUFZ9kFHicS -# kpgr+HYlL6vzr8raEjQXSwKFEKZD1PeAax7QBRJI2EwwsX/3aLF2Y0K0OtMmCbme -# dW0gH9MVBNan/6m3nOw8NHU9uLt2CY7W0FGyg8Na0snEpkCpyrWMLJFUXSUMTMvR -# ru9/XjU2 -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psm1 b/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psm1 deleted file mode 100644 index 1a7617da5881..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Az.KeyVault.psm1 +++ /dev/null @@ -1,362 +0,0 @@ -# -# Script module for module 'Az.KeyVault' that is executed when 'Az.KeyVault' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/09/2025 06:20:57 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - -if ($true -and ($PSEdition -eq 'Core')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') - { - throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." - } -} - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies - - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -$module = Get-Module Az.Accounts - if ($module -ne $null -and $module.Version -lt [System.Version]"4.0.1") -{ - Write-Error "This module requires Az.Accounts version 4.0.1. An earlier version of Az.Accounts is imported in the current PowerShell session. Please open a new session before importing this module. This error could indicate that multiple incompatible versions of the Azure PowerShell cmdlets are installed on your system. Please see https://aka.ms/azps-version-error for troubleshooting information." -ErrorAction Stop -} -elseif ($module -eq $null) -{ - Import-Module Az.Accounts -MinimumVersion 4.0.1 -Scope Global -} -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll) - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @('New-AzKeyVault:ResourceGroupName','New-AzKeyVaultManagedHsm:ResourceGroupName') - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - - - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD1HZck2yawQ4j7 -# o/p5+RkcqFGlt6WNxK8R/LgZob7ZCaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHTVSoaHEjd+QE07Oz323LpJ -# IosOR7XtNJCwDkIKfuXFMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAGKlz57rKkQQj9nZPUJxRxe6xDrw1zQakkluvKgsQSIa7W26ASy9y8WnC -# xLPeY4Z9cgu/1kqOVfhPXqMUesMSVxtqasAzy8XeyHnH0jwKLmYNe/W21Jm5tsOn -# gytu7Lq6e1nBQ7bWE1Hd8dHiuuo5CejHoNcQ39KzENPfl0sRYo2pvuAqvaas5d3h -# PjSrQsac3aAwv7YRD+dEYP4VDEW70w65xj15QWE0ciSjvDuSyYlC+vAG+A+6HUdP -# TVccp7hm8C+jEjUQ7zAHokm/kYx5pOJNEsW+PXXAE2Xw2/vYPWrozLuuUMRTWqaW -# 4w0pPy/KC4kMHke+C+PXnH49J+F1SKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDmFhR7Te6qpCRpeXgBEZycWDKVFLEN4yin+0U5TB3MTAIGZ1rYDqXO -# GBMyMDI1MDEwOTA2MzcwMi42NTFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAevgGGy1tu847QABAAAB6zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzRaFw0yNTAzMDUxODQ1MzRaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDBFWgh2lbgV3eJp01oqiaFBuYbNc7hSKmktvJ15NrB -# /DBboUow8WPOTPxbn7gcmIOGmwJkd+TyFx7KOnzrxnoB3huvv91fZuUugIsKTnAv -# g2BU/nfN7Zzn9Kk1mpuJ27S6xUDH4odFiX51ICcKl6EG4cxKgcDAinihT8xroJWV -# ATL7p8bbfnwsc1pihZmcvIuYGnb1TY9tnpdChWr9EARuCo3TiRGjM2Lp4piT2lD5 -# hnd3VaGTepNqyakpkCGV0+cK8Vu/HkIZdvy+z5EL3ojTdFLL5vJ9IAogWf3XAu3d -# 7SpFaaoeix0e1q55AD94ZwDP+izqLadsBR3tzjq2RfrCNL+Tmi/jalRto/J6bh4f -# PhHETnDC78T1yfXUQdGtmJ/utI/ANxi7HV8gAPzid9TYjMPbYqG8y5xz+gI/SFyj -# +aKtHHWmKzEXPttXzAcexJ1EH7wbuiVk3sErPK9MLg1Xb6hM5HIWA0jEAZhKEyd5 -# hH2XMibzakbp2s2EJQWasQc4DMaF1EsQ1CzgClDYIYG6rUhudfI7k8L9KKCEufRb -# K5ldRYNAqddr/ySJfuZv3PS3+vtD6X6q1H4UOmjDKdjoW3qs7JRMZmH9fkFkMzb6 -# YSzr6eX1LoYm3PrO1Jea43SYzlB3Tz84OvuVSV7NcidVtNqiZeWWpVjfavR+Jj/J -# OQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHSeBazWVcxu4qT9O5jT2B+qAerhMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCDdN8voPd8C+VWZP3+W87c/QbdbWK0sOt9 -# Z4kEOWng7Kmh+WD2LnPJTJKIEaxniOct9wMgJ8yQywR8WHgDOvbwqdqsLUaM4Nre -# rtI6FI9rhjheaKxNNnBZzHZLDwlkL9vCEDe9Rc0dGSVd5Bg3CWknV3uvVau14F55 -# ESTWIBNaQS9Cpo2Opz3cRgAYVfaLFGbArNcRvSWvSUbeI2IDqRxC4xBbRiNQ+1qH -# XDCPn0hGsXfL+ynDZncCfszNrlgZT24XghvTzYMHcXioLVYo/2Hkyow6dI7uULJb -# KxLX8wHhsiwriXIDCnjLVsG0E5bR82QgcseEhxbU2d1RVHcQtkUE7W9zxZqZ6/jP -# maojZgXQO33XjxOHYYVa/BXcIuu8SMzPjjAAbujwTawpazLBv997LRB0ZObNckJY -# yQQpETSflN36jW+z7R/nGyJqRZ3HtZ1lXW1f6zECAeP+9dy6nmcCrVcOqbQHX7Zr -# 8WPcghHJAADlm5ExPh5xi1tNRk+i6F2a9SpTeQnZXP50w+JoTxISQq7vBij2nitA -# sSLaVeMqoPi+NXlTUNZ2NdtbFr6Iir9ZK9ufaz3FxfvDZo365vLOozmQOe/Z+pu4 -# vY5zPmtNiVIcQnFy7JZOiZVDI5bIdwQRai2quHKJ6ltUdsi3HjNnieuE72fT4eWh -# xtmnN5HYCDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkEwMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCA -# Bol1u1wwwYgUtUowMnqYvbul3qCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymWNTAiGA8yMDI1MDEwOTAwMjYy -# OVoYDzIwMjUwMTEwMDAyNjI5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKZY1 -# AgEAMAcCAQACAhUpMAcCAQACAhMJMAoCBQDrKue1AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAIHAmhLTSl+tqfMPnHFg24foG1zMFnOXn0DIotbJRVZDtlhF -# nPqSqCYuWMG+vt5lcw61eK9qKCrEL1Z3DME2BYjzUw4pvqj9S4ij9UXBcY7EsuZF -# xKynfZfrdMCTOQx8920OBKrkMuEZQIyhTbNOGFKIbVqAF1ZuNWC3k3d938tCrz6k -# O5nVvlHq0eMKKt0dmLBFNI5t6CmeGfb0gGg5/DxT5b7DLoU2WO/iX3YhbPO8FNpc -# g+onP0f7LP1tI4/67GHNCchp1IYsV2KHZ7V50TN63bGfo1U4AWWahgpxKX44Wl5K -# RAfCFw4sMxpUmJCvGkkLX92WpRPfW0D8+81HOZQxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAevgGGy1tu847QABAAAB6zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAgM7Dl7BWieWe3ESWaOrGovQdmMGGz/zZyH3TwzC7hWjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM63a75faQPhf8SBDTtk2DSUgIbd -# izXsz76h1JdhLCz4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHr4BhstbbvOO0AAQAAAeswIgQg3a/qZy5c5u5kLf4EWs4lzDywFVJR -# 2BigcuxSIs4sgoQwDQYJKoZIhvcNAQELBQAEggIASer+Qri44BtB/WdWdiPgbQY2 -# TfFFKFo6m10K1Xa01hnrIwNxFYEcfkHIQ1IXMpsJtHS9qLFg+DqFc/KfoBTArEiN -# a6MaHjPB9+MHd/ZrdfIu8VeLfPQiCFRNi4wTvLFxZp4GKlz4YHTG5ZFLCnPyODmT -# VGGDqtVGINvVXD/7QRirAtGRleX9Wur2tx/5LOBLZDwht8qrPYWsww23hQHWDXUG -# bq+YH/0pX4OvPszxDOn3YzaULOnOoGDPUVOXxGAOssOQotlB62+GEaJRnwaGPbmv -# ZxObA+7SX6648d/v4UHmeXYlHGE57U6mL1bb+cz7peWzJ62RbRFgVpogzEYpxkrp -# IqKm3EtAdCksEy/QEU1P0wUJQzJOJ0eC0FIuAsIIlQThyQcVfrKAqsnm6p6c7qLP -# +pZ8HP6P8jLo2hbCHkIalxL4QksQm426uXxyAT456rkcH6H17Xm5NfdVcqzVyCVb -# le3alyfYUD9Ib8kyHYPxeTx5b6/OQNoXYZ16AXGl0AMNbbjRL5eT+N7Q++tQBXlh -# GQNlAtl6XRtWk4p44Ir8VLc8drvnP6kW6Fs1ask/NRjhIO7UnnqQnWbkQk3V804/ -# SOkxv1++du1odjMNCYuhWHk/KYtRC8m3SIyZ2XVn3VIR5VWIAtCzCmQqfh1CrRAE -# moxJDtu6D4jj9GTA0Ew= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Administration.dll b/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Administration.dll deleted file mode 100644 index 320daee46ac3..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Administration.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Certificates.dll b/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Certificates.dll deleted file mode 100644 index 0e9228800c57..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Certificates.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Keys.dll b/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Keys.dll deleted file mode 100644 index a34981ff6a9e..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Azure.Security.KeyVault.Keys.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/BouncyCastle.Crypto.dll b/Modules/Az.KeyVault/6.3.1/BouncyCastle.Crypto.dll deleted file mode 100644 index bee1e9a8522d..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/BouncyCastle.Crypto.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.format.ps1xml b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.format.ps1xml deleted file mode 100644 index f11a8fddeaa9..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.format.ps1xml +++ /dev/null @@ -1,2182 +0,0 @@ - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsm - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsm#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - SkuFamily - - - SkuName - - - SystemDataCreatedAt - - - SystemDataCreatedBy - - - SystemDataCreatedByType - - - SystemDataLastModifiedAt - - - SystemDataLastModifiedBy - - - SystemDataLastModifiedByType - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.AccessPolicyEntry - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.AccessPolicyEntry#Multiple - - - - - - - - - - - - - - - - - - ApplicationId - - - ObjectId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityParameters#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckMhsmNameAvailabilityResult#Multiple - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CheckNameAvailabilityResult#Multiple - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CloudErrorBody - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.CloudErrorBody#Multiple - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsm - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsm#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - DeletionDate - - - Location - - - MhsmId - - - PurgeProtectionEnabled - - - ScheduledPurgeDate - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmPropertiesTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedManagedHsmPropertiesTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVault - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVault#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - DeletionDate - - - Location - - - PurgeProtectionEnabled - - - ScheduledPurgeDate - - - VaultId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultPropertiesTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.DeletedVaultPropertiesTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Error - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Error#Multiple - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IPRule - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IPRule#Multiple - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.KeyVaultIdentity - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.KeyVaultIdentity#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - OperationKind - - - PrivateEndpointConnectionName - - - ResourceGroupName - - - SubscriptionId - - - VaultName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CreateMode - - - EnablePurgeProtection - - - EnableSoftDelete - - - HsmUri - - - ProvisioningState - - - PublicNetworkAccess - - - ScheduledPurgeDate - - - SoftDeleteRetentionInDay - - - StatusMessage - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResource#Multiple - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmResourceTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSecurityDomainProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSecurityDomainProperties#Multiple - - - - - - - - - - - - - - - ActivationStatus - - - ActivationStatusMessage - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSku - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ManagedHsmSku#Multiple - - - - - - - - - - - - - - - Family - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmGeoReplicatedRegion - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmGeoReplicatedRegion#Multiple - - - - - - - - - - - - - - - - - - IsPrimary - - - Name - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmipRule - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmipRule#Multiple - - - - - - - - - - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmNetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmNetworkRuleSet#Multiple - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnection#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - SkuFamily - - - SkuName - - - SystemDataCreatedAt - - - SystemDataCreatedBy - - - SystemDataCreatedByType - - - SystemDataLastModifiedAt - - - SystemDataLastModifiedBy - - - SystemDataLastModifiedByType - - - AzureAsyncOperation - - - Etag - - - ResourceGroupName - - - RetryAfter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionItem - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionItem#Multiple - - - - - - - - - - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionProperties#Multiple - - - - - - - - - - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionsListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateEndpointConnectionsListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResource#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - SkuFamily - - - SkuName - - - SystemDataCreatedAt - - - SystemDataCreatedBy - - - SystemDataCreatedByType - - - SystemDataLastModifiedAt - - - SystemDataLastModifiedBy - - - SystemDataLastModifiedByType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkResourceProperties#Multiple - - - - - - - - - - - - GroupId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkServiceConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmPrivateLinkServiceConnectionState#Multiple - - - - - - - - - - - - - - - - - - ActionsRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmRegionsListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmRegionsListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.NetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.NetworkRuleSet#Multiple - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnection#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - AzureAsyncOperation - - - Etag - - - ResourceGroupName - - - RetryAfter - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionItem - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionItem#Multiple - - - - - - - - - - - - Etag - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateEndpointConnectionProperties#Multiple - - - - - - - - - - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResource#Multiple - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkResourceProperties#Multiple - - - - - - - - - - - - GroupId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkServiceConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.PrivateLinkServiceConnectionState#Multiple - - - - - - - - - - - - - - - - - - ActionsRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Resource - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Resource#Multiple - - - - - - - - - - - - - - - Location - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ResourceTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Sku - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Sku#Multiple - - - - - - - - - - - - - - - Family - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.SystemData - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.SystemData#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CreatedAt - - - CreatedBy - - - CreatedByType - - - LastModifiedAt - - - LastModifiedBy - - - LastModifiedByType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Vault - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.Vault#Multiple - - - - - - - - - - - - - - - - - - Location - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultAccessPolicyParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultAccessPolicyParameters#Multiple - - - - - - - - - - - - - - - - - - Location - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCheckNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCheckNameAvailabilityParameters#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParameters#Multiple - - - - - - - - - - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultCreateOrUpdateParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultListResult - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultPatchProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CreateMode - - - EnablePurgeProtection - - - EnableRbacAuthorization - - - EnableSoftDelete - - - EnabledForDeployment - - - EnabledForDiskEncryption - - - EnabledForTemplateDeployment - - - PublicNetworkAccess - - - SoftDeleteRetentionInDay - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CreateMode - - - EnablePurgeProtection - - - EnableRbacAuthorization - - - EnableSoftDelete - - - EnabledForDeployment - - - EnabledForDiskEncryption - - - EnabledForTemplateDeployment - - - HsmPoolResourceId - - - ProvisioningState - - - PublicNetworkAccess - - - SoftDeleteRetentionInDay - - - TenantId - - - VaultUri - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultTags - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VaultTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VirtualNetworkRule - - Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.VirtualNetworkRule#Multiple - - - - - - - - - - - - IgnoreMissingVnetServiceEndpoint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.psm1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.psm1 deleted file mode 100644 index 525f3247e100..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/Az.KeyVault.psm1 +++ /dev/null @@ -1,337 +0,0 @@ -# region Generated - # ---------------------------------------------------------------------------------- - # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. - # ---------------------------------------------------------------------------------- - # Load required Az.Accounts module - $accountsName = 'Az.Accounts' - $accountsModule = Get-Module -Name $accountsName - if(-not $accountsModule) { - $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules' - if(Test-Path -Path $localAccountsPath) { - $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 - if($localAccounts) { - $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru - } - } - if(-not $accountsModule) { - $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 - if($hasAdequateVersion) { - $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru - } - } - } - - if(-not $accountsModule) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://learn.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop - } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop - } - Write-Information "Loaded Module '$($accountsModule.Name)'" - - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.KeyVault.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Module]::Instance - - # Ask for the shared functionality table - $VTable = Register-AzModule - - # Tweaks the pipeline on module load - $instance.OnModuleLoad = $VTable.OnModuleLoad - - # Following two delegates are added for telemetry - $instance.GetTelemetryId = $VTable.GetTelemetryId - $instance.Telemetry = $VTable.Telemetry - - # Delegate to sanitize the output object - $instance.SanitizeOutput = $VTable.SanitizerHandler - - # Delegate to get the telemetry info - $instance.GetTelemetryInfo = $VTable.GetTelemetryInfo - - # Tweaks the pipeline per call - $instance.OnNewRequest = $VTable.OnNewRequest - - # Gets shared parameter values - $instance.GetParameterValue = $VTable.GetParameterValue - - # Allows shared module to listen to events from this module - $instance.EventListener = $VTable.EventListener - - # Gets shared argument completers - $instance.ArgumentCompleter = $VTable.ArgumentCompleter - - # The name of the currently selected Azure profile - $instance.ProfileName = $VTable.ProfileName - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Az.KeyVault.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoOAYJKoZIhvcNAQcCoIIoKTCCKCUCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCODWi+Ok14Kd34 -# YgjTy4JkgC+dw8Bc1siB/xsufQRtAqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIGKc -# RWx6JX3AqvsBvtXW01iyOvvGWuJWSiKng9C+mVEKMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAaelR+DhutyYplnL1G6zcmpogAB/0kTRZIgFL -# HU4H0z6o1o4hx0hbeLr4l8Ch2jYuP2i8tgeUg6+kr5mSSgPnatBjAOjYEFRarNDd -# WD3ayiElGxzOG06jM75WfLMfwHuNwGZbk+sPlS56n32WZebpyTNmJpU/aoAl9L8V -# yLf9Nu/g4Dio0Fs/KF39wxsaCa+e11uO8BvJo+q5Dax1x4kBX6Rc0Nk+RytK32F4 -# VyqSixdF/KWbQrMZpbQHrg3gx55N+0rTYLbCIX9m72Q2JqeoYUfq6qG0qNEDQ6qy -# RY9QEO5uHe6ECGpxcfOPi7Ra6hQ6c/gTi+T9MzPG+lbRAWUCSqGCF5MwghePBgor -# BgEEAYI3AwMBMYIXfzCCF3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDWSfAnTXu29Qma/rjIKvPjRswL1nCqPmMv -# 4IxyDdUYCAIGZ1sNHIzRGBIyMDI1MDEwOTA2MzY0NS4zNFowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjozMzAzLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEeowggcgMIIFCKADAgECAhMzAAAB5tlCnuoA+H3hAAEA -# AAHmMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDUxNVoXDTI1MDMwNTE4NDUxNVowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozMzAzLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL2+mHzi2CW4TOb/Ck0qUCNw -# SUbN+W8oANnUP7Z3+J5hgS0XYcoysoYUM4uktZYbkMTKIpuVgqsTae3njQ4a7fln -# HSBckETTNZqdkQCMKO3h4YGL65qRmyTvTMdNAcfJ8/4HebYFJI0U+GCxUg+nq+j/ -# 23o5417MjBfkTn5XAQbfudmAR7FAXZ9BlhvFDUBq6oO9F1exKkrV2HVQG30RoyzO -# 65xpHmczBA3qwOMb30XN0r0C3NufhKaWygtS1ECH/vrywp3RjWEyYpUfAhfz/gm5 -# RFQFFnQla7Q1hAGnySGS7XxDwIBDnTS0UHtUfekPzOgDiVwDsmTFMag8qu5+b6VF -# kADiIyBtwtnY//FJ2coXFTy8vfVGg2VkmIYvkypNe+/IEvP4xE/gSf03J7U3zH+U -# kPWy102jnAkb6aBewT/N/ODYZpWpBzMUeDQ2Xxukiqc0VRF5BGrcLWNVgwJJx6A3 -# Md5i3Dk6Zn/t5WdGaNeUKwu92zE7NzVhWfqdkuRAPnLfUdisH2Ige6zCFoy/aEk0 -# 2NWd2SlbL3fg8hm5ZMyTfrSSNc8XCXZa/VPOb206sKrz6XjTwogvon55+gY2RHxg -# Hcz67W1h5UM79Nw5sYfFoYUHpBnEBSmd8Hk38yYE3Ew6rMbU3xCLBbyC2OMwmIUF -# /qJhisKO1HAXsg91AsW1AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQU5QQxee03nj7X -# Vkz5C7tDmuDcVz0wHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAGFu6iBNqlGy7BKR -# oUxDp3K7xkJhSlZDyIituLjS1TaErqkeC7SGPTP/3MVFHHkN+G6SO9uMD91LlVh/ -# HPUQhs+W3z3swnawEY7ZgtjBh6V8mkPBsHRdL1mSuqnOrpf+WYNAOfcbm9xilhAI -# nnksu/IWUnX3kBWjhbLxRfmnuD1bcyA0dAykz4RXrj5yzOPgejlpCZ4oa0rLvDvZ -# 5Fj+9YO6m2u/Ou4U2YoIi3XZRwDkE6xenU+2SPHbJGwKPvsNKaXTNViOpb8hJaSs -# aPJ5Un6SHNy3FouSSVXALGKCiQPp+RZvLSEIQpM5M8zOG6A8gBzFwexHazHTVhFr -# 2kfbO912y4ER9IUboKPRBK8Rn8z2Yn6HiaJpBJHsARtUYNvJEqRifzRL7cCZGWHd -# k574EWonns5d14gNIdu8fMnuhOobz3qXd5SE+xmDr182DFPGW9E2ZET/7rViPtnW -# 4HRdhA/rSuwwt1OVVgTJlSXkwtMvku+oWjNmVLZeiOLgEQ/p11VPOYcnih05kxZN -# N5DQjCdYb3y9a/+ug96AKvUbrUVWt1csTcBch+3hk3hmQNOegCE/DsNk09GVJbhN -# tWP8vDRe+ctg3AxQD2i5j/DH215Nony9ORuBjJo5goXPqs1Fdnhp/p7chfAwJ98J -# qykpRcLvZgy7lbwv/PJPGw1QSAFtMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA00wggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAOJY0F4Un2O9oSs3rgPUbzp4vSa7oIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKctLMCIY -# DzIwMjUwMTA5MDQxMjU5WhgPMjAyNTAxMTAwNDEyNTlaMHQwOgYKKwYBBAGEWQoE -# ATEsMCowCgIFAOspy0sCAQAwBwIBAAICDi4wBwIBAAICEwYwCgIFAOsrHMsCAQAw -# NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgC -# AQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEADkiWamjSmviO9YqYfIiRX1Piao1P -# E9L7CHsHueatij1ZdDy4/dPPRHrPxAh2DkGmJms3NuBqYbB6bsBqdaDXBzx6wjYa -# zXHdf6X5WXGddq7+uqmvcIrpraVHU2QZ3K3cRwGFHNGMpLpCudyxgZCs3ZhdRRmE -# r1ZDCm3PkVbS0jnml2Lek8Y1tLGKvcIISfNTkiyig6yi73SbDM3vOO6ENnsfM0ru -# kwKHMdtiq/39igRo7QIjHs9MeLHMbHwXgjRGI3TLxSIjWccmSazsqhW7D5EA4QMu -# msUF8OtPaZEFcxDMrvXDnlmnrFKyduBeejPLYV/187uuYZbbISCOEZMs4TGCBA0w -# ggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5tlC -# nuoA+H3hAAEAAAHmMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYL -# KoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIP/wNGklENvkuaBY+U1DsHoaXUmo -# 5WvTcBnE/Evx/2yzMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgz7ujhqge -# swlobyCcs7WrXqEhhxGejLoWc4JudIPSxlkwgZgwgYCkfjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMAITMwAAAebZQp7qAPh94QABAAAB5jAiBCD8l+rOWChQ -# CRuAQRm+T3rSmz79Nr7VoQBmKySwz9QBqDANBgkqhkiG9w0BAQsFAASCAgC1GASh -# J5UvilJ3Ov+YAaMtjHeHXtWpgVRdGf9db3Yz1G2FVlINm8dZwVSlR+9ReQ2xM95A -# Xev0JWUidaNBw0oLeKxwFSpDiZgeybcmRfwIReJHwntI6FdsA+sxA946XhPOERK7 -# uOc+lsVj6+Zlpv/dymQoS/CBKZexg88nHZ9hKUb4ADPoLqioNsCTPUNbxUu7jzU7 -# HAbiHn1jlHrOabJRhtgHqOSziOS+VgwEihbt+NwSEpLdR1sgCyUQu8QQPV7md9BP -# HEcMgxjY03tj5/ZtyzhSIFCz6SoEOF3jF6DRvfgwZiyC8MStxL1LR6Xi51r741L1 -# idFgKIUVKLhSiutCz2jh0VrTYgce2JP8ZKhjJLbjGpTeJESaYAqobbDgKQtylBkx -# AfmC/AxxRpzDlubRQOLGKolu2ovwVy79d0uvuguuv2hiSxbdWwcNqCBtYyIAeNGJ -# 1GJnFYMqI0S3H3oOp8rCQ64OBFA2LRkPcnrXWX6Nzh9sNqIwivLlrYl+CtMt84jT -# 2XMxxItYdoKSyH1i4UjGoTX9iVzkDqTszOhXJNLCsz0sTu7kmgVqa8oCfcpbViVW -# srKWEReuigtPFwBbCIFuUh6+0oVHLpbFCM0Ttmf3iZAs/Y8Y6cgp0YWH4UyvamUa -# 2FmYmwdwVvk+Tn7zgeZwstjO2SJFS5hXzJTJqg== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/bin/Az.KeyVault.private.dll b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/bin/Az.KeyVault.private.dll deleted file mode 100644 index aa30b497aad5..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/bin/Az.KeyVault.private.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Add-AzKeyVaultManagedHsmRegion.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Add-AzKeyVaultManagedHsmRegion.ps1 deleted file mode 100644 index ddaa8c556c99..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Add-AzKeyVaultManagedHsmRegion.ps1 +++ /dev/null @@ -1,351 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultmanagedhsmregion -#> -function Add-AzKeyVaultManagedHsmRegion { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be added associated with the managed hsm pool. - # To construct, see NOTES section for REGION properties and create a hash table. - ${Region}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - try { - $null = $PSBoundParameters.Remove('HsmName') - $null = $PSBoundParameters.Add('Name', $HsmName) - $null = $PSBoundParameters.Remove('Region') - $Parameter = Az.KeyVault.internal\Get-AzKeyVaultManagedHsm @PSBoundParameters - $Parameter = Az.KeyVault.private\Get-ParameterForRegion -Parameter $Parameter -Region $Region - $null = $PSBoundParameters.Add('Parameter', $Parameter) - $null = Az.KeyVault.internal\Update-AzKeyVaultManagedHsm @PSBoundParameters - $null = $PSBoundParameters.Remove('Parameter') - $null = $PSBoundParameters.Remove('Name') - $null = $PSBoundParameters.Add('HsmName', $HsmName) - Az.KeyVault\Get-AzKeyVaultManagedHsmRegion @PSBoundParameters - } catch { - throw - } - } -} -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD3sQD5TYPf5484 -# UHM/DnuOYou8y/jT9IbT+TqO6drQyaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEeJdQNWAlqcsqaz63VC1pyj -# 7VvqqfiSqxUZ/fe6HmLHMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEARUxEctsUJNPbnrYeCqhQZCAFk88cOL5uhGEXtezQ0OycvRuI3U6rL/OM -# sQhaiGHgrVYffO45wsdYVJgSIjzbkqY9QPJNoj9xCXS0zuQu0ajU3bG9ERO9Wpzn -# 1RNFDohjQBT70NdMpADBgoQDh34tZcHyMGnkuAJ96LeS2cxAYDLC5qN6zpcFacUb -# qgMdUQ4jrsjRwi4zn7K/ss34Hxl984eyoVklK/r9rylJB0TwR/nAR1AZ4VDC8Id0 -# 0bvGfNndd8Rk0cMCLVy7L8BFimJHRQDZpzhulTyxdRmqjSah7XtYuA24vHmPdlDG -# lUsBwDIkxxS0l0VaEYp5PXlnmq4iSaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCD+lYYIieUEv0cq8GOhNps07SA3yo1G+MO8+IKWjPZHFAIGZ1rLfdk1 -# GBMyMDI1MDEwOTA2Mzc0NS4wNjZaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w -# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAekPcTB+XfESNgABAAAB6TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjZaFw0yNTAzMDUxODQ1MjZaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCsmowxQRVgp4TSc3nTa6yrAPJnV6A7aZYnTw/yx90u -# 1DSH89nvfQNzb+5fmBK8ppH76TmJzjHUcImd845A/pvZY5O8PCBu7Gq+x5Xe6plQ -# t4xwVUUcQITxklOZ1Rm9fJ5nh8gnxOxaezFMM41sDI7LMpKwIKQMwXDctYKvCyQy -# 6kO2sVLB62kF892ZwcYpiIVx3LT1LPdMt1IeS35KY5MxylRdTS7E1Jocl30NgcBi -# JfqnMce05eEipIsTO4DIn//TtP1Rx57VXfvCO8NSCh9dxsyvng0lUVY+urq/G8QR -# FoOl/7oOI0Rf8Qg+3hyYayHsI9wtvDHGnT30Nr41xzTpw2I6ZWaIhPwMu5DvdkEG -# zV7vYT3tb9tTviY3psul1T5D938/AfNLqanVCJtP4yz0VJBSGV+h66ZcaUJOxpbS -# IjImaOLF18NOjmf1nwDatsBouXWXFK7E5S0VLRyoTqDCxHG4mW3mpNQopM/U1WJn -# jssWQluK8eb+MDKlk9E/hOBYKs2KfeQ4HG7dOcK+wMOamGfwvkIe7dkylzm8BeAU -# QC8LxrAQykhSHy+FaQ93DAlfQYowYDtzGXqE6wOATeKFI30u9YlxDTzAuLDK073c -# ndMV4qaD3euXA6xUNCozg7rihiHUaM43Amb9EGuRl022+yPwclmykssk30a4Rp3v -# 9QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJF+M4nFCHYjuIj0Wuv+jcjtB+xOMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBWsSp+rmsxFLe61AE90Ken2XPgQHJDiS4S -# bLhvzfVjDPDmOdRE75uQohYhFMdGwHKbVmLK0lHV1Apz/HciZooyeoAvkHQaHmLh -# wBGkoyAAVxcaaUnHNIUS9LveL00PwmcSDLgN0V/Fyk20QpHDEukwKR8kfaBEX83A -# yvQzlf/boDNoWKEgpdAsL8SzCzXFLnDozzCJGq0RzwQgeEBr8E4K2wQ2WXI/ZJxZ -# S/+d3FdwG4ErBFzzUiSbV2m3xsMP3cqCRFDtJ1C3/JnjXMChnm9bLDD1waJ7TPp5 -# wYdv0Ol9+aN0t1BmOzCj8DmqKuUwzgCK9Tjtw5KUjaO6QjegHzndX/tZrY792dfR -# AXr5dGrKkpssIHq6rrWO4PlL3OS+4ciL/l8pm+oNJXWGXYJL5H6LNnKyXJVEw/1F -# bO4+Gz+U4fFFxs2S8UwvrBbYccVQ9O+Flj7xTAeITJsHptAvREqCc+/YxzhIKkA8 -# 8Q8QhJKUDtazatJH7ZOdi0LCKwgqQO4H81KZGDSLktFvNRhh8ZBAenn1pW+5UBGY -# z2GpgcxVXKT1CuUYdlHR9D6NrVhGqdhGTg7Og/d/8oMlPG3YjuqFxidiIsoAw2+M -# hI1zXrIi56t6JkJ75J69F+lkh9myJJpNkx41sSB1XK2jJWgq7VlBuP1BuXjZ3qgy -# m9r1wv0MtTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCr -# aYf1xDk2rMnU/VJo2GGK1nxo8aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJpTAiGA8yMDI1MDEwODIzMzI1 -# M1oYDzIwMjUwMTA5MjMzMjUzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYml -# AgEAMAcCAQACAiY0MAcCAQACAhO3MAoCBQDrKtslAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAAQlwho/Cpc2tSYw1vt8Nusm/AJf/Yqg9evZ8PETElVrzhay -# zWqvq1NvLQUDBF/h2v4OUD3KLxjhCUKlA/o7mMBoFc7qpe/AyIaAE19CN0TkdcyL -# Ea/SMG0cUnkOoFF+Oo+eSKd3uznYnmYR9I06LuajHlThXy6N7GOr7J6gOB8vBmPs -# T7MG2CqyCfzRkz32sb2aUq0NAptBFpcJne91zFxwTUaXk5wQRyQe94HO9RW2NESk -# Z9EwvsW2ePzGIpcqLVg7IuOBlV/s89WyfkeoQqlWEdJ4LeuzNFzcn08O6mzom6HB -# rpKEVa7+cHp+6zz+CnEsBGgajWh5fn53NsRbIGoxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAekPcTB+XfESNgABAAAB6TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCBBY7aevTUzD/aRgRDDOvPkbXPN+ydIAM9HpqZb7LFOXjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIKSQkniXaTcmj1TKQWF+x2U4riVo -# rGD8TwmgVbN9qsQlMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHpD3Ewfl3xEjYAAQAAAekwIgQgVsI9sjr04+BLBnuWLK2e0f0duiPI -# futB9xw9G6dDkcIwDQYJKoZIhvcNAQELBQAEggIARt1NV99PRUxoumMsasjjjAi6 -# gIAbqZ5n9irZpglpnFY6Ewlv9HXohKmoXjxYN+LDfnUY6302rTKbKsYeM7II4QOw -# Mw5jhJaVXcG7GIo2RkZTi9z7OitK51O4Hf+ohgfmn3A83khDVH2WrQHg8ISmL0Im -# Qj6OFhcGWSCr1W6MnwaPDxrH3FlP/boiIs2Qvb+WZpj9Me2k3kxz2lrMbn1tu8bn -# sWVUSLdqswIbzAGBy2XUPZTbaV3zAeJepPXnJ60yWs5PM9AMA5wvd+1sdYCxOOhB -# AgTB8JIt4LJw5pTDySNdQYpTJxL3XhuUPioowHOiLmjpVgU+5Cz5FAz9mZJ9zlDV -# Q605MOAFRCkF5fHzjK47KAD+7ibMcwNAcmmqAVXNTbH2R/Z3KAut7Xkz8pmsa4ep -# zNUChucmLU+ZIcuF6WKgC///5WDsIsc8Whn6yS/dX0wgHS/69fEH7jFh6bMCSq8C -# f+P+G75Dbsw/wxcpwiB1wfx7nNDiSTXjlonSKvs339SSPLUHAWbtEj7+IWoAOrEr -# 6DVEtThmnc/cOJPYWNxXNbEVmkGrk1GIkBbrulvKDsEpKmHKrDVuSLeZI0et/B0x -# ys3Vsu3NsUFtLv7vTmQbrzwFgOxKFQzUh09TI3sZ+U2JfZ6l9jCtUpl6KXxuyq4x -# ZjeDowXTUi46EczzyoY= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Az.KeyVault.custom.psm1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Az.KeyVault.custom.psm1 deleted file mode 100644 index 2e3ea2e80674..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Az.KeyVault.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.KeyVault.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Az.KeyVault.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAhgmpnLOCuADnf -# vtM33V/fWhhyLDhhtDpPciX9NEINkKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMGUxsaZz9mlQlu7cdXzs2qo -# UZjdck51ZeEZGNUGFzMAMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAnyDnnw3K/3cyMEzj3XJsG6q9CVIWRebD3n16/AqzbclncfBspPY6iRds -# rsqTAEOoChb+edbhZlQCHFY92+S9vuLGWUAWyRneiY85A8G6xhVhlIm/JHktt+6B -# BOhgOanunQD/sFF0oOshK3NFZChj2B3Nd58c8MREHYB3aNlyAeFXl7lJuRqYrhJZ -# b0DaZMr2fLIGwA8DfsuqJd903a2DKdRv/ZatTuwAzX48SuPU8rf8Y/zVyasCObp2 -# 4FtVJxLAbsiJgfv/VOp6W0CsNwmgN9YegQiEmYtFwn3p7zKuC7xxjSfA33+fiqTf -# 7cLbW7NRvIpKM73D4zxFwogzbaUMZqGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCjXF1FlLA1H5ijbyz3lXgG4FjPNPL86HTZ4Xxxt6TwLgIGZ3gW1Ixn -# GBIyMDI1MDEwOTA2MzY0My4xM1owBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpBNDAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB7OArpILQkVKAAAEAAAHsMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUz -# OFoXDTI1MDMwNTE4NDUzOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpBNDAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBALBH9G4JNuDFRZWb9V26Xba7B0RmbQigAWzqgivf1Ur8 -# i0/zRyf7xOa0/ruJpsHgOYAon0Yfp0kaEQ8mlji9MpFI7CtE3FUgqg895QXd/hXI -# cRyj+7VBRp2XAPXfY25kLFueHoyLaUsbukO+zNmowbtLcwKLZuTae+0Yp14Agv4f -# vuAvivTVNJZvuuwTYlvU/83pj9bUKoOLX8hvf/NGpZe3jPG90gZw+NLhkrJAQXdI -# RkCrhciOLKjA8dqo1tnF1/aRY79qN19NTzm33fgJcCKdvSj65D0q1oo0tVVw1/lC -# lLh/r8yxc68gW4JgxF0oOOma+jAB4v7WPbtsLEIGkNAetaR8/Nmn9f5u30LsTmE8 -# /odVGioFhHu7WBR/kYSr7mvUcDSNqOfRDo699hyQTQd06/opZr6wCYkbs8O9Nlp7 -# vuGibPHog+qCBWk1m4KTv1J9Wacq70XnxQCdTnxOoMcTMaxCcxRAqy1LfOOfpJTQ -# 0sQU0J62W5oqSpYNFUsRZu7fb0gSHe2pc9d/LpGH/AJvB71IIkiiq0F7EGs/JBgD -# ZdrPV8r3KxOzHSQD1XUnBVXjghr1z4zC0BHqyop0CBGj9uz9e7yC5rwsN7opbK73 -# vh72YZbtk7ydqsMWsBPURcYcO57KBIq+/YrvAHyUCAwYmPvcJC+v6OqhbDHpd3J5 -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQU9FrQR2T+K/XCFhCxXxSAR/hMhYYwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAJK8xKQxKu+OUM9qDwBFvQ4WsBC1IswOk3RR -# jcWO8+HAYoOuuLGae4x+OuZWNGrW7wiGQO8YX9t99sVOv4gCcNJ6DxMH3N8b/jJu -# Se6imSVt4aNu3swvGl+GiUIRHIRzbQ8xkonP1K/N+47WfnGuss4vybSea/mQFy/7 -# LUBcnlBwuJyaF7Yinf8PrsR3qg+pAjTeYONhpLU1CEE227nvA8pdnUSg1OgGTxsD -# rzf3DXX1v5r1ZOioiyR1Eag/nGMMi/6ZzS8EeFkaQlW98iGbgCnzOm0LvFUCXLSN -# 46/l1QYwJiBmO+hOaB3jluoDC6d2Y+Ua6vt6V5Zh50tB/uzcvn6p9pj/ESH/26jX -# tKcz+AdVIYDO+et4aE6sHYu10qhVJ7kttimKFdy0N7vqJi0v6aHFc8SnN1rdsmWE -# 9M5Dco4RkClUREGjnKW1aM8JaVfHIKmXmOP2djSd93TvVt6aei7wDetRmt2Aohq6 -# 2wftIc6I55tkao277rba8m1rd4BiwIBrEBwH0GIk+Vrtdp32qtNh1PjlWUJhO0FJ -# jihVGx51IAO/32O/+JggAbLVsLK25rSj9Cq/16sqbNAJNUxdoNzbkNMtwwYmtG5r -# crTGK922egF7HNUmvrJeoz4FrbCEhVG8ZyuIGQpfQUkV5buvb1df6TR7gOcbqIEc -# pCN5zpU3MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAI4c -# +2BV3P0RbSI80v8FeomipUx/oIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKdU9MCIYDzIwMjUwMTA5MDQ1NTI1 -# WhgPMjAyNTAxMTAwNDU1MjVaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOsp1T0C -# AQAwBwIBAAICGvIwBwIBAAICE/YwCgIFAOsrJr0CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEAgJYbzJZGAehfP0lgWKMAaMaLEfhN9dHegZ5uZzwZe6qZCAI0 -# yw8pecOQwfe2j8a2sNAxDMKcWunvRRrK7KrNAb/XtsViEglYtIGHxmR8j/n1JMRb -# DwYHRszUvCJwQ/kLkRheLDyFKi4ZKJ9oJxba9Ng+ALYhX7lH9Y/RgbyAiObMPFIz -# CPVwWxrz+hahDtbiX0MwHN+Go8pr2D9UOwVuT+W/Ml4fjkAfsx1LkrpJgcXIOudx -# UnfWH74jGY0cZcx15rSmzqTdkAI568LmcgZBdhQpWPf6oOEg1rmMErU23UIBvoBo -# IT2lPsNuHaeORj8QiVEmvdg/kmemB+Jq/XoqKDGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB7OArpILQkVKAAAEAAAHsMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIPFQrjIRHHDyWt0AeVpn0LZacvaWU/jRhVLCAwE1VuEUMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgJwnm9Wp9N8iHHbVAEFsrKj/FyJAh -# dqgxZQt6MATVCoMwgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAezgK6SC0JFSgAABAAAB7DAiBCCcnZEgMd+b/WILuiRw1VR2BIOp9rHP -# KSoubN3CMGIojDANBgkqhkiG9w0BAQsFAASCAgBf7ZWuTG62T5oA+iCncoebbTG+ -# iVW9rvpPgEbdtuTW/pxqsT0Xu068S4fcvSZWCkNSiIu+4Z86N07hyZeh5VbE+tA0 -# GJpd2VmL89gzgSNfiG1ot4lrlFHqabhsWhQs/VH1igVbuSykt06/ss2Jgg8Cj2Jv -# szYJZFceI1msRP7hCp6a6AUb9YlFYBGUf7hw8XawDT9GkL2e9u90bnJODk79+Hkz -# hUEElQGWG2VnSyyoYluKLtQfluY76W+JXBn18aoz5w45WbI5CNSpAMGArnau5Whq -# rMPdA/e32N7/37JxVnvzQs+8f7AeBFiiIbf+ATVTQoeNbBmNlFScWuZW/Q7Epg56 -# KtyU5bQBr4Voh33p/oMgbObmDMy4QYx8VqE5SNR0hgEs0+EyegcrVlag8m2KkdgT -# na7DxEyvKRkRi5UWFBGG25WHOs6jnhJ3V+vO1rUihirAokirAygPaaCXESHpnXMa -# bCY90nQLn0F3qYXZ2AzrBPZJYzGTcODN2QfyTDkgUCzEzY5icYH7Fu9Pe3tdtE2n -# lRpvtNLVx8uCA5Uxex7Ex5PtMTmKl+Fg73bpfbyiWjQV1bM4RD1kzHjM80soQO4w -# 1xPn0GqGmtDjRlV/4VqaLaJZ7aRH4qOt1aGYsJGyp47LDi48FoN9Kis8UYQnVvAK -# gI9yieXK51YfKE28Fw== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Get-ParameterForRegion.cs b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Get-ParameterForRegion.cs deleted file mode 100644 index b2430e1588b9..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Get-ParameterForRegion.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Cmdlets -{ - using static Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Extensions; - using Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PowerShell; - using Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Cmdlets; - using System; - using System.Management.Automation; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.InternalExport] - [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"ParameterForRegion")] - [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm))] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Description(@"Create an in-memory object for parameter region.")] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Generated] - public partial class GetAzKeyVaultManagedHsmRegionObject : global::System.Management.Automation.PSCmdlet - { - /// Backing field for property. - private Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm _parameter; - - /// Resource information with extended details. - [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource information with extended details.", ValueFromPipeline = true)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Info( - Required = true, - ReadOnly = false, - Description = @"Resource information with extended details.", - SerializedName = @"parameters", - PossibleTypes = new[] { typeof(Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm) })] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category(global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.ParameterCategory.Body)] - public Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm Parameter { get => this._parameter; set => this._parameter = value; } - - /// Backing field for property. - private string[] _region; - - /// - /// List of all regions associated with the managed hsm pool. - /// - [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "List of all regions associated with the managed hsm pool.")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Info( - Required = true, - ReadOnly = false, - Description = @"List of all regions associated with the managed hsm pool.", - PossibleTypes = new[] { typeof(string) })] - [global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category(global::Microsoft.Azure.PowerShell.Cmdlets.KeyVault.ParameterCategory.Path)] - public string[] Region { get => this._region; set => this._region = value; } - - [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specify if add or remove regions to existing regions")] - public SwitchParameter RemoveRegion; - - /// Performs execution of the command. - protected override void ProcessRecord() - { - if (RemoveRegion.IsPresent) - { - var remainingRegions = this.Parameter.Region?.Where(r => !this.Region.Contains(r.Name, StringComparer.OrdinalIgnoreCase)); - this.Parameter.Region = remainingRegions?.ToList(); - } - else - { - foreach (var r in this.Region) - { - this.Parameter.Region.Add(new Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.MhsmGeoReplicatedRegion(new Dictionary{{ "Name", r }})); - - } - } - WriteObject(this.Parameter); - } - - } -} \ No newline at end of file diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/ManagedHsm.json.cs b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/ManagedHsm.json.cs deleted file mode 100644 index 1d48590cddaf..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/ManagedHsm.json.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models -{ - using static Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Extensions; - - /// Resource information with extended details. - public partial class ManagedHsm - { - partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Json.JsonObject container) - { - if (this.Tag != null && this.Tag.Count == 0) { - container.Add("tags", new Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Json.JsonObject()); - } - } - } -} \ No newline at end of file diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Remove-AzKeyVaultManagedHsmRegion.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Remove-AzKeyVaultManagedHsmRegion.ps1 deleted file mode 100644 index 1b6467b17b5e..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/custom/Remove-AzKeyVaultManagedHsmRegion.ps1 +++ /dev/null @@ -1,359 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedhsmregion -#> -function Remove-AzKeyVaultManagedHsmRegion { - [OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be removed associated with the managed hsm pool. - ${Region}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} - ) - process { - try { - $null = $PSBoundParameters.Remove('PassThru') - $null = $PSBoundParameters.Remove('HsmName') - $null = $PSBoundParameters.Add('Name', $HsmName) - $null = $PSBoundParameters.Remove('Region') - $Parameter = Az.KeyVault.internal\Get-AzKeyVaultManagedHsm @PSBoundParameters - $Parameter = Az.KeyVault.private\Get-ParameterForRegion -Parameter $Parameter -Region $Region -RemoveRegion - $null = $PSBoundParameters.Add('Parameter', $Parameter) - $null = Az.KeyVault.internal\Update-AzKeyVaultManagedHsm @PSBoundParameters - if($PassThru.IsPresent){ - $null = $PSBoundParameters.Remove('Parameter') - $null = $PSBoundParameters.Remove('Name') - $null = $PSBoundParameters.Add('HsmName', $HsmName) - Az.KeyVault\Get-AzKeyVaultManagedHsmRegion @PSBoundParameters - } - } catch { - throw - } - } -} -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB4v93oDmbZQQ2x -# tyZRN6JNLldXTy5N0cZWCzNavC4OQqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEINOR86hYJwqZLsIlsS/vBWtR -# vlDyaDcDGdns8dizFXBRMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAU8QK33+FMdBw1d9ePaVyu6+yfIsT3z2M0PFvY+swzH+0i8ncYKBDSOHx -# k4ihXTQVyH6CjtPMFtOkdfZ1XRqU1NRGiPeK3XzKbV762ujMJMnNJaaVDs7TBDZB -# /GPFTGDsl1YKA9IygI61UlMpreeYe5dUyssk7tJbugFS8aR/fF+U5Myn8UzYXWax -# zjS4Xnb1Cmx6++Ja0ItZsqcbroh3YAsfqSI/zjvR/fWpUJveSXVGcnU6h3/CHVbU -# rkKevTTthdlClpCsKKAQvGZtBvwauvhuxhAqagUzBuejHkWP0tDAhr7ipxyyGhud -# cyQYG09SVq0+hbTdfPsSQJWWf/0XnaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCRaLlAU2sEIxthqOzA3LMCMYJO8Ie/fFNg4mOXMJp39AIGZ1rYDqmf -# GBMyMDI1MDEwOTA2Mzc0NC45MTlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAevgGGy1tu847QABAAAB6zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MzRaFw0yNTAzMDUxODQ1MzRaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTAwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDBFWgh2lbgV3eJp01oqiaFBuYbNc7hSKmktvJ15NrB -# /DBboUow8WPOTPxbn7gcmIOGmwJkd+TyFx7KOnzrxnoB3huvv91fZuUugIsKTnAv -# g2BU/nfN7Zzn9Kk1mpuJ27S6xUDH4odFiX51ICcKl6EG4cxKgcDAinihT8xroJWV -# ATL7p8bbfnwsc1pihZmcvIuYGnb1TY9tnpdChWr9EARuCo3TiRGjM2Lp4piT2lD5 -# hnd3VaGTepNqyakpkCGV0+cK8Vu/HkIZdvy+z5EL3ojTdFLL5vJ9IAogWf3XAu3d -# 7SpFaaoeix0e1q55AD94ZwDP+izqLadsBR3tzjq2RfrCNL+Tmi/jalRto/J6bh4f -# PhHETnDC78T1yfXUQdGtmJ/utI/ANxi7HV8gAPzid9TYjMPbYqG8y5xz+gI/SFyj -# +aKtHHWmKzEXPttXzAcexJ1EH7wbuiVk3sErPK9MLg1Xb6hM5HIWA0jEAZhKEyd5 -# hH2XMibzakbp2s2EJQWasQc4DMaF1EsQ1CzgClDYIYG6rUhudfI7k8L9KKCEufRb -# K5ldRYNAqddr/ySJfuZv3PS3+vtD6X6q1H4UOmjDKdjoW3qs7JRMZmH9fkFkMzb6 -# YSzr6eX1LoYm3PrO1Jea43SYzlB3Tz84OvuVSV7NcidVtNqiZeWWpVjfavR+Jj/J -# OQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHSeBazWVcxu4qT9O5jT2B+qAerhMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCDdN8voPd8C+VWZP3+W87c/QbdbWK0sOt9 -# Z4kEOWng7Kmh+WD2LnPJTJKIEaxniOct9wMgJ8yQywR8WHgDOvbwqdqsLUaM4Nre -# rtI6FI9rhjheaKxNNnBZzHZLDwlkL9vCEDe9Rc0dGSVd5Bg3CWknV3uvVau14F55 -# ESTWIBNaQS9Cpo2Opz3cRgAYVfaLFGbArNcRvSWvSUbeI2IDqRxC4xBbRiNQ+1qH -# XDCPn0hGsXfL+ynDZncCfszNrlgZT24XghvTzYMHcXioLVYo/2Hkyow6dI7uULJb -# KxLX8wHhsiwriXIDCnjLVsG0E5bR82QgcseEhxbU2d1RVHcQtkUE7W9zxZqZ6/jP -# maojZgXQO33XjxOHYYVa/BXcIuu8SMzPjjAAbujwTawpazLBv997LRB0ZObNckJY -# yQQpETSflN36jW+z7R/nGyJqRZ3HtZ1lXW1f6zECAeP+9dy6nmcCrVcOqbQHX7Zr -# 8WPcghHJAADlm5ExPh5xi1tNRk+i6F2a9SpTeQnZXP50w+JoTxISQq7vBij2nitA -# sSLaVeMqoPi+NXlTUNZ2NdtbFr6Iir9ZK9ufaz3FxfvDZo365vLOozmQOe/Z+pu4 -# vY5zPmtNiVIcQnFy7JZOiZVDI5bIdwQRai2quHKJ6ltUdsi3HjNnieuE72fT4eWh -# xtmnN5HYCDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkEwMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCA -# Bol1u1wwwYgUtUowMnqYvbul3qCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymWNTAiGA8yMDI1MDEwOTAwMjYy -# OVoYDzIwMjUwMTEwMDAyNjI5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKZY1 -# AgEAMAcCAQACAhUpMAcCAQACAhMJMAoCBQDrKue1AgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAIHAmhLTSl+tqfMPnHFg24foG1zMFnOXn0DIotbJRVZDtlhF -# nPqSqCYuWMG+vt5lcw61eK9qKCrEL1Z3DME2BYjzUw4pvqj9S4ij9UXBcY7EsuZF -# xKynfZfrdMCTOQx8920OBKrkMuEZQIyhTbNOGFKIbVqAF1ZuNWC3k3d938tCrz6k -# O5nVvlHq0eMKKt0dmLBFNI5t6CmeGfb0gGg5/DxT5b7DLoU2WO/iX3YhbPO8FNpc -# g+onP0f7LP1tI4/67GHNCchp1IYsV2KHZ7V50TN63bGfo1U4AWWahgpxKX44Wl5K -# RAfCFw4sMxpUmJCvGkkLX92WpRPfW0D8+81HOZQxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAevgGGy1tu847QABAAAB6zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAN2jDs4j19gYlRzgp6BG+pMwH2RtG7FDjhSwPAc5EDXjCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM63a75faQPhf8SBDTtk2DSUgIbd -# izXsz76h1JdhLCz4MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHr4BhstbbvOO0AAQAAAeswIgQg3a/qZy5c5u5kLf4EWs4lzDywFVJR -# 2BigcuxSIs4sgoQwDQYJKoZIhvcNAQELBQAEggIALKqssVNkQTZNxM/Uc3H7TN8V -# B5kisM2ZJlG6BYOHdZ5uIq3Xqvg1E35tdlv2bs2WP3j2183Htz+9HukVA8xq4gAH -# lTUpZ366ekFoPxPO6rGRIJQwZWylwqEi+1jpei+NuJcqxo7mUjH8C1ZIOM5fw7ZD -# Ye4MiOURTLgZhqB7TJkIVEGfq9uaxtUJCZUSlF39B2bUJTKVWw6vpv8ZjYfFIL7M -# VR05bnusb/qMdaQnSlpR9gm9CmNfqkmV9bvhoM92osqHG8ZoFK/KCeyIkezszMYY -# XgHXuuQbH6ZWNEQnFJ5He06Dy8oH9IIKxwQqZdOJCTb1D7dBXPbRk9Epd16rOxpS -# zxm1FtGlgoic6/9eREHlCn7tuSv6aFLCpoK9PPBNh9TtADCfsa8YQyaB+A3gA1eP -# MnG1F2f7yrRYoa2uSRTwV0/99Bf2hDaWtGa6B0f3s8TLpxZRnE/kwQ0iHJH3+ehP -# Xf1mm756jFOZ5NpRWPiTuMjWu0fgrvT0bovZz5O7E1qyIyUliUIzXBFuD83UEntC -# MTTbQzoIB+w7pXpVHyTHIAwhaJ0wn8Y6xEZnQkBYeQx8kr7KZ6T1nC8ALZCTcfXt -# 46ZJS/6sbxNtyeSo3sNsnL/Takyo3stzRfCxd9DkKfQkhLpDvLN1HtDDsKP/+f/K -# W7WL5jtXYXalIGZIVYY= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/exports/ProxyCmdletDefinitions.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/exports/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index c8490a12d86d..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/exports/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,1149 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -Get-AzKeyVaultManagedHsmRegion -HsmName testmhsm -ResourceGroupName test-rg - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedhsmregion -#> -function Get-AzKeyVaultManagedHsmRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - List = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsmRegion_List'; - } - if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Checks that the managed hsm name is valid and is not already in use. -.Description -Checks that the managed hsm name is valid and is not already in use. -.Example -Test-AzKeyVaultManagedHsmNameAvailability -Name testmhsm0818 -.Example -Test-AzKeyVaultNameAvailability -Name testmhsm - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckMhsmNameAvailabilityResult -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/test-azkeyvaultmanagedhsmnameavailability -#> -function Test-AzKeyVaultManagedHsmNameAvailability { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckMhsmNameAvailabilityResult])] -[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The managed hsm name. - ${Name}, - - [Parameter(ParameterSetName='CheckViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Path of Json file supplied to the Check operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='CheckViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Json string supplied to the Check operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - CheckExpanded = 'Az.KeyVault.private\Test-AzKeyVaultManagedHsmNameAvailability_CheckExpanded'; - CheckViaJsonFilePath = 'Az.KeyVault.private\Test-AzKeyVaultManagedHsmNameAvailability_CheckViaJsonFilePath'; - CheckViaJsonString = 'Az.KeyVault.private\Test-AzKeyVaultManagedHsmNameAvailability_CheckViaJsonString'; - } - if (('CheckExpanded', 'CheckViaJsonFilePath', 'CheckViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Checks that the vault name is valid and is not already in use. -.Description -Checks that the vault name is valid and is not already in use. -.Example -Test-AzKeyVaultNameAvailability -Name test-kv0818 -.Example -Test-AzKeyVaultNameAvailability -Name testkv - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckNameAvailabilityResult -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/test-azkeyvaultnameavailability -#> -function Test-AzKeyVaultNameAvailability { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.ICheckNameAvailabilityResult])] -[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CheckExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The vault name. - ${Name}, - - [Parameter(ParameterSetName='CheckViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Path of Json file supplied to the Check operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='CheckViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Json string supplied to the Check operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - CheckExpanded = 'Az.KeyVault.private\Test-AzKeyVaultNameAvailability_CheckExpanded'; - CheckViaJsonFilePath = 'Az.KeyVault.private\Test-AzKeyVaultNameAvailability_CheckViaJsonFilePath'; - CheckViaJsonString = 'Az.KeyVault.private\Test-AzKeyVaultNameAvailability_CheckViaJsonString'; - } - if (('CheckExpanded', 'CheckViaJsonFilePath', 'CheckViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -Add-AzKeyVaultManagedHsmRegion -HsmName testmhsm -ResourceGroupName test-rg -Region eastus2 - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultmanagedhsmregion -#> -function Add-AzKeyVaultManagedHsmRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be added associated with the managed hsm pool. - # To construct, see NOTES section for REGION properties and create a hash table. - ${Region}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.KeyVault.custom\Add-AzKeyVaultManagedHsmRegion'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -The List operation gets information about the regions associated with the managed HSM Pool. -.Description -The List operation gets information about the regions associated with the managed HSM Pool. -.Example -Remove-AzKeyVaultManagedHsmRegion -HsmName testmhsm -ResourceGroupName test-rg -Region eastus2 -PassThru - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedhsmregion -#> -function Remove-AzKeyVaultManagedHsmRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion])] -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${HsmName}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # List of regions to be removed associated with the managed hsm pool. - ${Region}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - __AllParameterSets = 'Az.KeyVault.custom\Remove-AzKeyVaultManagedHsmRegion'; - } - if (('__AllParameterSets') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -# SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCfsr6cTxId8hI0 -# To0z0O06fg2XfyeaXrmqY296l2MuwqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIIb+ -# qsAQhMkoxLmEJQkwkz61zGoKmMz/NGy2zDcuXQpsMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAOs6GiyaeIL87iJSduOjMI6tj1zwlhNnj5FrH -# tPVbjTuDvlKYTMN2mmH98Fl7jWtPKXswW1oXStSKlM7ZPqpbHvUuTxSwbXfxp6+b -# JGz/sXiujgrfB79NmgU1vkjDnba8K4zPjPeLdwcO5NbXhmpvHURNbjAqLGWJ9O8z -# +C9KCHGD2a00YVsg9Rw8pLYBaNTlsC+0VzKCoCsgOOL1gPeCHiPYYY6in5HuBXuq -# vOleQu44EPS4oju+owIs4tAxX5e+7xeKiAJejNFt6xBf/hO4yUcGAoufz6wygPQM -# OkpdAsVSgLkwcIrfujNZdeAZUJvxkrswQ+c5iL89Abu82gml8aGCF5cwgheTBgor -# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDfTfwaJNGxMQuhN6R4zVmjk8XmGeR5r5V4 -# SOzx6QV26gIGZ1sAySWAGBMyMDI1MDEwOTA2Mzc0Ni43MTRaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046RjAwMi0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAfI+MtdkrHCRlAAB -# AAAB8jANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NThaFw0yNTAzMDUxODQ1NThaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RjAwMi0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC85fPLFwppYgxwYxkSEeYv -# QBtnYJTtKKj2FKxzHx0fgV6XgIIrmCWmpKl9IOzvOfJ/k6iP0RnoRo5F89Ad29ed -# zGdlWbCj1Qyx5HUHNY8yu9ElJOmdgeuNvTK4RW4wu9iB5/z2SeCuYqyX/v8z6Ppv -# 29h1ttNWsSc/KPOeuhzSAXqkA265BSFT5kykxvzB0LxoxS6oWoXWK6wx172NRJRY -# cINfXDhURvUfD70jioE92rW/OgjcOKxZkfQxLlwaFSrSnGs7XhMrp9TsUgmwsycT -# EOBdGVmf1HCD7WOaz5EEcQyIS2BpRYYwsPMbB63uHiJ158qNh1SJXuoL5wGDu/bZ -# UzN+BzcLj96ixC7wJGQMBixWH9d++V8bl10RYdXDZlljRAvS6iFwNzrahu4DrYb7 -# b8M7vvwhEL0xCOvb7WFMsstscXfkdE5g+NSacphgFfcoftQ5qPD2PNVmrG38DmHD -# oYhgj9uqPLP7vnoXf7j6+LW8Von158D0Wrmk7CumucQTiHRyepEaVDnnA2GkiJoe -# h/r3fShL6CHgPoTB7oYU/d6JOncRioDYqqRfV2wlpKVO8b+VYHL8hn11JRFx6p69 -# mL8BRtSZ6dG/GFEVE+fVmgxYfICUrpghyQlETJPITEBS15IsaUuW0GvXlLSofGf2 -# t5DAoDkuKCbC+3VdPmlYVQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJVbhwAm6tAx -# BM5cH8Bg0+Y64oZ5MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA9S6eO4HsfB00X -# pOgPabcN3QZeyipgilcQSDZ8g6VCv9FVHzdSq9XpAsljZSKNWSClhJEz5Oo3Um/t -# aPnobF+8CkAdkcLQhLdkShfr91kzy9vDPrOmlCA2FQ9jVhFaat2QM33z1p+GCP5t -# uvirFaUWzUWVDFOpo/O5zDpzoPYtTr0cFg3uXaRLT54UQ3Y4uPYXqn6wunZtUQRM -# iJMzxpUlvdfWGUtCvnW3eDBikDkix1XE98VcYIz2+5fdcvrHVeUarGXy4LRtwzmw -# psCtUh7tR6whCrVYkb6FudBdWM7TVvji7pGgfjesgnASaD/ChLux66PGwaIaF+xL -# zk0bNxsAj0uhd6QdWr6TT39m/SNZ1/UXU7kzEod0vAY3mIn8X5A4I+9/e1nBNpUR -# J6YiDKQd5YVgxsuZCWv4Qwb0mXhHIe9CubfSqZjvDawf2I229N3LstDJUSr1vGFB -# 8iQ5W8ZLM5PwT8vtsKEBwHEYmwsuWmsxkimIF5BQbSzg9wz1O6jdWTxGG0OUt1cX -# WOMJUJzyEH4WSKZHOx53qcAvD9h0U6jEF2fuBjtJ/QDrWbb4urvAfrvqNn9lH7gV -# PplqNPDIvQ8DkZ3lvbQsYqlz617e76ga7SY0w71+QP165CPdzUY36et2Sm4pvspE -# K8hllq3IYcyX0v897+X9YeecM1Pb1jCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkYwMDItMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQBri943cFLH2TfQEfB05SLICg74CKCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ym+9jAi -# GA8yMDI1MDEwOTAzMjAyMloYDzIwMjUwMTEwMDMyMDIyWjB3MD0GCisGAQQBhFkK -# BAExLzAtMAoCBQDrKb72AgEAMAoCAQACAhtNAgH/MAcCAQACAhPjMAoCBQDrKxB2 -# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh -# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAIgtCQZPaemHclRUOGrxwlMj -# Zj80Wio/IPYvxT6C63o9rlyK9rdhebpJVVSAwSFv8VLi1v0bnDDg1Yc69xGurbF8 -# yJQAijYY0FZmJgGuDhALH7fYWqNAsBMwZpkZ6CrxqjEZRuaCU8SpDW/+wfXxCfI+ -# VeYqvZz435SGbb51feCe+d9E0C1jdiiTAbGpJieZkJK3JefeC3beGfo0WE60XB6G -# esfU5IIQpDOWK/lMaYHT9O/gU0VYyZXUjN0qFpBGv7pPIjm9jpC7Tj3U/kKA2DfQ -# ETpnaDPWsYz9+12WqGW+OFIQXf8jDgbDrVuhtV15zSi2iaqu/XScsAc7WNp9uo4x -# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv -# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 -# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA -# AfI+MtdkrHCRlAABAAAB8jANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD -# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCBtjftYEYWKJVwKxHEKWIOB -# rIBrZhp6x3IquVMaR6GJZDCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPja -# Ph0uMVJc04+Y4Ru5BUUbHE4suZ6nRHSUu0XXSkNEMIGYMIGApH4wfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHyPjLXZKxwkZQAAQAAAfIwIgQgQG2W -# 7g9ZcfObU/DpFQYoXhTLiD2OLjtsaohBDi9juqEwDQYJKoZIhvcNAQELBQAEggIA -# jPHipmmJnmkKxl53wX/I4rAapwx0XrOzM/mdn181UpbDvNBPPPSObmk8SJ4YDlAP -# 4rVWOMV9ALIp0R3nQwOY3VTMSKbtqiyxXO6nkabUMMBN4YYCShrudOEflt4Pnie4 -# J+56BLLfnUTIuOp6ZkcCVP1DtDYulYFUX5uHB4JPBkYfs5E0IOR/YSGq/8FdKgLk -# jmcY3OnWC8CK6ZVfJ8N+/tXoyD4X9yZCFz92MxpFhYrkuFjN6j+qoLWaGfvSJqd4 -# oosA7UslIwL0oqPwbghKSJEIInlLjcY4wwA2DEUwmkBJ6tVvFSivOcKJfRbhikG5 -# lpSD5u4t8kxlxo7xhhMZPoQ7HYxjUnWkHpJtmLo5YuFD9XL8N942mUL3+6kxy5BH -# 5QIvyrtBwH7Kl+Gn86VGRf4uRb1z/25T1KRkfjuJfW1xQmlrEGH1RWT/RyfWaSRs -# i1Syn6QDF71jDMcogMF7NxkKYh2ORrKybILetz36Q8ClWXwe1s1/7+hA/pSGjLQm -# YN+ol7U5o+HP3T7NtzeqO3ZAieLkuOG+SVgnaCWw/MpdR3JMONYeKv0BoTtBt86j -# 2/TfZI9UCWaMNMVGfXDZLVMyWcUJo4C4JcPKhWvlGWCROI9IYAbz7wVRbdlIgQKa -# e+cZmNQC+5ZfSXk2lFJ4+tCBNWoKSOTNEfJQ3E3+nuc= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/Az.KeyVault.internal.psm1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/Az.KeyVault.internal.psm1 deleted file mode 100644 index 7012b7537a6b..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/Az.KeyVault.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.KeyVault.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoOAYJKoZIhvcNAQcCoIIoKTCCKCUCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBQp9oIDCEyXP2/ -# ri3I99pwl4x1uyvYAR/FtKl433JQaKCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJIh -# 2Tp+JPF+9bwoEx6l6gLD3l676mOBhF7LcgEPOBWtMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAHH7FuCAM4WwlmFfoJ4cI5c+fZDFrcATav5uj -# qydw8Dx0l0hVDIVuSphknxMQNHmXWI0HQL2+S2/SIAIKePbKe50RTIaX/Rag9Z/7 -# md7BhgaoOns5VtILyKi6vFshAVP0G7BGJfROnh1c7mPaEst04PhwM4opkuOqp1NR -# +e5ZmgZcyI1otmm5j4fhPMKdMJrbT6jF0194fACvf/myc8QLXr9PfR8XWrftwuIJ -# eve8x1mL0w+uvf8KxomvQy0D7VjRmrUdbz3CeEjCWi2vO3DEQBs4sV70jBBuTmJ5 -# 8qam/ujDFV5wyujBTIPFqX+O5UDNJ6Y6zaMkUfOaTYKjNG9GVKGCF5MwghePBgor -# BgEEAYI3AwMBMYIXfzCCF3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCB9POp35dQ6qLW0lK3+7LrS2ljiqMtvbHy+ -# wq3b8SVdrwIGZ2f84IGhGBIyMDI1MDEwOTA2MzY0NS4xNlowBIACAfSggdGkgc4w -# gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT -# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg -# VFNTIEVTTjozNzAzLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt -# U3RhbXAgU2VydmljZaCCEeowggcgMIIFCKADAgECAhMzAAAB6pokctVZP2FjAAEA -# AAHqMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MB4XDTIzMTIwNjE4NDUzMFoXDTI1MDMwNTE4NDUzMFowgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCC -# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALULX/FIPyAH1fsu52ijatZv -# aSypoXrlC0mRtCmaxzobhuDkw6/pY/+4nhc4m8pf9zW3R6PihYGp0YPpVuNdfhPQ -# p/KVO6WvMq2DGfFmHurW4PQPL/DkbQMkM9vqjFCvPq8xXZnfL1nGN9moGcN+oaif -# /hUMedmF1qzbay9ILkYfLCxDYn3Qwzsvh5xjxOcsjzmRddNURJvT23Eva0cxisH4 -# ocLLTx2zfpqfshw4Z9GaEdsWg9rmib1galUpLzF5PsQDBbtZtcv+Wjmn0pFEiMCW -# wEEcPVN0YG5ysYLdNBdJOn2zsOOS+80W5RrQEqzPpSIIvEkZBJmF3aI4lMR8nV/F -# iTadjpIIqxX5Wa1XlqI/Nj+xagVjnjb7POsA+vh6Wu+v24HpyL8pyL/8Q4RFkRRM -# E9cwT+Jr63yOtPbLe6DXkxIJW6E6w2ua5kXBpEKtEQPTLPhX3CUxMYcglbnmI0zc -# c9UknX285K+sI/2WwRwTBZkhDUULI86eQzV+zvzzR1qEBrlSY+oyTlYQrHMM9WnT -# zVflFDocZVTPpl2BDSNxPn0Qb4IoM9EPqbHyi/MilL+v/AQc8q3mQ6FiuPJAddz0 -# ocpNZ9ekBWPVLKq3lfiev4yl65u/438+NAQ+vSJgkONLMmuoguEGzmnK1vq/JHwd -# RUyn6YADiteM7Dja+Qd9AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUK4FFJaJR5ukX -# QFTUxMhyiwVuWV4wHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYD -# VR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j -# cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG -# CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw -# MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD -# CDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBACiDrVZeP37+fFVt -# fcbfsqC/Kg0Ce67bDcehZmPcfRgJ5Ddv0pJlOFVOFbiIVwesqeEUwFtclfi5Ajne -# Q5ZJpYJpXfELOelG3dzj+BKfd287/UY/cwmSkl+CjnoKBL3Ms6I/fWR+alR0+p6R -# lviK8xHoug9vkc2WrRZsGnMVu2xOM2tPJ+qpyoDBzqv30N/ZRBOoNrS/PCkDwLGI -# CDYqVs/IzAE49yv2ElPywalf9mEsOHXV1lxtQDNcejVEmitJJ+1Vr2EtafPEbMQZ -# p89TAuagROKE4YuohCUKm+v3geJqTQarTBjqV25RCOT+XFngTMDD9wYx6TwndB2I -# 1Ly726NiHUHs0uvq3ciCV9JwNXdt1VZ63WK1NSgpVEsiK9EPABPt1EfXcKrfaPYk -# bkFi79eK1ETxx3NomYNUHNiGU+X1Be8L7qpHwjo0g3/33XhtOr9LiDoUXh/V2LFT -# ETiqV9Q8yLEavQW3j9LQ/h/CaGz5YdGfrY8HiPfMIeLEokKxGf0hHcTEFApB0yLl -# q6KoHrFAEANR/4XuFIpl9sDywVIWt4tKqG+P6pRAXzg1zG5rGlslZWmw7XwgvhBu -# 3jkLP9AxrsSYwY2ftrwwze5NA6VDLS7pz+OrXXWLUmoyNrJNx5Bk0wEwzkQxzkOv -# mbdPhsOP1ZM0uA/xIV7cSpNpZUw5MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ -# mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1 -# WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD -# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjK -# NVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg -# fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJp -# rx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d -# vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka9 -# 7aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKR -# Hh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9itu -# qBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyO -# ArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItb -# oKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6 -# bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t -# AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQW -# BBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb -# UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYz -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku -# aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA -# QwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2 -# VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu -# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEw -# LTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 -# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt -# MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q -# XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6 -# U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt -# I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis -# 9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp -# kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0 -# sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138e -# W0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJ -# sWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7 -# Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0 -# dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ -# tB1VM1izoXBm8qGCA00wggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzET -# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV -# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj -# YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0wNUUw -# LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB -# ATAHBgUrDgMCGgMVAInbHtxB+OlGyQnxQYhy04KSYSSPoIGDMIGApH4wfDELMAkG -# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx -# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKYy6MCIY -# DzIwMjUwMTA4MjM0NjAyWhgPMjAyNTAxMDkyMzQ2MDJaMHQwOgYKKwYBBAGEWQoE -# ATEsMCowCgIFAOspjLoCAQAwBwIBAAICKWYwBwIBAAICE0wwCgIFAOsq3joCAQAw -# NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgC -# AQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAPzYOqsYoF4vIH+qFoefmwvzgHqMi -# 9mzhL5Ns4u1zJ5vY4ZS8k9AtuzZuhZVjfXE27tgL5I7mje8xEQtw4RCWX8PQEEA5 -# 2SGh442mh4wYnLrj7uSPyI7wdXwFkXkOJta8GQ7kP4jzoHDaM6ebP4znIqr8QUyo -# +OmL6bBhnFQt9Hu4INQ5HDrGQJ3S1tsGrBHwMhYnZEwur4iJeBnp0J+1riv/IMUg -# St2x6aw0dJjAqj34+PU9dultTkWxQblIwUIKRDsqXV2+Y6eOdLsSeiLX5nSStkIg -# PUKlyuuycTVAqRv5y0PWYg0NoxmLKmig0DruHImo12kfbim+rM3wijnknzGCBA0w -# ggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB6pok -# ctVZP2FjAAEAAAHqMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYL -# KoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIOUvPqCkaOH+fRtcEcpum2Ptn/gC -# m3uEM4EKs/FZ1qRDMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgKY+h1eNk -# NHiLCDSW0sA1cGHkbW4qooi+ryyMp6S4ZngwgZgwgYCkfjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMAITMwAAAeqaJHLVWT9hYwABAAAB6jAiBCDEuGX8o4H1 -# v7nIXWx+VCpEdZPl9z0ypkMrr1Rv5i5OtTANBgkqhkiG9w0BAQsFAASCAgBx+QkV -# uRUP4+UYJfqEhO8Ayghga+aW3V24q10CSZ5rREnG3HPgDMCPsB9/vqvsVPRPAi88 -# b2INvWz0gY+fhCyk8mxQvYyL/IrKcsKfBY9M8Y/B26lHz+iJsqYFdGdZW6H+2zyJ -# Leb/6ZGDmEdRESK6DDXSs7kuzasl/R64Hrn1tXoZ4S3/o44yCUd3qlLQ4Cmu93cE -# 0yDWLJNjphiIwVSufdPE/PmU0lADUSYTnqjlMh76srkVWuoMnElrls4azukCYdKI -# Cyswb+L1Wif9YhMTyCjCLHYqFAEu+kORlxhgrvo2IgcRJI/BuGR+vxUdyOTf5EXF -# Yb485tQ0imbiUUwdwiowCWy4Clb4S0tKL8uf9399MQZbwCx6U/gegJBuOOYDAD3H -# /nhoMOWN+GWX8FmUfhxbjwLMZmcrQ6h1v+pI342Aox8yZYTpzb8/CPy6azuEuWQW -# zvpy3wRmsOQ7099uOKuSohhlPu6MGUWMjz3oH7HafptanwkL+TJa78/4LVEvCIgJ -# RFWSSyE5QAKkTuNtpgtTLqVsFC1nPvYx8QArdBf6uQvWSblbevFxQxm3pPgkrLq2 -# UumO4gFcEdgzheL+7NYDoQLeKh4+j7B38/GDgPdKR1slTUqHz/wXneY7Ibrbz47v -# nYplKm8LKJMfWPpwyHRRG7TzlqtBTKv3tXGj8A== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/ProxyCmdletDefinitions.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 35740570efde..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/internal/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,879 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Gets the specified managed HSM Pool. -.Description -Gets the specified managed HSM Pool. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [Id ]: Resource identity path - [Location ]: The location of the deleted vault. - [Name ]: Name of the managed HSM Pool - [OperationKind ]: Name of the operation - [PrivateEndpointConnectionName ]: Name of the private endpoint connection associated with the key vault. - [ResourceGroupName ]: The name of the Resource Group to which the server belongs. - [SubscriptionId ]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. - [VaultName ]: Name of the vault -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedhsm -#> -function Get-AzKeyVaultManagedHsm { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm])] -[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # The name of the managed HSM Pool. - ${Name}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='List', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='List')] - [Parameter(ParameterSetName='List1')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Query')] - [System.Int32] - # Maximum number of results to return. - ${Top}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_Get'; - GetViaIdentity = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_GetViaIdentity'; - List = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_List'; - List1 = 'Az.KeyVault.private\Get-AzKeyVaultManagedHsm_List1'; - } - if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Create an in-memory object for parameter region. -.Description -Create an in-memory object for parameter region. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -PARAMETER : Resource information with extended details. - [Location ]: The supported Azure location where the managed HSM Pool should be created. - [SkuName ]: SKU of the managed HSM Pool - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. - [CreateMode ]: The create mode to indicate whether the resource is being created or is being recovered from a deleted resource. - [EnablePurgeProtection ]: Property specifying whether protection against purge is enabled for this managed HSM pool. Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. Enabling this functionality is irreversible. - [EnableSoftDelete ]: Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. Soft delete is enabled by default for all managed HSMs and is immutable. - [InitialAdminObjectId >]: Array of initial administrators object ids for this managed hsm pool. - [NetworkAclsBypass ]: Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'. - [NetworkAclsDefaultAction ]: The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated. - [NetworkAclsIPRule >]: The list of IP address rules. - Value : An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78). - [NetworkAclsVirtualNetworkRule >]: The list of virtual network rules. - Id : Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'. - [PublicNetworkAccess ]: Control permission to the managed HSM from public networks. - [Region >]: List of all regions associated with the managed hsm pool. - [IsPrimary ]: A boolean value that indicates whether the region is the primary region or a secondary region. - [Name ]: Name of the geo replicated region. - [SoftDeleteRetentionInDay ]: Soft deleted data retention days. When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. It accepts values between 7 and 90. - [TenantId ]: The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool. -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/get-parameterforregion -#> -function Get-ParameterForRegion { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String[]] - # List of all regions associated with the managed hsm pool. - ${Region}, - - [Parameter(Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm] - # Resource information with extended details. - ${Parameter}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Specify if add or remove regions to existing regions - ${RemoveRegion} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Az.KeyVault.private\Get-ParameterForRegion'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Update a managed HSM Pool in the specified subscription. -.Description -Update a managed HSM Pool in the specified subscription. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [Id ]: Resource identity path - [Location ]: The location of the deleted vault. - [Name ]: Name of the managed HSM Pool - [OperationKind ]: Name of the operation - [PrivateEndpointConnectionName ]: Name of the private endpoint connection associated with the key vault. - [ResourceGroupName ]: The name of the Resource Group to which the server belongs. - [SubscriptionId ]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. - [VaultName ]: Name of the vault - -NETWORKACLSIPRULE : The list of IP address rules. - Value : An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78). - -NETWORKACLSVIRTUALNETWORKRULE : The list of virtual network rules. - Id : Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'. - -PARAMETER : Resource information with extended details. - [Location ]: The supported Azure location where the managed HSM Pool should be created. - [SkuName ]: SKU of the managed HSM Pool - [Tag ]: Resource tags - [(Any) ]: This indicates any property can be added to this object. - [CreateMode ]: The create mode to indicate whether the resource is being created or is being recovered from a deleted resource. - [EnablePurgeProtection ]: Property specifying whether protection against purge is enabled for this managed HSM pool. Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. Enabling this functionality is irreversible. - [EnableSoftDelete ]: Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. Soft delete is enabled by default for all managed HSMs and is immutable. - [InitialAdminObjectId >]: Array of initial administrators object ids for this managed hsm pool. - [NetworkAclsBypass ]: Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'. - [NetworkAclsDefaultAction ]: The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated. - [NetworkAclsIPRule >]: The list of IP address rules. - Value : An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78). - [NetworkAclsVirtualNetworkRule >]: The list of virtual network rules. - Id : Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'. - [PublicNetworkAccess ]: Control permission to the managed HSM from public networks. - [Region >]: List of all regions associated with the managed hsm pool. - [IsPrimary ]: A boolean value that indicates whether the region is the primary region or a secondary region. - [Name ]: Name of the geo replicated region. - [SoftDeleteRetentionInDay ]: Soft deleted data retention days. When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. It accepts values between 7 and 90. - [TenantId ]: The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool. - -REGION : List of all regions associated with the managed hsm pool. - [IsPrimary ]: A boolean value that indicates whether the region is the primary region or a secondary region. - [Name ]: Name of the geo replicated region. -.Link -https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedhsm -#> -function Update-AzKeyVaultManagedHsm { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the managed HSM Pool - ${Name}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='UpdateViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [System.String] - # Name of the resource group that contains the managed HSM pool. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Update')] - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaJsonFilePath')] - [Parameter(ParameterSetName='UpdateViaJsonString')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # Subscription credentials which uniquely identify Microsoft Azure subscription. - # The subscription ID forms part of the URI for every service call. - ${SubscriptionId}, - - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IKeyVaultIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsm] - # Resource information with extended details. - ${Parameter}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("recover", "default")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The create mode to indicate whether the resource is being created or is being recovered from a deleted resource. - ${CreateMode}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Property specifying whether protection against purge is enabled for this managed HSM pool. - # Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. - # Enabling this functionality is irreversible. - ${EnablePurgeProtection}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. - # Soft delete is enabled by default for all managed HSMs and is immutable. - ${EnableSoftDelete}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String[]] - # Array of initial administrators object ids for this managed hsm pool. - ${InitialAdminObjectId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("AzureServices", "None")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Tells what traffic can bypass network rules. - # This can be 'AzureServices' or 'None'. - # If not specified the default is 'AzureServices'. - ${NetworkAclsBypass}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("Allow", "Deny")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The default action when no rule from ipRules and from virtualNetworkRules match. - # This is only used after the bypass property has been evaluated. - ${NetworkAclsDefaultAction}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmipRule[]] - # The list of IP address rules. - ${NetworkAclsIPRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmVirtualNetworkRule[]] - # The list of virtual network rules. - ${NetworkAclsVirtualNetworkRule}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("Enabled", "Disabled")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Control permission to the managed HSM from public networks. - ${PublicNetworkAccess}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IMhsmGeoReplicatedRegion[]] - # List of all regions associated with the managed hsm pool. - ${Region}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.PSArgumentCompleterAttribute("Standard_B1", "Custom_B32", "Custom_B6")] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # SKU of the managed HSM Pool - ${SkuName}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.Int32] - # Soft deleted data retention days. - # When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. - # It accepts values between 7 and 90. - ${SoftDeleteRetentionInDay}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Models.IManagedHsmResourceTags]))] - [System.Collections.Hashtable] - # Resource tags - ${Tag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool. - ${TenantId}, - - [Parameter(ParameterSetName='UpdateViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Path of Json file supplied to the Update operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='UpdateViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Body')] - [System.String] - # Json string supplied to the Update operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Update = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_Update'; - UpdateExpanded = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateExpanded'; - UpdateViaIdentity = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaIdentityExpanded'; - UpdateViaJsonFilePath = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaJsonFilePath'; - UpdateViaJsonString = 'Az.KeyVault.private\Update-AzKeyVaultManagedHsm_UpdateViaJsonString'; - } - if (('Update', 'UpdateExpanded', 'UpdateViaJsonFilePath', 'UpdateViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAxHRrDH4wjBP8E -# bTpj2WFOEcRdTCC1185CnH8162ZA96CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIASE2AafbDOCQsCiO4HpjAIY -# Alq2b7xR6XgYsscv63s7MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAaRKGn+P2G0WbrMuTYRDwxOPx06hZZPRXVQZQqXEKZWaXdTWBjDPU5xDa -# FLSR2jMKeoPiFxjIhEh7szVxjaQI7kJny8ZO3gzFnD23byT6lmd3BFcVtkzcSOwB -# DzsYV4GqlJkWwPTJyKzWsv57MNRyJ1advC0TlNrUOtssLqDmsFf+Ex14YvvxUiO7 -# eXsOcEQtHreJ0880sL+18y+JjKJYSSBfD6WPpPl9Ftuy2pZVfoOHiMN+StCpJU7i -# 3X/l+WJbw/+RN7jK0ssXkjWJdgHZQPCfua60wsUOPjgdmd6AxrBh+D0zcnW1PkFW -# dTh+EIDy9DYF+rdKrjHtmRiVwUACa6GCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDoHC/TIxem5u/MR4fW6oq0pfXVBKIUPvKdHwvf5KXvaAIGZ1sNHJKd -# GBMyMDI1MDEwOTA2Mzc0NS4yOTFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAebZQp7qAPh94QABAAAB5jANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTVaFw0yNTAzMDUxODQ1MTVaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC9vph84tgluEzm/wpNKlAjcElGzflvKADZ1D+2d/ie -# YYEtF2HKMrKGFDOLpLWWG5DEyiKblYKrE2nt540OGu35Zx0gXJBE0zWanZEAjCjt -# 4eGBi+uakZsk70zHTQHHyfP+B3m2BSSNFPhgsVIPp6vo/9t6OeNezIwX5E5+VwEG -# 37nZgEexQF2fQZYbxQ1AauqDvRdXsSpK1dh1UBt9EaMszuucaR5nMwQN6sDjG99F -# zdK9Atzbn4SmlsoLUtRAh/768sKd0Y1hMmKVHwIX8/4JuURUBRZ0JWu0NYQBp8kh -# ku18Q8CAQ500tFB7VH3pD8zoA4lcA7JkxTGoPKrufm+lRZAA4iMgbcLZ2P/xSdnK -# FxU8vL31RoNlZJiGL5MqTXvvyBLz+MRP4En9Nye1N8x/lJD1stdNo5wJG+mgXsE/ -# zfzg2GaVqQczFHg0Nl8bpIqnNFUReQRq3C1jVYMCScegNzHeYtw5OmZ/7eVnRmjX -# lCsLvdsxOzc1YVn6nZLkQD5y31HYrB9iIHuswhaMv2hJNNjVndkpWy934PIZuWTM -# k360kjXPFwl2Wv1Tzm9tOrCq8+l408KIL6J+efoGNkR8YB3M+u1tYeVDO/TcObGH -# xaGFB6QZxAUpnfB5N/MmBNxMOqzG1N8QiwW8gtjjMJiFBf6iYYrCjtRwF7IPdQLF -# tQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFOUEMXntN54+11ZM+Qu7Q5rg3Fc9MB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBhbuogTapRsuwSkaFMQ6dyu8ZCYUpWQ8iI -# rbi40tU2hK6pHgu0hj0z/9zFRRx5DfhukjvbjA/dS5VYfxz1EIbPlt897MJ2sBGO -# 2YLYwYelfJpDwbB0XS9Zkrqpzq6X/lmDQDn3G5vcYpYQCJ55LLvyFlJ195AVo4Wy -# 8UX5p7g9W3MgNHQMpM+EV64+cszj4Ho5aQmeKGtKy7w72eRY/vWDuptrvzruFNmK -# CIt12UcA5BOsXp1Ptkjx2yRsCj77DSml0zVYjqW/ISWkrGjyeVJ+khzctxaLkklV -# wCxigokD6fkWby0hCEKTOTPMzhugPIAcxcHsR2sx01YRa9pH2zvddsuBEfSFG6Cj -# 0QSvEZ/M9mJ+h4miaQSR7AEbVGDbyRKkYn80S+3AmRlh3ZOe+BFqJ57OXdeIDSHb -# vHzJ7oTqG896l3eUhPsZg69fNgxTxlvRNmRE/+61Yj7Z1uB0XYQP60rsMLdTlVYE -# yZUl5MLTL5LvqFozZlS2Xoji4BEP6ddVTzmHJ4odOZMWTTeQ0IwnWG98vWv/roPe -# gCr1G61FVrdXLE3AXIft4ZN4ZkDTnoAhPw7DZNPRlSW4TbVj/Lw0XvnLYNwMUA9o -# uY/wx9teTaJ8vTkbgYyaOYKFz6rNRXZ4af6e3IXwMCffCaspKUXC72YMu5W8L/zy -# TxsNUEgBbTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMzMDMtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDi -# WNBeFJ9jvaErN64D1G86eL0mu6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ynLSzAiGA8yMDI1MDEwOTA0MTI1 -# OVoYDzIwMjUwMTEwMDQxMjU5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKctL -# AgEAMAcCAQACAg4uMAcCAQACAhMGMAoCBQDrKxzLAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAA5Ilmpo0pr4jvWKmHyIkV9T4mqNTxPS+wh7B7nmrYo9WXQ8 -# uP3Tz0R6z8QIdg5BpiZrNzbgamGwem7AanWg1wc8esI2Gs1x3X+l+VlxnXau/rqp -# r3CK6a2lR1NkGdyt3EcBhRzRjKS6QrncsYGQrN2YXUUZhK9WQwptz5FW0tI55pdi -# 3pPGNbSxir3CCEnzU5IsooOsou90mwzN7zjuhDZ7HzNK7pMChzHbYqv9/YoEaO0C -# Ix7PTHixzGx8F4I0RiN0y8UiI1nHJkms7KoVuw+RAOEDLprFBfDrT2mRBXMQzK71 -# w55Zp6xSsnbgXnozy2Ff9fO7rmGW2yEgjhGTLOExggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAebZQp7qAPh94QABAAAB5jAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCBJquwYCPRBBTIEz/kIRK/X31VkkOyOYVvlX3q9ZZ5xuTCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIM+7o4aoHrMJaG8gnLO1q16hIYcR -# noy6FnOCbnSD0sZZMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHm2UKe6gD4feEAAQAAAeYwIgQg/JfqzlgoUAkbgEEZvk960ps+/Ta+ -# 1aEAZisksM/UAagwDQYJKoZIhvcNAQELBQAEggIAEe8RiFQRWAvymtIjN6ngcQox -# cbcG/NyypPaEJZ35nTuFSwW0rLqnuY+eRUEcQlO95Wp/1T8A+L6jXlHpfd2DBToS -# OfYaVlKjoisurWjp6FsLoIEubQKJF7JunvMWcoXulKo1MguBL52szFQvUKnzhy20 -# Ts2RnYUQ9S88xKzvfxvff2/sO1KcUbJ1I9q/xcUz0Uy13ydexGqqRfjb7gT+e4pY -# E2yHWo5IyMYl7+47QyAI5Sb1w0DYVbzSHAv3VyEzxbMjhPiQHdxBnhH6uMIa4RYM -# ysMi14ojxKDVfCCSTwsrL/IYNRT4YAwYo4O65nko6RqmIg7+yVv4Yt2hvSvSjmt4 -# qaCQ/fcZ/E2aRYWxLG0SiZI4cIJeF9Trni+5CJ641Hzaf9EfrpdoWCIN6mnz3QtT -# zj4l90L0w4UmAFS6uaQUmIdxBtOajjzTb98Rve4KWeytWHxrIVM1XFIA3yG0+gIw -# +nyZHitxTaR8O1sRNPJ1y9XR8FyP6y5pIwu0ZBKFQqRR9iTki5AYuNcRjL94/6sb -# JEZeFh0LywWDcdo8LqHHbPYv6cGfYaFY0w64/IKTapKjODrwAoKzU+gRyHT7bS99 -# BkdmQ9LliHMM1vlIL0M1p6vCqfrz61YVB5w80ZKwsePeo0NkP2VVsdQUBzRsECTd -# ut1Znfhh1/xOYSWlP9U= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 deleted file mode 100644 index 9213c3763627..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -param() -if ($env:AzPSAutorestTestPlaybackMode) { - $loadEnvPath = Join-Path $PSScriptRoot '..' 'test' 'loadEnv.ps1' - . ($loadEnvPath) - return $env.SubscriptionId -} -return (Get-AzContext).Subscription.Id -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCvmGT2RlJhp/rC -# DOiTnt/3S1Bv3biEMflyZwWMS2xRdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPSNBc+wDke3rcRSTQbfFzLx -# ZjDqn60fWPPP7nkeXd5aMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIOWv2gqibHDoAsgFKvajYtSyvigIY7LG6+yONh9HcUJdJnIgMxkf+7z/ -# qm0Q7C1aR8JJrAkY+3pKMvBOGYlXRDmicIYAN0EdUyMgxU488QsAjnGWjQXrM1UK -# aob9PRQrhtUBn4ZG5wAbJhh2Mkd1B6OfBaH39wIC9RoNJ82qC+omLBNtcSf1qxxD -# mcok7TsJipQyhezvmyZkp7mZZOCVRnQUzcv8EePP1Mb5XHJxcB9RvJZPdEnNOEor -# /+m5iJXS91Xf1av1uWJ4UtUxLh5wyLuabiujk3tdGllgFevRrW6DU7g19PbWUWFQ -# tDul12Jei/euUx0DggqFpAGcrIUSMKGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDuMbkRPjAvxi4QeVb1DOEEpIfpSuM9f5eAc4Y7kh75MAIGZ1rRdmaw -# GBIyMDI1MDEwOTA2MzY1MS44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUx -# OVoXDTI1MDMwNTE4NDUxOVowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAMJXny/gi5Drn1c8zUO1pYy/38dFQLmR2IQXz1gE/r9G -# fuSOoyRnkRJ6Z/kSWLgIu1BVJ59GkXWPtLkssqKwxY4ZFotxpVsZN9yYjW8xEnW3 -# MzAI0igKr+/LxYfxB1XUH8Bvmwr5D3Ii/MbDjtN9c8TxGWtq7Ar976dafAy3TrRq -# QRmIknPVWHUuFJgpqI/1nbcRmYYRMJaKCQpty4CeG+HfKsxrz24F9p4dBkQcZCp2 -# yQzjwQFxZJZ2mJJIGIDHKEdSRuSeX08/O0H9JTHNFmNTNYeD1t/WapnRwiIBYLQS -# Mrs42GVB8pJEdUsos0+mXf/5QvheNzRi92pzzyA4tSv/zhP3/Ermvza6W9GnYDz9 -# qv1wbhbvrnS4poDFECaAviEqAhfn/RogCxvKok5ro4gZIX1r4N9eXUulA80pHv3a -# xwXu2MPlarAi6J9L1hSIcy9EuOMqTRJIJX+alcLQGg+STlqx/GuslsKwl48dI4Ru -# WknNGbNo/o4xfBFytvtNcVA6xOQq6qRa+9gg+9XMLrxQz4yyQs+V3V6p044wrtJt -# t/a0ZJl/f6I7BZAxxZcH2DDmArcAhgrTxaQkm7LM+p+K2C5t1EKZiv0JWw065b7A -# cNgaFyIkMXYuSuOQVSNRxdIgl31/ayxiK1n0K6sZXvgFBx+vGO+TUvyO+03ua6Uj -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUz/7gmICfNjh2kR/9mWuHUrvej1gwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAHSh8NuT6WVaLVwLqex+J7km2nT2jpvoBEKm -# +0M+rYoU/6GL5Q00/ssZyIq5ySpcKYFMUiF8F4ZLG+TrJyiR1CvfzXmkQ5phZOce -# 9DT7yErLzqvUXit8G7igcHlxPLTxPiiGsb85gb8H+A2fPQ6Xq/u7+oSPPjzNdnpm -# XEobJnAqYplZoF3YNgTDMql0uQHGzoDp6dZlHSNj6rkV1tXjmCEZMqBKvkQIA6cs -# PieMnB+MirSZFlbANlChe0lJpUdK7aUdAvdgcQWKS6dtRMl818EMsvsa/6xOZGIN -# mTLk4DGgsbaBpN+6IVt+mZJ89yCXkI5TN8xCfOkp9fr4WQjRBA2+4+lawNTyxH66 -# eLZWYOjuuaomuibiKGBU10tox81Sq8EvlmJIrXOZoQsEn1r5g6MTmmZJqtbmwZuf -# uJWQXZb0lAg4fq0ZYsUlLkezfrNqGSgeHyIP3rct4aNmqQW6wppRbvbIyP/LFN4Y -# QM6givfmTBfGvVS77OS6vbL4W41jShmOmnOn3kBbWV6E/TFo76gFXVd+9oK6v8Hk -# 9UCnbHOuiwwRRwDCkmmKj5Vh8i58aPuZ5dwZBhYDxSavwroC6j4mWPwh4VLqVK8q -# GpCmZ0HMAwao85Aq3U7DdlfF6Eru8CKKbdmIAuUzQrnjqTSxmvF1k+CmbPs7zD2A -# cu7JkBB7MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALNy -# BOcZqxLB792u75w97U0X+/BDoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKY+fMCIYDzIwMjUwMTA4MjM1ODIz -# WhgPMjAyNTAxMDkyMzU4MjNaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspj58C -# AQAwBwIBAAICCowwBwIBAAICE0wwCgIFAOsq4R8CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEARm0d77sDdK+Bqg3rqdpFmlOenvfBFxGzx0wFPf9zw9hvBfq/ -# EY/IG/WpJ/Jw/J/08M9f9PKnzD7w/9qeeHb2426Zu22WM7fxgY3CLchQb1ACW0NK -# +iCUftBwmbUqK5kuYDMUvYEwPtwD3AIdHvyNlHgse3oPWg6FQrA8ttht1lY+QvGO -# 19OqpeZwzGhAW/O1kGXarKG6rn1qQhGuR3bBKyTvdsujZiVpKwSU0wVMjI+ukv78 -# 9qachfRelJF1bDCInE0mzQxxClHrn9OZ9u/Vnu7QMyUdBYk7JdCXVtECo4y2KynF -# /fz1xueljgsuRALveftvFBWbwabi5hV44504MzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIIZX/FUvXiNbINs5u/kh0fqbsDchKF1hioi+bvU+HGFYMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg5TZdDXZqhv0N4MVcz1QUd4RfvgW/ -# QAG9AwbuoLnWc60wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAecujy+TC08b6QABAAAB5zAiBCBEm+MnX6BUaw2hoO31T8VOQURXR1mD -# tTiPuzpaNaxqQTANBgkqhkiG9w0BAQsFAASCAgBews9oufEPazqt0EzJChqw/s4w -# ydX6moKL9sZr979ineeCHC3pY//7oxmCLxcJg00KBmEGhRv3wvx5m9qYeKgVhyKw -# sW5Nm0pqmNfKwUcNq/6xUB86UWiHOp5XN3B78HkjrT7IEMc9OA2gbRwGZl9nwLyZ -# /5myqnfj3GTfM6OVW+/bZBxHLQVFEWWDKSLpyIoFMyiTUbipXnrQpkbHgmHtAYxJ -# JhGr6I65aoRJKzHZzCkeB9zX/OMIFTcs3k8h9gjNIdgyG3xmyTG9IzeXuGQhO/BV -# vk88pV/btLDG6HF9QSGI95pOCvyfoG/ySV64L5NascO5yRX6DiwN2QPm1XZzE2zI -# D3Ypm8CrMG5lLwqSYuY/jRrb+pUdre7u61nuasWUWV13iepOjy8dF/wMOucfd8m3 -# 5s93Zb0ThTo6RselEpQOd8Qnxjqoq4DO137VbhCxHzgnY23G/jS+pfCuYSX0jId9 -# RXWO59DknoV01R6u1a9bcNuUbwOXU8k6Iwt203tLmXLrFiTN1JqcDoA0zpB1qV2y -# XIhlV7jY/LMe0IZdwGkkMyAe93DSgNofTjTotiDLLcI3dn5yIepxjGF0P1fUNQuM -# eAVMPxi+ne47AJm4NixZWBP48Qi2Py6mFjs8FMYTL5gVwYWWMLB7JG1lUQqWKoDG -# rFnouitaw1wRQR0WhA== -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Unprotect-SecureString.ps1 b/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Unprotect-SecureString.ps1 deleted file mode 100644 index f186085d93b0..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.Autorest/utils/Unprotect-SecureString.ps1 +++ /dev/null @@ -1,233 +0,0 @@ -#This script converts securestring to plaintext - -param( - [Parameter(Mandatory, ValueFromPipeline)] - [System.Security.SecureString] - ${SecureString} -) - -$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) -try { - $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) -} finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) -} - -return $plaintext -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT7ZbNoY98P1cW -# CLQEXghewcRRqpuzw+uOgG2nbQ8aHaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAmR -# ZNAgxcDFKH97A6YERhvKrSJCqORTlbGk5c1WcUAXMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAfPtlhlRy2E3hutbUEkAOD+7dk7c/QftuRCG3 -# JtEcBxyGQG4SFKjdNfyGA9mU9bcQG7EDyKsTDGaeSxfO20CGY+ge345SXSbS20VD -# E66lqx8no+vYNPDTtYfEUOLzHeGWnWo0iAn0H4j7fwhbL/2eq4mpGdj94cSTUh3g -# ZaXTKsqAy8inZDZCoyX4TMHjuXX+SJU1PLHCt2x79KcDFqoOoUYWlA3GiajtQKS1 -# VP/3aezEpYq7aGFK5aHo/hUQSnEeY/Yr9Os3Rx9lz7ztyn7NVcTQK8JUAOuoR3/S -# mWmUoeRc3k0XBiHZppIi5m9oIevwf4WRMSZhcSx0GNbTicgIy6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDnI7XkFqZmx9eRquXRsqCafUn275vbpU6+ -# eoCsY2oCggIGZ1r0VelAGBMyMDI1MDEwOTA2Mzc0NC45MzVaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwAB -# AAAB7TANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7z -# D7g88NpbEaQ6SjcTIRbzCVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayM -# yW4YIpFPZP2x4FBMVCddseF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFB -# z8j0oLWGy3VgLmBTKM4xLqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQ -# MWhykpG+vXDwcpWvwDe+TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQ -# QNC8nLmIvdKkAoWEMXtJsGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5 -# OCEmW6YchEyRDSwP4hU9f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRG -# tcJ9yBNC5BaRktjz7stPaojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF -# 6BHv2TvwlVBeQRN22XjaVVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr -# 7wT0zl0iXr+NtqUkWSOnWRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8X -# f9PTPMzZXDJBI1EciR/91QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4 -# gGUsTvTW+r1JZMxUT2MwqQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAq -# BEfKlAZf0NKh4CIZMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0e -# Hi+iE6/qDY8sbbsO4emancp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bF -# I7dXYw09p3vCipbjy4Eoifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCN -# p0jlJ188/CuRPgqJnfq5EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZ -# qeTIQ0raOItZnFuGDy4+xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr -# 2zrWuceDhz7sKLttLTJ7ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GU -# kMqc51FsNdG1n+zgc7zHu2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Nd -# k5TeMR8Js2kNUicu2CqZ03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzab -# tS4JQgUnJrIZfyosk4D18rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu -# 4ntkzFUxBBpbFG6k1CINZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2 -# kGOixDJHsahZVmwsoNvhy5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSp -# MhoJ33V2Za/lkKcbkUM0SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDuHayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAi -# GA8yMDI1MDEwOTAyMjcxMloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKbKAAgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGdu -# JWnWonsXKPptDkaQJ/jqh8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLho -# CdhGggzU70J4s1ohAeSnauOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+ -# 8LXELYRPEXTUNdh0t/TalsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWc -# cZ+NRtVCuFswqT17sqnw5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/q -# E0g6Mum/F0YyC9SyYuzJk8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3h -# X8vV96VdcwABAAAB7TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAlDRlJWdI5GuiftyJi+gDtKruZ -# qEWEfY8tPHfV0pTRgjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0 -# CFseKxK3A16l1wrIwrsSDrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFot -# PXySbWtoYQzcjhOI+GdzM2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAZIrQ -# Fu33o8czIck9WXTy7f+Oa+7CJTD7KtQfnM3YL3vgjBt7mopEGazCoqhoa0bWnzr0 -# YkF3ck/7sGUyROa1TQ0/5X+mCJ5yFhlUVdglcq+ARKZBTvXUYljFXfOdP+DqtPUg -# nFG8l6/JGSNYuCFQuQV6EJh0/Jcjt1jFkHH3PMNlzkryQA23TvJe/WOevn3LfGhv -# uwMJi27rNlvCmF63p3HNJZpJYY8ti/aKNgxnydU5SC87mtuhGotAuKAFYO7SNdjx -# fgTmZx+WfObfkvc9qWAP83Dm6nJQsLqUiYnockovlNDEL56XneV6LGQTy54fZ0t3 -# ETd6xpWXjE8+UAz2iASScHFOCBbkOnRgwLTzrByJPiNeTI4Kbh39Ctm1b6PUDGP9 -# iLDLeehaFAH7sbH0ccOk00pXdNCEL7eDmeXTtu6kMbw/L1/rT10n8X15VRa8Mshy -# 503Fd9hjmkcRvvs9MPL2Z3njc3xuQ7HOg7KblPOqBhngHhHs+dIeTrX9qP1gX1XX -# TcrVBzNqVO2C8Swur7/a2m4W8LuXCpqslYzBwWJgaykQ/tqOO13M9rnx4EXGrjSZ -# 4q4gvNI7FsJb0WsbIIBeF+jwktYBoEfUV9Pv5j0OKdcrcrwfCdJ5VJ2latZCoCaq -# TjHwobcIgvCSPH9GiXZgWG2uSWRinDsCc60jJkI= -# SIG # End signature block diff --git a/Modules/Az.KeyVault/6.3.1/KeyVault.format.ps1xml b/Modules/Az.KeyVault/6.3.1/KeyVault.format.ps1xml deleted file mode 100644 index b23735c59fe8..000000000000 --- a/Modules/Az.KeyVault/6.3.1/KeyVault.format.ps1xml +++ /dev/null @@ -1,2240 +0,0 @@ - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - VaultName - - - Left - Enabled - - - Left - Created - - - Left - Expires - - - Left - Tags - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - VaultName - - - - Name - - - - KeyType - - - - KeySize - - - - CurveName - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - ReleasePolicy - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - - - - - - VaultName - - - - Name - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - - - - - - - VaultName - - - - Name - - - - KeyType - - - - KeySize - - - - CurveName - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - RecoveryLevel - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - ContentType - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - VaultName - - - Left - Created - - - Left - Expires - - - Left - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - - - - - - - VaultName - - - - Name - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - ContentType - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - VaultName - - - - ResourceGroupName - - - - Location - - - - ResourceId - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - VaultName - - - Left - ResourceGroupName - - - Left - Location - - - Left - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - - - - - - VaultName - - - - Location - - - - Id - - - - ResourceId - - - - DeletionDate - - - - ScheduledPurgeDate - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - VaultName - - - - ResourceGroupName - - - - Location - - - - ResourceId - - - - VaultUri - - - - TenantName - - - - Sku - - - - EnabledForDeployment - - - - EnabledForTemplateDeployment - - - - EnabledForDiskEncryption - - - - EnableRbacAuthorization - - - - EnableSoftDelete - - - - SoftDeleteRetentionInDays - - - - EnablePurgeProtection - - - - PublicNetworkAccess - - - - AccessPoliciesText - - - - NetworkAclsText - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - ResourceGroupName - - - Left - Location - - - Left - Sku - - - Left - ProvisioningState - - - Left - - if ($_.SecurityDomain -ne $null) - { - $_.SecurityDomain.ActivationStatus; - } - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - Name - - - - VaultName - - - - Version - - - - Id - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - VaultName - - - Left - Enabled - - - Left - Created - - - Left - Expires - - - Left - Tags - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - - - - - - - Name - - - - VaultName - - - - Version - - - - Id - - - - KeyId - - - - SecretId - - - - Certificate - - - - Thumbprint - - - - RecoveryLevel - - - - ScheduledPurgeDate - - - - DeletedDate - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - Name - - - - VaultName - - - - Version - - - - Id - - - - KeyId - - - - SecretId - - - - Certificate - - - - Thumbprint - - - - Policy - - - - RecoveryLevel - - - - Enabled - - - - Expires - - - - NotBefore - - - - Created - - - - Updated - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Value - - - Left - Type - - - Left - HsmName - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - Name - - - - ResourceGroupName - - - - Location - - - - ResourceId - - - - HsmPoolUri - - - - TenantName - - - - InitialAdminObjectIds - - - - Sku - - - - EnableSoftDelete - - - - EnablePurgeProtection - - - - SoftDeleteRetentionInDays - - - - PublicNetworkAccess - - - - - if ($_.Identity -ne $null) - { - $_.Identity.Type; - } - - - - - - if ($_.Identity -ne $null) - { - $_.Identity.UserAssignedIdentities; - } - - - - - ProvisioningState - - - - StatusMessage - - - - - if ($_.SecurityDomain -ne $null) - { - $_.SecurityDomain.ActivationStatus; - } - - - - - - if ($_.SecurityDomain -ne $null) - { - $_.SecurityDomain.ActivationStatusMessage; - } - - - - - Regions - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Location - - - Left - DeletionDate - - - Left - ScheduledPurgeDate - - - Left - EnablePurgeProtection - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultAccessPolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultAccessPolicy - - - - - - - - TenantName - - - - ObjectId - - - - ApplicationIdDisplayName - - - - DisplayName - - - - PermissionsToKeys - - - - PermissionsToSecrets - - - - PermissionsToCertificates - - - - PermissionsToStorage - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyReleasePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyReleasePolicy - - - - - - - - ContentType - - - - PolicyContent - - - - Immutable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Expires; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.NotBefore; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.ContentType; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.TagsTable; - } - else - { - $_.Attributes; - } - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - - - - - - - VaultName - - - - Name - - - - Version - - - - Id - - - - DeletedDate - - - - ScheduledPurgeDate - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Expires; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.NotBefore; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.ContentType; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.TagsTable; - } - else - { - $_.Attributes; - } - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - Id - - - - VaultName - - - - AccountName - - - - AccountResourceId - - - - ActiveKeyName - - - - AutoRegenerateKey - - - - RegenerationPeriod - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - Id - - - - VaultName - - - - AccountName - - - - AccountResourceId - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - Id - - - - VaultName - - - - AccountName - - - - Name - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - Id - - - - Sid - - - - VaultName - - - - AccountName - - - - Name - - - - ParameterTable - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Enabled; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Created; - } - else - { - $_.Attributes; - } - - - - - - if ($_.Attributes -ne $null) - { - $_.Attributes.Updated; - } - else - { - $_.Attributes; - } - - - - - TagsTable - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - - - - - - - - - RoleName - - - Description - - - "$($_.Permissions.Length) permission(s)" - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultPermission - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultPermission - - - - - - - - - - - - - - - - - - - - - "$($_.Actions.Length) action(s)" - - - "$($_.NotActions.Length) action(s)" - - - "$($_.DataActions.Length) action(s)" - - - "$($_.NotDataActions.Length) action(s)" - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - RoleDefinitionName - - - DisplayName - - - ObjectType - - - Scope - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.WebKey.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.WebKey.dll deleted file mode 100644 index c6d9e3c7f7f0..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.WebKey.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.dll deleted file mode 100644 index 12ac8ebeb0fe..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.KeyVault.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll deleted file mode 100644 index 1ba2d1ac6ab3..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml deleted file mode 100644 index a85dab6a476c..000000000000 --- a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml +++ /dev/null @@ -1,46410 +0,0 @@ - - - - - Add-AzKeyVaultCertificate - Add - AzKeyVaultCertificate - - Adds a certificate to a key vault. - - - - The Add-AzKeyVaultCertificate cmdlet starts the process of enrolling for a certificate in a key vault in Azure Key Vault. - - - - Add-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to add. - - System.String - - System.String - - - None - - - CertificatePolicy - - Specifies a KeyVaultCertificatePolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to add. - - System.String - - System.String - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificatePolicy - - Specifies a KeyVaultCertificatePolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the certificate to add. - - System.String - - System.String - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ----------------- Example 1: Add a certificate ----------------- - $Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal -Add-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" -CertificatePolicy $Policy - -Status : inProgress -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== -ErrorCode : -ErrorMessage : - -Get-AzKeyVaultCertificateOperation -VaultName "ContosoKV01" -Name "TestCert01" -Status : completed -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== -ErrorCode : -ErrorMessage : - -Get-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" - -Name : testCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:21:45 PM -Updated : 2/8/2016 11:21:45 PM - - The first command uses the New-AzKeyVaultCertificatePolicy cmdlet to create a certificate policy, and then stores it in the $Policy variable. The second command uses Add-AzKeyVaultCertificate to start the process to create a certificate. The third command uses the Get-AzKeyVaultCertificateOperation cmdlet to poll the operation to verify that it's complete. The final command uses the Get-AzKeyVaultCertificate cmdlet to get the certificate. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultcertificate - - - Get-AzKeyVaultCertificate - - - - Import-AzKeyVaultCertificate - - - - Remove-AzKeyVaultCertificate - - - - - - - Add-AzKeyVaultCertificateContact - Add - AzKeyVaultCertificateContact - - Adds a contact for certificate notifications. - - - - The Add-AzKeyVaultCertificateContact cmdlet adds a contact for a key vault for certificate notifications in Azure Key Vault. The contact receives updates about events such as certificate close to expiry, certificate renewed, and so on. These events are determined by the certificate policy. - - - - Add-AzKeyVaultCertificateContact - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultCertificateContact - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultCertificateContact - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address of the contact. - - System.String[] - - System.String[] - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateContact - - - - - - - - - - - - - - -------- Example 1: Add a key vault certificate contact -------- - Add-AzKeyVaultCertificateContact -VaultName "ContosoKV01" -EmailAddress "patti.fuller@contoso.com" -PassThru - -Email VaultName ------ --------- -patti.fuller@contoso.com ContosoKV01 - - This command adds Patti Fuller as a certificate contact for the ContosoKV01 key vault and returns the list of contacts for the "ContosoKV01" vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultcertificatecontact - - - Get-AzKeyVaultCertificateContact - - - - Remove-AzKeyVaultCertificateContact - - - - - - - Add-AzKeyVaultKey - Add - AzKeyVaultKey - - Creates a key in a key vault or imports a key into a key vault. - - - - The Add-AzKeyVaultKey cmdlet creates a key in a key vault in Azure Key Vault, or imports a key into a key vault. Use this cmdlet to add keys by using any of the following methods: - Create a key in a hardware security module (HSM) in the Key Vault service. - - Create a key in software in the Key Vault service. - - Import a key from your own hardware security module (HSM) to HSMs in the Key Vault service. - - Import a key from a .pfx file on your computer. - - Import a key from a .pfx file on your computer to hardware security modules (HSMs) in the Key Vault service. - For any of these operations, you can provide key attributes or accept default settings. If you create or import a key that has the same name as an existing key in your key vault, the original key is updated with the values that you specify for the new key. You can access the previous values by using the version-specific URI for that version of the key. To learn about key versions and the URI structure, see About Keys and Secrets (http://go.microsoft.com/fwlink/?linkid=518560)in the Key Vault REST API documentation. Note: To import a key from your own hardware security module, you must first generate a BYOK package (a file with a .byok file name extension) by using the Azure Key Vault BYOK toolset. For more information, see How to Generate and Transfer HSM-Protected Keys for Azure Key Vault (http://go.microsoft.com/fwlink/?LinkId=522252). As a best practice, back up your key after it is created or updated, by using the Backup-AzKeyVaultKey cmdlet. There is no undelete functionality, so if you accidentally delete your key or delete it and then change your mind, the key is not recoverable unless you have a backup of it that you can restore. - - - - Add-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault to which this cmdlet adds the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault to which this cmdlet adds the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - ResourceId - - Vault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - ResourceId - - Vault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - - HSM - Software - HSM - Software - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - - System.Management.Automation.SwitchParameter - - - False - - - HsmResourceId - - Resource ID of the HSM. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultKey - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmResourceId - - Resource ID of the HSM. - - System.String - - System.String - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CurveName - - Specifies the curve name of elliptic curve cryptography, this value is valid when KeyType is EC. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies whether to add the key as a software-protected key or an HSM-protected key in the Key Vault service. Valid values are: HSM and Software. Note: To use HSM as your destination, you must have a key vault that supports HSMs. For more information about the service tiers and capabilities for Azure Key Vault, see the Azure Key Vault Pricing website (http://go.microsoft.com/fwlink/?linkid=512521). This parameter is required when you create a new key. If you import a key by using the KeyFilePath parameter, this parameter is optional: - If you do not specify this parameter, and this cmdlet imports a key that has .byok file name extension, it imports that key as an HSM-protected key. The cmdlet cannot import that key as software-protected key. - If you do not specify this parameter, and this cmdlet imports a key that has a .pfx file name extension, it imports the key as a software-protected key. - - System.String - - System.String - - - None - - - Disable - - Indicates that the key you are adding is set to an initial state of disabled. Any attempt to use the key will fail. Use this parameter if you are preloading keys that you intend to enable later. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Expires - - Specifies the expiration time of the key in UTC, as a DateTime object, for the key that this cmdlet adds. If not specified, key will not expire. To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Exportable - - Indicates if the private key can be exported. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - HsmResourceId - - Resource ID of the HSM. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - KeyFilePassword - - Specifies a password for the imported file as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. You must specify this password to import a file with a .pfx file name extension. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - KeyFilePath - - Specifies the path of a local file that contains key material that this cmdlet imports. The valid file name extensions are .byok and .pfx. - If the file is a .byok file, the key is automatically protected by HSMs after the import and you cannot override this default. - If the file is a .pfx file, the key is automatically protected by software after the import. To override this default, set the Destination parameter to HSM so that the key is HSM-protected. When you specify this parameter, the Destination parameter is optional. - - System.String - - System.String - - - None - - - KeyOps - - Specifies an array of operations that can be performed by using the key that this cmdlet adds. If you do not specify this parameter, all operations can be performed. The acceptable values for this parameter are a comma-separated list of key operations as defined by the JSON Web Key (JWK) specification (http://go.microsoft.com/fwlink/?LinkID=613300): - encrypt - - decrypt - - wrapKey - - unwrapKey - - sign - - verify - - import (for KEK only, see example 7) - - System.String[] - - System.String[] - - - None - - - KeyType - - Specifies the key type of this key. When importing BYOK keys, it defaults to 'RSA'. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to add to the key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. The name must be a string of 1 through 63 characters in length that contains only 0-9, a-z, A-Z, and - (the dash symbol). - - System.String - - System.String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the key cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. If you do not specify this parameter, the key can be used immediately. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - ResourceId - - Vault Resource Id. - - System.String - - System.String - - - None - - - Size - - RSA key size, in bits. If not specified, the service will provide a safe default. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UseDefaultCVMPolicy - - Specifies to use default policy under which the key can be exported for CVM disk encryption. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault to which this cmdlet adds the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - ------------------- Example 1: Create a key ------------------- - Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITSoftware' -Destination 'Software' - -Vault/HSM Name : contoso -Name : ITSoftware -Key Type : RSA -Key Size : 2048 -Curve Name : -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - This command creates a software-protected key named ITSoftware in the key vault named Contoso. - - - - - - ----------------- Example 2: Create an EC key ----------------- - Add-AzKeyVaultKey -VaultName test-kv -Name test-key -Destination Software -KeyType EC - -Vault/HSM Name : test-kv -Name : test-key -Key Type : EC -Key Size : -Curve Name : P-256 -Version : 4da74af2b4fd47d6b1aa0b05c9a2ed13 -Id : https://test-kv.vault.azure.net:443/keys/test-key/4da74af2b4fd47d6b1aa0b05c9a2ed13 -Enabled : True -Expires : -Not Before : -Created : 8/24/2021 6:38:34 AM -Updated : 8/24/2021 6:38:34 AM -Recovery Level : Recoverable+Purgeable -Tags : - - This command creates a software-protected EC key named test-key in the key vault named test-kv. Its curve name is P-256 by default. - - - - - - ------------ Example 3: Create an HSM-protected key ------------ - Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITHsm' -Destination 'HSM' - -Vault Name : contoso -Name : ITHsm -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - This command creates an HSM-protected key in the key vault named Contoso. - - - - - - ------- Example 4: Create a key with non-default values ------- - $KeyOperations = 'decrypt', 'verify' -$Expires = (Get-Date).AddYears(2).ToUniversalTime() -$NotBefore = (Get-Date).ToUniversalTime() -$Tags = @{'Severity' = 'high'; 'Accounting' = "true"} -Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITHsmNonDefault' -Destination 'HSM' -Expires $Expires -NotBefore $NotBefore -KeyOps $KeyOperations -Disable -Tag $Tags - -Vault/HSM Name : contoso -Name : ITHsmNonDefault -Key Type : RSA -Key Size : 2048 -Version : 929bfc14db84439b823ffd1bedadaf5f -Id : https://contoso.vault.azure.net:443/keys/ITHsmNonDefault/929bfc14db84439b823ffd1bedadaf5f -Enabled : False -Expires : 5/21/2020 11:12:43 PM -Not Before : 5/21/2018 11:12:50 PM -Created : 5/21/2018 11:13:17 PM -Updated : 5/21/2018 11:13:17 PM -Purge Disabled : False -Tags : Name Value - Severity high - Accounting true - - The first command stores the values decrypt and verify in the $KeyOperations variable. The second command creates a DateTime object, defined in UTC, by using the Get-Date cmdlet. That object specifies a time two years in the future. The command stores that date in the $Expires variable. For more information, type `Get-Help Get-Date`. The third command creates a DateTime object by using the Get-Date cmdlet. That object specifies current UTC time. The command stores that date in the $NotBefore variable. The final command creates a key named ITHsmNonDefault that is an HSM-protected key. The command specifies values for allowed key operations stored $KeyOperations. The command specifies times for the Expires and NotBefore parameters created in the previous commands, and tags for high severity and IT. The new key is disabled. You can enable it by using the Set-AzKeyVaultKey cmdlet. - - - - - - ------------ Example 5: Import an HSM-protected key ------------ - Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITByok' -KeyFilePath 'C:\Contoso\ITByok.byok' -Destination 'HSM' - -Vault Name : contoso -Name : ITByok -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITByok/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - This command imports the key named ITByok from the location that the KeyFilePath parameter specifies. The imported key is an HSM-protected key. To import a key from your own hardware security module, you must first generate a BYOK package (a file with a .byok file name extension) by using the Azure Key Vault BYOK toolset. For more information, see How to Generate and Transfer HSM-Protected Keys for Azure Key Vault (http://go.microsoft.com/fwlink/?LinkId=522252). - - - - - - ---------- Example 6: Import a software-protected key ---------- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITPfx' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password - -Vault Name : contoso -Name : ITPfx -Version : 67da57e9cadf48a2ad8d366b115843ab -Id : https://contoso.vault.azure.net:443/keys/ITPfx/67da57e9cadf48a2ad8d366b115843ab -Enabled : True -Expires : -Not Before : -Created : 5/21/2018 11:10:58 PM -Updated : 5/21/2018 11:10:58 PM -Purge Disabled : False -Tags : - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Password variable. For more information, type `Get-Help ConvertTo-SecureString`. The second command creates a software password in the Contoso key vault. The command specifies the location for the key and the password stored in $Password. - - - - - - -------- Example 7: Import a key and assign attributes -------- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -$Expires = (Get-Date).AddYears(2).ToUniversalTime() -$Tags = @{ 'Severity' = 'high'; 'Accounting' = "true" } -Add-AzKeyVaultKey -VaultName 'contoso' -Name 'ITPfxToHSM' -Destination 'HSM' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password -Expires $Expires -Tag $Tags - -Vault Name : contoso -Name : ITPfxToHSM -Version : 929bfc14db84439b823ffd1bedadaf5f -Id : https://contoso.vault.azure.net:443/keys/ITPfxToHSM/929bfc14db84439b823ffd1bedadaf5f -Enabled : True -Expires : 5/21/2020 11:12:43 PM -Not Before : -Created : 5/21/2018 11:13:17 PM -Updated : 5/21/2018 11:13:17 PM -Purge Disabled : False -Tags : Name Value - Severity high - Accounting true - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Password variable. The second command creates a DateTime object by using the Get-Date cmdlet, and then stores that object in the $Expires variable. The third command creates the $tags variable to set tags for high severity and IT. The final command imports a key as an HSM key from the specified location. The command specifies the expiration time stored in $Expires and password stored in $Password, and applies the tags stored in $tags. - - - - - - Example 8: Generate a Key Exchange Key (KEK) for "bring your own key" (BYOK) feature - $key = Add-AzKeyVaultKey -VaultName $vaultName -Name $keyName -Destination HSM -Size 2048 -KeyOps "import" - - Generates a key (referred to as a Key Exchange Key (KEK)). The KEK must be an RSA-HSM key that has only the import key operation. Only Key Vault Premium SKU supports RSA-HSM keys. For more details please refer to https://learn.microsoft.com/azure/key-vault/keys/hsm-protected-keys - - - - - - -------- Example 9: Create a secure key in managed hsm -------- - <# release_policy_template.json -{ - "anyOf": [ - { - "allOf": [ - { - "claim": "<claim name>", - "equals": "<value to match>" - } - ], - "authority": "<issuer>" - } - ], - "version": "1.0.0" -} -#> -Add-AzKeyVaultKey -HsmName testmhsm -Name test-key -KeyType RSA -Exportable -ReleasePolicyPath release_policy.json - -Vault/HSM Name : testmhsm -Name : test-key -Key Type : RSA -Key Size : 2048 -Curve Name : -Version : ed6b026bf0a605042006635713d33ef6 -Id : https://testmhsm.managedhsm.azure.net:443/keys/test-key/ed6b026bf0a605042006635713d33ef6 -Enabled : True -Expires : -Not Before : -Created : 6/2/2022 7:14:37 AM -Updated : 6/2/2022 7:14:37 AM -Recovery Level : Recoverable+Purgeable -Release Policy : - Content Type : application/json; charset=utf-8 - Policy Content : {"anyOf":[{"allOf":[{"claim":"x-ms-sgx-is-debuggable","equals":"true"}],"authority":"htt - ps://sharedeus.eus.attest.azure.net/"}],"version":"1.0.0"} - Immutable : False - - -Tags : - - Create a secure key in managed hsm named testmhsm. Its name is test-key and type is RSA. - - - - - - - Example 10: Add a key for a Confidential VM to a key vault. - - New-AzKeyVault -Name $keyVaultName -Location $location -ResourceGroupName $resourceGroupName -Sku Premium -EnablePurgeProtection -EnabledForDiskEncryption; -$cvmAgent = Get-AzADServicePrincipal -ApplicationId '00001111-aaaa-2222-bbbb-3333cccc4444'; -Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -ObjectId $cvmAgent.id -PermissionsToKeys get,release; - -$keySize = 3072; -Add-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName -Size $keySize -KeyOps wrapKey,unwrapKey -KeyType RSA -Destination HSM -Exportable -UseDefaultCVMPolicy; - -Vault/HSM Name : <Vault Name> -Name : <Key Name> -Key Type : RSA -Key Size : 3072 -Curve Name : -Version : <Version> -Id : <Id> -Enabled : True -Expires : -Not Before : -Created : 9/9/2022 8:36:00 PM -Updated : 9/9/2022 8:36:00 PM -Recovery Level : Recoverable -Release Policy : - Content Type : application/json; charset=utf-8 - Policy Content : <Policy Content> - Immutable : False -Tags : - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultkey - - - Backup-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - - - - Add-AzKeyVaultManagedStorageAccount - Add - AzKeyVaultManagedStorageAccount - - Adds an existing Azure Storage Account to the specified key vault for its keys to be managed by the Key Vault service. - - - - Sets up an existing Azure Storage Account with Key Vault for Storage Account keys to be managed by Key Vault. The Storage Account must already exist. The Storage Keys are never exposed to caller. Key Vault auto regenerates and switches the active key based on the regeneration period. See Azure Key Vault managed storage account - PowerShell (https://learn.microsoft.com/azure/key-vault/key-vault-overview-storage-keys-powershell)for an overview of this feature. - - - - Add-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - AccountResourceId - - Azure resource id of the storage account. - - System.String - - System.String - - - None - - - ActiveKeyName - - Name of the storage account key that must be used for generating sas tokens. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of managed storage account's key for generation of sas tokens. - - - System.Management.Automation.SwitchParameter - - - False - - - DisableAutoRegenerateKey - - Auto regenerate key. If true, then the managed storage account's inactive key gets auto regenerated and becomes the new active key after the regeneration period. If false, then the keys of managed storage account are not auto regenerated. - - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the new active key. - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - AccountResourceId - - Azure resource id of the storage account. - - System.String - - System.String - - - None - - - ActiveKeyName - - Name of the storage account key that must be used for generating sas tokens. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of managed storage account's key for generation of sas tokens. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisableAutoRegenerateKey - - Auto regenerate key. If true, then the managed storage account's inactive key gets auto regenerated and becomes the new active key after the regeneration period. If false, then the keys of managed storage account are not auto regenerated. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the new active key. - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Nullable`1[[System.TimeSpan, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - Example 1: Set an Azure Storage Account with Key Vault to manage its keys - $storage = Get-AzStorageAccount -ResourceGroupName "mystorageResourceGroup" -StorageAccountName "mystorage" -$servicePrincipal = Get-AzADServicePrincipal -ServicePrincipalName cfa8b339-82a2-471a-a3c9-0fc0be7a4093 -New-AzRoleAssignment -ObjectId $servicePrincipal.Id -RoleDefinitionName 'Storage Account Key Operator Service Role' -Scope $storage.Id -$userPrincipalId = $(Get-AzADUser -SearchString "developer@contoso.com").Id -Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $userPrincipalId -PermissionsToStorage get, set -$regenerationPeriod = [System.Timespan]::FromDays(90) -Add-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -AccountResourceId '/subscriptions/<subscription id>/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount' -ActiveKeyName 'key1' -RegenerationPeriod $regenerationPeriod - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key1 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Sets a Storage Account with Key Vault for its keys to be managed by Key Vault. The active key set is 'key1'. This key will be used to generate sas tokens. Key Vault will regenerate 'key2' key after the regeneration period from the time of this command and set it as the active key. This auto regeneration process will continue between 'key1' and 'key2' with a gap of 90 days. - - - - - - Example 2: Set a Classic Azure Storage Account with Key Vault to manage its keys - $regenerationPeriod = [System.Timespan]::FromDays(90) -Add-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -AccountResourceId '/subscriptions/<subscription id>/resourceGroups/myresourcegroup/providers/Microsoft.ClassicStorage/storageAccounts/mystorageaccount' -ActiveKeyName 'Primary' -RegenerationPeriod $regenerationPeriod - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myvault/providers/Microsoft.Cl - assicStorage/storageAccounts/mystorageaccount -Active Key Name : Primary -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Sets a Classic Storage Account with Key Vault for its keys to be managed by Key Vault. The active key set is 'Primary'. This key will be used to generate sas tokens. Key Vault will regenerate 'Secondary' key after the regeneration period from the time of this command and set it as the active key. This auto regeneration process will continue between 'Primary' and 'Secondary' with a gap of 90 days. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultmanagedstorageaccount - - - Az.KeyVault - - - - - - - Add-AzKeyVaultNetworkRule - Add - AzKeyVaultNetworkRule - - Adds a rule meant to restrict access to a key vault based on the client's internet address. - - - - The Add-AzKeyVaultNetworkRule cmdlet grants or restricts access to a key vault to a set of caller designated by their IP addresses or the virtual network to which they belong. The rule has the potential to restrict access for other users, applications, or security groups which have been granted permissions via the access policy. - Please note that any IP range inside `10.0.0.0-10.255.255.255` (private IP addresses) cannot be used to add network rules. - - - - Add-AzKeyVaultNetworkRule - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultNetworkRule - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzKeyVaultNetworkRule - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -Add-AzKeyVaultNetworkRule -VaultName myvault -IpAddressRange "124.56.78.0/24" -VirtualNetworkResourceId $myNetworkResId -PassThru - -Vault Name : myvault -Resource Group Name : myRG -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myRG/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : True -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : 124.56.78.0/24 - Virtual Network Rules : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx- - xxxxxxxxxxxxx/resourcegroups/myRG/providers/microsoft.network/virtualnetworks/myvn - et/subnets/frontendsubnet - -Tags : - - This command adds a network rule to the specified vault, allowing access to the specified IP address from the virtual network identified by $myNetworkResId. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/add-azkeyvaultnetworkrule - - - - - - Backup-AzKeyVault - Backup - AzKeyVault - - Fully backup a managed HSM. - - - - Fully backup a managed HSM to a storage account. Use `Restore-AzKeyVault` to restore the backup. - - - - Backup-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.String - - - - - - - - - - - - - - - Example 1 Backup an HSM to Storage Container using SAS token - - $sasToken = ConvertTo-SecureString -AsPlainText -Force "?sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-10-12T14:42:19Z&st=2020-10-12T06:42:19Z&spr=https&sig=******" - -Backup-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -SasToken $sasToken - -https://{accountName}.blob.core.windows.net/{containerName}/{backupFolder} - - The cmdlet will create a folder (typically named `mhsm-{name}-{timestamp}`) in the storage container, store the backup in that folder and output the folder URI. - - - - - - Example 2 Backup an HSM to Storage Container via User Assigned Managed Identity Authentication - # Make sure an identity is assigend to the Hsm -Update-AzKeyVaultManagedHsm -UserAssignedIdentity "/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}" -Backup-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -UseUserManagedIdentity - -https://{accountName}.blob.core.windows.net/{containerName}/{backupFolder} - - The cmdlet will backup the hsm in specific Storage Container and output the folder URI via User Assigned Managed Identity Authentication. The Managed Identity should be assigned access permission to the storage container. - - - - - - Example 3 Backup an HSM to Storage Container using Storage Account Name and Storage Container - Backup-AzKeyVault -HsmName myHsm -StorageAccountName "{accountName}" -StorageContainerName "{containerName}" -UseUserManagedIdentity - -https://{accountName}.blob.core.windows.net/{containerName}/{backupFolder} - - The cmdlet will create a folder (typically named `mhsm-{name}-{timestamp}`) in the storage container, store the backup in that folder and output the folder URI. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvault - - - - - - Backup-AzKeyVaultCertificate - Backup - AzKeyVaultCertificate - - Backs up a certificate in a key vault. - - - - The Backup-AzKeyVaultCertificate cmdlet backs up a specified certificate in a key vault by downloading it and storing it in a file. If the certificate has multiple versions, all its versions will be included in the backup. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up certificate to any key vault in the subscription that it was backed up from, as long as the vault is in the same Azure geography. Typical reasons to use this cmdlet are: - You want to retain an offline copy of the certificate in case you accidentally delete the original from the vault. - - You created a certificate using Key Vault and now want to clone the object into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultCertificate cmdlet to retrieve the certificate in encrypted format and then use the Restore-AzKeyVaultCertificate cmdlet and specify a key vault in the second region. - - - - Backup-AzKeyVaultCertificate - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - OutputFile - - Output file. The output file to store the backup of the certificate. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultCertificate - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the backup of the certificate. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the backup of the certificate. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a certificate with an automatically generated file name - Backup-AzKeyVaultCertificate -VaultName 'mykeyvault' -Name 'mycert' - -C:\Users\username\mykeyvault-mycert-1527029447.01191 - - This command retrieves the certificate named MyCert from the key vault named MyKeyVault and saves a backup of that certificate to a file that is automatically named for you, and displays the file name. - - - - - - -- Example 2: Back up a certificate to a specified file name -- - Backup-AzKeyVaultCertificate -VaultName 'MyKeyVault' -Name 'MyCert' -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command retrieves the certificate named MyCert from the key vault named MyKeyVault and saves a backup of that certificate to a file named Backup.blob. - - - - - - Example 3: Back up a previously retrieved certificate to a specified file name, overwriting the destination file without prompting. - $cert = Get-AzKeyVaultCertificate -VaultName 'MyKeyVault' -Name 'MyCert' -Backup-AzKeyVaultCertificate -Certificate $cert -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command creates a backup of the certificate named $cert.Name in the vault named $cert.VaultName to a file named Backup.blob, silently overwriting the file if it exists already. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultcertificate - - - - - - Backup-AzKeyVaultKey - Backup - AzKeyVaultKey - - Backs up a key in a key vault. - - - - The Backup-AzKeyVaultKey cmdlet backs up a specified key in a key vault by downloading it and storing it in a file. If there are multiple versions of the key, all versions are included in the backup. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up key to any key vault in the subscription that it was backed up from. Typical reasons to use this cmdlet are: - You want to escrow a copy of your key, so that you have an offline copy in case you accidentally delete your key in your key vault. - - You created a key using Key Vault and now want to clone the key into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultKey cmdlet to retrieve the key in encrypted format and then use the Restore-AzKeyVaultKey cmdlet and specify a key vault in the second region. - - - - Backup-AzKeyVaultKey - - Name - - Specifies the name of the key to back up. - - System.String - - System.String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultKey - - InputObject - - Key bundle to back up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault that contains the key to back up. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to back up. - - System.String - - System.String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - Key bundle to back up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Specifies the name of the key to back up. - - System.String - - System.String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault that contains the key to back up. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a key with an automatically generated file name - Backup-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyKey' - -C:\Users\username\mykeyvault-mykey-1527029447.01191 - - This command retrieves the key named MyKey from the key vault named MyKeyVault and saves a backup of that key to a file that is automatically named for you, and displays the file name. - - - - - - ------ Example 2: Back up a key to a specified file name ------ - Backup-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyKey' -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command retrieves the key named MyKey from the key vaultnamed MyKeyVault and saves a backup of that key to a file named Backup.blob. - - - - - - Example 3: Back up a previously retrieved key to a specified file name, overwriting the destination file without prompting. - $key = Get-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyKey' -Backup-AzKeyVaultKey -Key $key -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command creates a backup of the key named $key.Name in the vault named $key.VaultName to a file named Backup.blob, silently overwriting the file if it exists already. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - Restore-AzKeyVaultKey - - - - - - - Backup-AzKeyVaultManagedStorageAccount - Backup - AzKeyVaultManagedStorageAccount - - Backs up a KeyVault-managed storage account. - - - - The Backup-AzKeyVaultManagedStorageAccount cmdlet backs up a specified managed storage account in a key vault by downloading it and storing it in a file. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up storage account to any key vault in the subscription that it was backed up from, as long as the vault is in the same Azure geography. Typical reasons to use this cmdlet are: - You want to retain an offline copy of the storage account in case you accidentally delete the original from the vault. - - You created a managed storage account using Key Vault and now want to clone the object into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultManagedStorageAccount cmdlet to retrieve the managed storage account in encrypted format and then use the Restore-AzKeyVaultManagedStorageAccount cmdlet and specify a key vault in the second region. - - - - Backup-AzKeyVaultManagedStorageAccount - - InputObject - - Storage account bundle to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - OutputFile - - Output file. The output file to store the storage account backup. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Backup-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the storage account backup. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Overwrite the given file if it exists - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account bundle to be backed up, pipelined in from the output of a retrieval call. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - OutputFile - - Output file. The output file to store the storage account backup. If not specified, a default filename will be generated. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a managed storage account with an automatically generated file name - Backup-AzKeyVaultManagedStorageAccount -VaultName 'MyKeyVault' -Name 'MyMSAK' - -C:\Users\username\mykeyvault-mymsak-1527029447.01191 - - This command retrieves the managed storage account named MyMSAK from the key vault named MyKeyVault and saves a backup of that managed storage account to a file that is automatically named for you, and displays the file name. - - - - - - Example 2: Back up a managed storage account to a specified file name - Backup-AzKeyVaultKey -VaultName 'MyKeyVault' -Name 'MyMSAK' -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command retrieves the managed storage account named MyMSAK from the key vault named MyKeyVault and saves a backup of that managed storage account to a file named Backup.blob. - - - - - - Example 3: Back up a previously retrieved managed storage account to a specified file name, overwriting the destination file without prompting. - $msak = Get-AzKeyVaultManagedStorageAccount -VaultName 'MyKeyVault' -Name 'MyMSAK' -Backup-AzKeyVaultManagedStorageAccount -StorageAccount $msak -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command creates a backup of the managed storage account named $msak.Name in the vault named $msak.VaultName to a file named Backup.blob, silently overwriting the file if it exists already. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultmanagedstorageaccount - - - - - - Backup-AzKeyVaultSecret - Backup - AzKeyVaultSecret - - Backs up a secret in a key vault. - - - - The Backup-AzKeyVaultSecret cmdlet backs up a specified secret in a key vault by downloading it and storing it in a file. If there are multiple versions of the secret, all versions are included in the backup. Because the downloaded content is encrypted, it cannot be used outside of Azure Key Vault. You can restore a backed-up secret to any key vault in the subscription that it was backed up from. Typical reasons to use this cmdlet are: - You want to escrow a copy of your secret, so that you have an offline copy in case you accidentally delete your secret in your key vault. - - You added a secret to a key vault and now want to clone the secret into a different Azure region, so that you can use it from all instances of your distributed application. Use the Backup-AzKeyVaultSecret cmdlet to retrieve the secret in encrypted format and then use the Restore-AzKeyVaultSecret cmdlet and specify a key vault in the second region. (Note that the regions must belong to the same geography.) - - - - Backup-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Backup-AzKeyVaultSecret - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Backup-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault that contains the secret to back up. - - String - - String - - - None - - - Name - - Specifies the name of the secret to back up. - - String - - String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Prompts you for confirmation before overwriting the output file, if that exists. - - SwitchParameter - - SwitchParameter - - - False - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Secret to be backed up, pipelined in from the output of a retrieval call. - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Specifies the name of the secret to back up. - - String - - String - - - None - - - OutputFile - - Specifies the output file in which the backup blob is stored. If you do not specify this parameter, this cmdlet generates a file name for you. If you specify the name of an existing output file, the operation will not complete and returns an error message that the backup file already exists. - - String - - String - - - None - - - VaultName - - Specifies the name of the key vault that contains the secret to back up. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Back up a secret with an automatically generated file name - Backup-AzKeyVaultSecret -VaultName 'MyKeyVault' -Name 'MySecret' - -C:\Users\username\mykeyvault-mysecret-1527029447.01191 - - This command retrieves the secret named MySecret from the key vault named MyKeyVault and saves a backup of that secret to a file that is automatically named for you, and displays the file name. - - - - - - Example 2: Back up a secret to a specified file name, overwriting the existing file without prompting - Backup-AzKeyVaultSecret -VaultName 'MyKeyVault' -Name 'MySecret' -OutputFile 'C:\Backup.blob' -Force - -C:\Backup.blob - - This command retrieves the secret named MySecret from the key vaultnamed MyKeyVault and saves a backup of that secret to a file named Backup.blob. - - - - - - Example 3: Back up a secret previously retrieved to a specified file name - $secret = Get-AzKeyVaultSecret -VaultName 'MyKeyVault' -Name 'MySecret' -Backup-AzKeyVaultSecret -Secret $secret -OutputFile 'C:\Backup.blob' - -C:\Backup.blob - - This command uses the $secret object's vault name and name to retrieves the secret and saves its backup to a file named Backup.blob. - - - - - - Example 4: Back up a secret with an automatically generated file name (using Uri) - Backup-AzKeyVaultSecret -Id 'https://MyKeyVault.vault.azure.net:443/secrets/MySecret' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/backup-azkeyvaultsecret - - - Set-AzKeyVaultSecret - - - - Get-AzKeyVaultSecret - - - - Remove-AzKeyVaultSecret - - - - Restore-AzKeyVaultSecret - - - - - - - Export-AzKeyVaultSecurityDomain - Export - AzKeyVaultSecurityDomain - - Exports the security domain data of a managed HSM. - - - - Exports the security domain data of a managed HSM for importing on another HSM. - - - - Export-AzKeyVaultSecurityDomain - - Certificates - - Paths to the certificates that are used to encrypt the security domain data. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - OutputPath - - Specify the path where security domain data will be downloaded to. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - Quorum - - The minimum number of shares required to decrypt the security domain for recovery. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Export-AzKeyVaultSecurityDomain - - Certificates - - Paths to the certificates that are used to encrypt the security domain data. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutputPath - - Specify the path where security domain data will be downloaded to. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - Quorum - - The minimum number of shares required to decrypt the security domain for recovery. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Certificates - - Paths to the certificates that are used to encrypt the security domain data. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Specify whether to overwrite existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutputPath - - Specify the path where security domain data will be downloaded to. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Quorum - - The minimum number of shares required to decrypt the security domain for recovery. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Export-AzKeyVaultSecurityDomain -Name testmhsm -Certificates sd1.cer, sd2.cer, sd3.cer -OutputPath sd.ps.json -Quorum 2 - - This command retrieves the managed HSM named testmhsm and saves a backup of that managed HSM security domain to the specified output file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/export-azkeyvaultsecuritydomain - - - - - - Get-AzKeyVault - Get - AzKeyVault - - Gets key vaults. - - - - The Get-AzKeyVault cmdlet gets information about the key vaults in a subscription. You can view all key vaults instances in a subscription, or filter your results by a resource group or a particular key vault. Note that although specifying the resource group is optional for this cmdlet when you get a single key vault, you should do so for better performance. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /groups/{id} - - - - Get-AzKeyVault - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted vaults in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - - Get-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted vaults in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - - Get-AzKeyVault - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault or key vaults being queried. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted vaults in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault or key vaults being queried. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - - - - - - - - - - - - -- Example 1: Get all key vaults in your current subscription -- - Get-AzKeyVault - -Vault Name : myvault1 -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.Ke - yVault/vaults/myvault1 -Tags : - - -Vault Name : myvault2 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault2 -Tags : - -Vault Name : myvault3 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault3 -Tags : - - This command gets all the key vaults in your current subscription. - - - - - - ------------- Example 2: Get a specific key vault ------------- - Get-AzKeyVault -VaultName 'myvault' - -Vault Name : myvault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : True -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update - -Tags : - - This command gets the key vault named myvault in your current subscription. - - - - - - -------- Example 3: Get key vaults in a resource group -------- - Get-AzKeyVault -ResourceGroupName 'myrg1' - -Vault Name : myvault2 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault2 -Tags : - -Vault Name : myvault3 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault3 -Tags : - - This command gets all the key vaults in the resource group named ContosoPayRollResourceGroup. - - - - - - Example 4: Get all deleted key vaults in your current subscription - Get-AzKeyVault -InRemovedState - -Vault Name : myvault4 -Location : westus -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.KeyVault/locations/westu - s/deletedVaults/myvault4 -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.K - eyVault/vaults/myvault4 -Deletion Date : 5/24/2018 9:33:24 PM -Scheduled Purge Date : 8/22/2018 9:33:24 PM -Tags : - - This command gets all the deleted key vaults in your current subscription. - - - - - - -------------- Example 5: Get a deleted key vault -------------- - Get-AzKeyVault -VaultName 'myvault4' -Location 'westus' -InRemovedState - -Vault Name : myvault4 -Location : westus -Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.KeyVault/locations/westu - s/deletedVaults/myvault4 -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.K - eyVault/vaults/myvault4 -Deletion Date : 5/24/2018 9:33:24 PM -Scheduled Purge Date : 8/22/2018 9:33:24 PM -Tags : - - This command gets the deleted key vault information named myvault4 in your current subscription and in westus region. - - - - - - ---------- Example 6: Get key vaults using filtering ---------- - Get-AzKeyVault -VaultName 'myvault*' - -Vault Name : myvault2 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault2 -Tags : - -Vault Name : myvault3 -Resource Group Name : myrg1 -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg1/providers/Microsoft.Ke - yVault/vaults/myvault3 -Tags : - - This command gets all the key vaults in the subscription that start with "myvault". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvault - - - New-AzKeyVault - - - - Remove-AzKeyVault - - - - - - - Get-AzKeyVaultCertificate - Get - AzKeyVaultCertificate - - Gets a certificate from a key vault. - - - - The Get-AzKeyVaultCertificate cmdlet gets the specified certificate or the versions of a certificate from a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultCertificate - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificate - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludePending - - Specifies whether to include pending certificates in the output - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeVersions - - Indicates that this operation gets all versions of the certificate. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Specifies whether to include previously deleted certificates in the output - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the certificate to get. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Version - - Specifies the version of a certificate. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - - - - - - - - - - - - ----------------- Example 1: Get a certificate ----------------- - Get-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" - -Name : testCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://contoso.vault.azure.net:443/keys/TestCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SecretId : https://contoso.vault.azure.net:443/secrets/TestCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:21:45 PM -Updated : 2/8/2016 11:21:45 PM - - This command gets the certificate named `TestCert01` from the key vault named `ContosoKV01` - - - - - - ------------ Example 2: Get cert and save it as pfx ------------ - $CertBase64 = Get-AzKeyVaultSecret -VaultName $vaultName -Name $certName -AsPlainText -$CertBytes = [Convert]::FromBase64String($CertBase64) -Set-Content -Path cert.pfx -Value $CertBytes -AsByteStream - - This command gets the certificate named `$certName` from the key vault named `$vaultName`. These commands access secret `$certName` and then save the content as a pfx file. - - - - - - Example 3: Get all the certificates that have been deleted but not purged for this key vault. - Get-AzKeyVaultCertificate -VaultName 'contoso' -InRemovedState - -DeletedDate : 5/24/2018 6:08:32 PM -Enabled : True -Expires : 11/24/2018 6:08:13 PM -NotBefore : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Tags : -VaultName : contoso -Name : test1 -Version : -Id : https://contoso.vault.azure.net:443/certificates/test1 - -ScheduledPurgeDate : 8/22/2018 6:10:47 PM -DeletedDate : 5/24/2018 6:10:47 PM -Enabled : True -Expires : 11/24/2018 6:09:44 PM -NotBefore : 5/24/2018 5:59:44 PM -Created : 5/24/2018 6:09:44 PM -Updated : 5/24/2018 6:09:44 PM -Tags : -VaultName : contoso -Name : test2 -Version : -Id : https://contoso.vault.azure.net:443/certificates/test2 - - This command gets all the certificates that have been previously deleted, but not purged, in the key vault named Contoso. - - - - - - Example 4: Gets the certificate MyCert that has been deleted but not purged for this key vault. - Get-AzKeyVaultCertificate -VaultName 'contoso' -Name 'test1' -InRemovedState - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 5/24/2018 10:58:13 AM - - [Not After] - 11/24/2018 10:08:13 AM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://contoso.vault.azure.net:443/keys/test1/7fe415d5518240c1a6fce89986b8d334 -SecretId : https://contoso.vault.azure.net:443/secrets/test1/7fe415d5518240c1a6fce89986b8d334 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Recoverable+Purgeable -ScheduledPurgeDate : 8/22/2018 6:08:32 PM -DeletedDate : 5/24/2018 6:08:32 PM -Enabled : True -Expires : 11/24/2018 6:08:13 PM -NotBefore : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Tags : -VaultName : contoso -Name : test1 -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://contoso.vault.azure.net:443/certificates/test1/7fe415d5518240c1a6fce89986b8d334 - - This command gets the certificate named 'MyCert' that has been previously deleted, but not purged, in the key vault named Contoso. This command will return metadata such as the deletion date, and the scheduled purging date of this deleted certificate. - - - - - - --------- Example 5: List certificates using filtering --------- - Get-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "test*" - -Enabled : True -Expires : 8/5/2019 2:39:25 AM -NotBefore : 2/5/2019 2:29:25 AM -Created : 2/5/2019 2:39:25 AM -Updated : 2/5/2019 2:39:25 AM -Tags : -VaultName : ContosoKV01 -Name : test1 -Version : -Id : https://ContosoKV01.vault.azure.net:443/certificates/test1 - -Enabled : True -Expires : 8/5/2019 2:39:25 AM -NotBefore : 2/5/2019 2:29:25 AM -Created : 2/5/2019 2:39:25 AM -Updated : 2/5/2019 2:39:25 AM -Tags : -VaultName : ContosoKV01 -Name : test2 -Version : -Id : https://ContosoKV01.vault.azure.net:443/certificates/test2 - - This command gets all certificates starting with "test" from the key vault named ContosoKV01. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificate - - - Add-AzKeyVaultCertificate - - - - Import-AzKeyVaultCertificate - - - - Remove-AzKeyVaultCertificate - - - - - - - Get-AzKeyVaultCertificateContact - Get - AzKeyVaultCertificateContact - - Gets contacts that are registered for certificate notifications for a key vault. - - - - The Get-AzKeyVaultCertificateContact cmdlet gets contacts that are registered for certificate notifications for a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificateContact - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateContact - - ResourceId - - KeyVault Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateContact - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateContact - - - - - - - - - - - - - - ----------- Example 1: Get all certificate contacts ----------- - $Contacts = Get-AzKeyVaultCertificateContact -VaultName "Contoso" - -Email VaultName ------ --------- -username@microsoft.com Contoso -username1@microsoft.com Contoso - - This command gets all of the contacts for the certificate objects in the Contoso key vault, and then stores them in the $Contacts variable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificatecontact - - - Add-AzKeyVaultCertificateContact - - - - Remove-AzKeyVaultCertificateContact - - - - - - - Get-AzKeyVaultCertificateIssuer - Get - AzKeyVaultCertificateIssuer - - Gets a certificate issuer for a key vault. - - - - The Get-AzKeyVaultCertificateIssuer cmdlet gets a specified certificate issuer or all certificate issuers for a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificateIssuer - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateIssuer - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the certificate issuer to get. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuer - - - - - - - - - - - - - - ------------- Example 1: Get a certificate issuer ------------- - Get-AzKeyVaultCertificateIssuer -VaultName "Contosokv01" -Name "TestIssuer01" - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer01 -IssuerProvider : Test -VaultName : Contosokv01 - - This command gets the certificate issuer named TestIssuer01. - - - - - - ----- Example 2: List certificate issuers using filtering ----- - Get-AzKeyVaultCertificateIssuer -VaultName "Contosokv01" -Name "test*" - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer01 -IssuerProvider : Test -VaultName : Contosokv01 - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer02 -IssuerProvider : Test -VaultName : Contosokv01 - - This command gets the certificate issuers that start with "test". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificateissuer - - - Remove-AzKeyVaultCertificateIssuer - - - - Set-AzKeyVaultCertificateIssuer - - - - - - - Get-AzKeyVaultCertificateOperation - Get - AzKeyVaultCertificateOperation - - Gets the status of a certificate operation. - - - - The Get-AzKeyVaultCertificateOperation cmdlet gets the status of a certificate operation. - - - - Get-AzKeyVaultCertificateOperation - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificateOperation - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ----- Example 1: Get the status of a certificate operation ----- - Get-AzKeyVaultCertificateOperation -VaultName "contosoKV01" -Name "TestCert01" - -Id : https://contosoKV01.vault.azure.net/certificates/TestCert01/pending -Status : inProgress -StatusDetails : Pending certificate created. Certificate request is in progress. This may take some time - based on the issuer provider. Please check again later. -RequestId : 32a63e80568442a2892dafb9f7cf366t -Target : -Issuer : Self -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== -ErrorCode : -ErrorMessage : -Name : -VaultName : - - This command gets the status of the certificate operation for TestCert01 on the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificateoperation - - - Remove-AzKeyVaultCertificateOperation - - - - Stop-AzKeyVaultCertificateOperation - - - - - - - Get-AzKeyVaultCertificatePolicy - Get - AzKeyVaultCertificatePolicy - - Gets the policy for a certificate in a key vault. - - - - The Get-AzKeyVaultCertificatePolicy cmdlet gets the policy for a certificate in a key vault in Azure Key Vault. - - - - Get-AzKeyVaultCertificatePolicy - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------- Example 1: Get a certificate policy ------------- - Get-AzKeyVaultCertificatePolicy -VaultName "ContosoKV01" -Name "TestCert01" - -SecretContentType : application/x-pkcs12 -Kty : RSA -KeySize : 2048 -Exportable : True -ReuseKeyOnRenewal : True -SubjectName : CN=contoso.com -DnsNames : -Ekus : {1.3.6.1.5.5.7.3.1, 1.3.6.1.5.5.7.3.2} -ValidityInMonths : 6 -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : 80 -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -Enabled : True -Created : 2/8/2016 11:10:29 PM -Updated : 2/8/2016 11:10:29 PM - - This command gets the certificate policy for TestCert01 certificate in the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultcertificatepolicy - - - New-AzKeyVaultCertificatePolicy - - - - Set-AzKeyVaultCertificatePolicy - - - - - - - Get-AzKeyVaultKey - Get - AzKeyVaultKey - - Gets Key Vault keys. Please notes that detailed information about a key, like key type or key size, only available when querying a specific key version. - - - - The Get-AzKeyVaultKey cmdlet gets Azure Key Vault keys. This cmdlet gets a specific Microsoft.Azure.Commands.KeyVault.Models.KeyBundle or a list of all KeyBundle objects in a key vault or by version. - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - - System.Management.Automation.SwitchParameter - - - False - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultKey - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - HsmObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - HsmResourceId - - HSM Resource Id. - - System.String - - System.String - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a key. The current version of a key is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the key with the specified Name . - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Specifies whether to show the previously deleted keys in the output - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the key bundle to get. - - System.String - - System.String - - - None - - - OutFile - - Specifies the output file for which this cmdlet saves the key. The public key is saved in PEM format by default. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault from which this cmdlet gets keys. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your selected environment. - - System.String - - System.String - - - None - - - Version - - Specifies the key version. This cmdlet constructs the FQDN of a key based on the key vault name, your currently selected environment, the key name, and the key version. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - - - - - - - - - - - - - ---------- Example 1: Get all the keys in a key vault ---------- - Get-AzKeyVaultKey -VaultName 'contoso' - -Vault/HSM Name : contoso -Name : test1 -Version : -Id : https://contoso.vault.azure.net:443/keys/test1 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - -Vault Name : contoso -Name : test2 -Version : -Id : https://contoso.vault.azure.net:443/keys/test2 -Enabled : True -Expires : 11/24/2018 6:09:44 PM -Not Before : 5/24/2018 5:59:44 PM -Created : 5/24/2018 6:09:44 PM -Updated : 5/24/2018 6:09:44 PM -Purge Disabled : False -Tags : - - This command gets all the keys in the key vault named Contoso. - - - - - - --------- Example 2: Get the current version of a key --------- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test1' - -Vault/HSM Name : contoso -Name : test1 -Key Type : RSA -Key Size : 2048 -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://contoso.vault.azure.net:443/keys/test1/7fe415d5518240c1a6fce89986b8d334 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - - This command gets the current version of the key named test1 in the key vault named Contoso. - - - - - - ------------- Example 3: Get all versions of a key ------------- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test1' -IncludeVersions - -Vault/HSM Name : contoso -Name : test1 -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://contoso.vault.azure.net:443/keys/test1/7fe415d5518240c1a6fce89986b8d334 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - -Vault/HSM Name : contoso -Name : test1 -Version : e4e95940e669407fbdb4298bc21a3e1d -Id : https://contoso.vault.azure.net:443/keys/test1/e4e95940e669407fbdb4298bc21a3e1d -Enabled : False -Expires : 11/24/2018 6:08:08 PM -Not Before : 5/24/2018 5:58:08 PM -Created : 5/24/2018 6:08:08 PM -Updated : 5/24/2018 6:08:08 PM -Purge Disabled : False -Tags : - - This command gets all versions the key named ITPfx in the key vault named Contoso. - - - - - - ---------- Example 4: Get a specific version of a key ---------- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test1' -Version 'e4e95940e669407fbdb4298bc21a3e1d' - -Vault/HSM Name : contoso -Name : test1 -Key Type : RSA -Key Size : 2048 -Version : e4e95940e669407fbdb4298bc21a3e1d -Id : https://contoso.vault.azure.net:443/keys/test1/e4e95940e669407fbdb4298bc21a3e1d -Enabled : False -Expires : 11/24/2018 6:08:08 PM -Not Before : 5/24/2018 5:58:08 PM -Created : 5/24/2018 6:08:08 PM -Updated : 5/24/2018 6:08:08 PM -Purge Disabled : False -Tags : - - This command gets a specific version of the key named test1 in the key vault named Contoso. After running this command, you can inspect various properties of the key by navigating the $Key object. - - - - - - Example 5: Get all the keys that have been deleted but not purged for this key vault - Get-AzKeyVaultKey -VaultName 'contoso' -InRemovedState - -Vault/HSM Name : contoso -Name : test3 -Id : https://contoso.vault.azure.net:443/keys/test3 -Deleted Date : 5/24/2018 8:32:42 PM -Scheduled Purge Date : 8/22/2018 8:32:42 PM -Enabled : True -Expires : -Not Before : -Created : 5/24/2018 8:32:27 PM -Updated : 5/24/2018 8:32:27 PM -Purge Disabled : False -Tags : - - This command gets all the keys that have been previously deleted, but not purged, in the key vault named Contoso. - - - - - - Example 6: Gets the key ITPfx that has been deleted but not purged for this key vault. - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName 'test3' -InRemovedState - -Vault/HSM Name : contoso -Name : test3 -Id : https://contoso.vault.azure.net:443/keys/test3/1af807cc331a49d0b52b7c75e1b2366e -Deleted Date : 5/24/2018 8:32:42 PM -Scheduled Purge Date : 8/22/2018 8:32:42 PM -Enabled : True -Expires : -Not Before : -Created : 5/24/2018 8:32:27 PM -Updated : 5/24/2018 8:32:27 PM -Purge Disabled : False -Tags : - - This command gets the key test3 that has been previously deleted, but not purged, in the key vault named Contoso. This command will return metadata such as the deletion date, and the scheduled purging date of this deleted key. - - - - - - -- Example 7: Get all the keys in a key vault using filtering -- - Get-AzKeyVaultKey -VaultName 'contoso' -KeyName "test*" - -Vault/HSM Name : contoso -Name : test1 -Version : -Id : https://contoso.vault.azure.net:443/keys/test1 -Enabled : True -Expires : 11/24/2018 6:08:13 PM -Not Before : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Purge Disabled : False -Tags : - -Vault/HSM Name : contoso -Name : test2 -Version : -Id : https://contoso.vault.azure.net:443/keys/test2 -Enabled : True -Expires : 11/24/2018 6:09:44 PM -Not Before : 5/24/2018 5:59:44 PM -Created : 5/24/2018 6:09:44 PM -Updated : 5/24/2018 6:09:44 PM -Purge Disabled : False -Tags : - - This command gets all the keys in the key vault named Contoso that start with "test". - - - - - - ------- Example 8: Download a public key as a .pem file ------- - $path = "D:\public.pem" -Get-AzKeyVaultKey -VaultName $vaultName -KeyName $keyName -OutFile $path - - You can download the public key of a RSA key by specifying the `-OutFile` parameter. This is one step of importing HSM-protected keys to Azure Key Vault. See https://learn.microsoft.com/azure/key-vault/keys/hsm-protected-keys - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - Undo-AzKeyVaultKeyRemoval - - - - - - - Get-AzKeyVaultKeyRotationPolicy - Get - AzKeyVaultKeyRotationPolicy - - Gets the key rotation policy for the specified key in Key Vault. - - - - This cmdlet requires the keys/get permission. It returns key rotation policy for the specified key. - - - - Get-AzKeyVaultKeyRotationPolicy - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultKeyRotationPolicy - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key - -Id : -VaultName : test-kv -KeyName : test-key -LifetimeActions : {[Action: Notify, TimeAfterCreate: , TimeBeforeExpiry: P30D]} -ExpiresIn : -CreatedOn : -UpdatedOn : - - This cmdlet gets the key rotation policy for test-kv. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultkeyrotationpolicy - - - Set-AzKeyVaultKeyRotationPolicy.md - - - - Invoke-AzKeyVaultKeyRotation.md - - - - - - - Get-AzKeyVaultManagedHsm - Get - AzKeyVaultManagedHsm - - Get managed HSMs. - - - - The Get-AzKeyVaultManagedHsm cmdlet gets information about the managed HSMs in a subscription. You can view all managed HSMs instances in a subscription, or filter your results by a resource group or a particular managed HSM. Note that although specifying the resource group is optional for this cmdlet when you get a single managed HSM, you should do so for better performance. - - - - Get-AzKeyVaultManagedHsm - - Name - - HSM name. Cmdlet constructs the FQDN of a HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted managed HSM pool in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - Get-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted managed HSM pool in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - Get-AzKeyVaultManagedHsm - - Name - - HSM name. Cmdlet constructs the FQDN of a HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the managed HSM being queried. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted managed HSM pool in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - Name - - HSM name. Cmdlet constructs the FQDN of a HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the managed HSM being queried. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Specifies the key and optional value of the specified tag to filter the list of managed HSMs by. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - - - - - - - - Example 1: Get all managed HSMs in your current subscription - - Get-AzKeyVaultManagedHsm - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm test-rg eastus StandardB1 Succeeded Active - - This command gets all managed HSMs in your current subscription. - - - - - - ------------ Example 2: Get a specific managed HSM ------------ - Get-AzKeyVaultManagedHsm -Name 'myhsm' - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm test-rg eastus StandardB1 Succeeded Active - - This command gets the managed HSM named myhsm in your current subscription. - - - - - - ------- Example 3: Get managed HSMs in a resource group ------- - Get-AzKeyVaultManagedHsm -ResourceGroupName 'myrg1' - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm myrg1 eastus2euap StandardB1 Succeeded Active - - This command gets all managed HSMs in the resource group named myrg1. - - - - - - --------- Example 4: Get managed HSMs using filtering --------- - Get-AzKeyVaultManagedHsm -Name 'myhsm*' - -Name Resource Group Name Location SKU ProvisioningState Security Domain ActivationStatus ----- ------------------- -------- --- ----------------- -------------------------------- -myhsm myrg1 eastus2euap StandardB1 Succeeded Active - - This command gets all managed HSMs in the subscription that start with "myhsm". - - - - - - ------------- Example 5: List deleted managed HSMs ------------- - Get-AzKeyVaultManagedHsm -InRemovedState - -Name Location DeletionDate ScheduledPurgeDate Purge Protection Enabled? ----- -------- ------------ ------------------ ------------------------- -xxxxxxxx-mhsm-4op2n2g4xe eastus2 12/30/2021 2:29:00 AM 3/30/2022 2:29:00 AM True -xxxxxxx-mhsm-ertopo7tnxa westus 12/29/2021 11:48:42 PM 3/29/2022 11:48:42 PM True -xxxxxxx-mhsm-gg66fgctz67 westus 12/29/2021 11:48:42 PM 3/29/2022 11:48:42 PM False -xxxxxxx-mhsm-2m5jiop6mfo westcentralus 12/30/2021 12:26:14 AM 3/30/2022 12:26:14 AM True - - This command gets all deleted managed HSMs in current subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedhsm - - - New-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - Get-AzKeyVaultManagedStorageAccount - Get - AzKeyVaultManagedStorageAccount - - Gets Key Vault managed Azure Storage Accounts. - - - - Gets a Key Vault managed Azure Storage Account if the name of the account is specified and the account keys are managed by the specified vault. If the account name is not specified, then all the accounts whose keys are managed by specified vault are listed. - - - - Get-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultManagedStorageAccount - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultManagedStorageAccount - - ResourceId - - Vault resource id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage accounts in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceId - - Vault resource id. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccount - - - - - - - - - - - - - - ---- Example 1: List all Key Vault managed Storage Accounts ---- - Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Lists all the accounts whose keys are managed by vault 'myvault' - - - - - - ------ Example 2: Get a Key Vault managed Storage Account ------ - Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -Name 'mystorageaccount' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/maddie1/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key2 -Auto Regenerate Key : False -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Gets the details of Key Vault managed Storage Account of 'mystorageaccount' if its keys are managed by vault 'myvault' - - - - - - Example 3: List all Key Vault managed Storage Accounts using filtering - Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -Name "test*" - -Id : https://myvault.vault.azure.net:443/storage/test1 -Vault Name : myvault -AccountName : test1 -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/test1 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - -Id : https://myvault.vault.azure.net:443/storage/test2 -Vault Name : myvault -AccountName : test2 -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/test2 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Lists all the accounts whose keys are managed by vault 'myvault' that start with "test" - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedstorageaccount - - - Azure PowerShell Key Vault cmdlets - - - - - - - Get-AzKeyVaultManagedStorageSasDefinition - Get - AzKeyVaultManagedStorageSasDefinition - - Gets Key Vault managed Storage SAS Definitions. - - - - Gets a Key Vault managed Storage SAS Definition if the name of the definition is specified. If the definition name is not specified, then all the SAS definitions associated with the specified Key Vault managed Storage Account in the vault are listed. - - - - Get-AzKeyVaultManagedStorageSasDefinition - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage sas definitions in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzKeyVaultManagedStorageSasDefinition - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage sas definitions in the output. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - InRemovedState - - Specifies whether to show the previously deleted storage sas definitions in the output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinition - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - - - - - - - Example 1: List all Key Vault managed Storage SAS Definitions - Get-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Lists all the SAS definitions associated with Key Vault managed Storage Account 'mystorageaccount' managed by vault 'myvault' - - - - - - ------ Example 2: Get a Key Vault managed Storage Account ------ - Get-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name 'accountsas' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas -Secret Id : https://myvault.vault.azure.net/secrets/mystorageaccount-accountsas -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas -Parameter : -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Gets the details of SAS Definition 'accountsas' associated with Key Vault managed Storage Account 'mystorageaccount' managed by vault 'myvault'. - - - - - - Example 3: List all Key Vault managed Storage SAS Definitions using filtering - Get-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name "account*" - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas1 -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas1 -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/accountsas2 -Vault Name : myvault -AccountName : mystorageaccount -Name : accountsas2 -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Lists all the SAS definitions associated with Key Vault managed Storage Account 'mystorageaccount' managed by vault 'myvault' that start with "account". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultmanagedstoragesasdefinition - - - Remove-AzKeyVaultManagedStorageSasDefinition - - - - Set-AzKeyVaultManagedStorageSasDefinition - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - - - - - - Get-AzKeyVaultRandomNumber - Get - AzKeyVaultRandomNumber - - Get the requested number of bytes containing random values from a managed HSM. - - - - Get the requested number of bytes containing random values from a managed HSM. - - - - Get-AzKeyVaultRandomNumber - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultRandomNumber - - InputObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultRandomNumber - - ResourceId - - HSM resource id. - - System.String - - System.String - - - None - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - AsBase64String - - If specified, return random number as base-64 digit. By default, this command retruns random number as byte array. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Count - - The requested number of random bytes. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - ResourceId - - HSM resource id. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - System.String - - - - - - - - System.Byte - - - - - - - - - - - - - - Example 1: Get requested number of random bytes by managed HSM name - Get-AzKeyVaultRandomNumber -HsmName testmhsm -Count 10 - -158 -171 -96 -142 -109 -28 -1 -85 -178 -201 - - This command gets 10 random bytes from managed HSM "testmhsm" - - - - - - --- Example 2: Get random number as base64 string by piping --- - Get-AzKeyVaultManagedHsm -HsmName bezmhsm2022 | Get-AzKeyVaultRandomNumber -Count 10 -AsBase64String - -G1CsEqa9yUp/EA== - - This command gets 10 random bytes as base-64 string from managed HSM "testmhsm" - - - - - - --------- Example 3: Get random number by resource id --------- - Get-AzKeyVaultRandomNumber -ResourceId /subscriptions/0b1fxxxx-xxxx-xxxx-aec3-xxxx72f09590/resourceGroups/test-rg/provders/Microsoft.KeyVault/managedHSMs/testhsm -Count 10 - -158 -171 -96 -142 -109 -28 -1 -85 -178 -201 - - This command gets 10 random bytes from managed HSM with specified resource id - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultrandomnumber - - - - - - Get-AzKeyVaultRoleAssignment - Get - AzKeyVaultRoleAssignment - - Get or list role assignments of a managed HSM. Use respective parameters to list assignments to a specific user or a role definition. - - - - Use the `Get-AzKeyVaultRoleAssignment` command to list all role assignments that are effective on a scope. Without any parameters, this command returns all the role assignments made under the managed HSM. This list can be filtered using filtering parameters for principal, role and scope. The subject of the assignment must be specified. To specify a user, use SignInName or Microsoft Entra ObjectId parameters. To specify a security group, use Microsoft Entra ObjectId parameter. And to specify a Microsoft Entra application, use ApplicationId or ObjectId parameters. The role that is being assigned must be specified using the RoleDefinitionName or RoleDefinitionId parameter. The scope at which access is being granted may be specified. It defaults to "/". - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /groups/{id} - - - - Get-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultRoleAssignment -HsmName myHsm - -RoleDefinitionName DisplayName ObjectType Scope ------------------- ----------- ---------- ----- -Managed HSM Administrator User 1 (user1@microsoft.com) User / -Managed HSM Crypto Auditor User 2 (user2@microsoft.com) User /keys -Managed HSM Backup User 2 (user2@microsoft.com) User / -Managed HSM Administrator User 2 (user2@microsoft.com) User / - - This example lists all role assignments of "myHsm" on all the scope. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzKeyVaultRoleAssignment -HsmName myHsm -SignInName user1@microsoft.com -Scope "/keys" - -RoleDefinitionName DisplayName ObjectType Scope ------------------- ----------- ---------- ----- -Managed HSM Crypto Auditor User 1 (user1@microsoft.com) User /keys -Managed HSM Backup User 1 (user1@microsoft.com) User /keys - - This example lists all role assignments of "myHsm" on "/keys" scope and filters the result by user sign-in name. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultroleassignment - - - - - - Get-AzKeyVaultRoleDefinition - Get - AzKeyVaultRoleDefinition - - List role definitions of a given managed HSM at a given scope. - - - - List role definitions of a given managed HSM at a given scope. - - - - Get-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Custom - - If specified, only displays the custom created roles in the directory. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - Get-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - - - Custom - - If specified, only displays the custom created roles in the directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultRoleDefinition -HsmName myHsm -Scope "/keys" - -RoleName Description Permissions --------- ----------- ----------- -Managed HSM Administrator 1 permission(s) -Managed HSM Crypto Officer 1 permission(s) -Managed HSM Crypto User 1 permission(s) -Managed HSM Policy Administrator 1 permission(s) -Managed HSM Crypto Auditor 1 permission(s) -Managed HSM Crypto Service Encryption 1 permission(s) -Managed HSM Backup 1 permission(s) - - The example lists all the roles at "/keys" scope. - - - - - - -------------------------- Example 2 -------------------------- - $backupRole = Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleDefinitionName "Managed HSM Backup User" - -$backupRole.Permissions - -Actions NotActions DataActions NotDataActions -------- ---------- ----------- -------------- -0 action(s) 0 action(s) 3 action(s) 0 action(s) - -$backupRole.Permissions.DataActions - -Microsoft.KeyVault/managedHsm/backup/start/action -Microsoft.KeyVault/managedHsm/backup/status/action -Microsoft.KeyVault/managedHsm/keys/backup/action - - The example gets the "Managed HSM Backup" role and inspects its permissions. - - - - - - -------------------------- Example 3 -------------------------- - Get-AzKeyVaultRoleDefinition -HsmName myHsm -Custom - - This example lists all the custom role definitions belong to "myHsm". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultroledefinition - - - - - - Get-AzKeyVaultSecret - Get - AzKeyVaultSecret - - Gets the secrets in a key vault. - - - - The Get-AzKeyVaultSecret cmdlet gets secrets in a key vault. This cmdlet gets a specific secret or all the secrets in a key vault. - - - - Get-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - - Get-AzKeyVaultSecret - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - - Get-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - - Get-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - - SwitchParameter - - - False - - - - Get-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - - SwitchParameter - - - False - - - - - - AsPlainText - - When set, the cmdlet will convert secret in secure string to the decrypted plaintext string as output. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InRemovedState - - Specifies whether to show the previously deleted secrets in the output - - SwitchParameter - - SwitchParameter - - - False - - - IncludeVersions - - Indicates that this cmdlet gets all versions of a secret. The current version of a secret is the first one on the list. If you specify this parameter you must also specify the Name and VaultName parameters. If you do not specify the IncludeVersions parameter, this cmdlet gets the current version of the secret with the specified Name . - - SwitchParameter - - SwitchParameter - - - False - - - InputObject - - KeyVault Object. - - PSKeyVault - - PSKeyVault - - - None - - - Name - - Specifies the name of the secret to get. - - String - - String - - - None - - - ParentResourceId - - KeyVault Resource Id. - - String - - String - - - None - - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Version - - Specifies the secret version. This cmdlet constructs the FQDN of a secret based on the key vault name, your currently selected environment, the secret name, and the secret version. - - String - - String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - - - - - - - - - - - - - Example 1: Get all current versions of all secrets in a key vault - Get-AzKeyVaultSecret -VaultName 'Contoso' - -Vault Name : contoso -Name : secret1 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret1 -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret2 -Enabled : True -Expires : -Not Before : -Created : 4/11/2018 11:45:06 PM -Updated : 4/11/2018 11:45:06 PM -Content Type : -Tags : - - This command gets the current versions of all secrets in the key vault named Contoso. - - - - - - ------- Example 2: Get all versions of a specific secret ------- - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' -IncludeVersions - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret1 -Version : 5d1a74ba2c454439886fb8509b6cab3c -Id : https://contoso.vault.azure.net:443/secrets/secret1/5d1a74ba2c454439886fb8509b6cab3c -Enabled : True -Expires : -Not Before : -Created : 4/5/2018 11:44:50 PM -Updated : 4/5/2018 11:44:50 PM -Content Type : -Tags : - - This command gets all versions of the secret named secret1 in the key vault named Contoso. - - - - - - --- Example 3: Get the current version of a specific secret --- - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets the current version of the secret named secret1 in the key vault named Contoso. - - - - - - ---- Example 4: Get a specific version of a specific secret ---- - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' -Version '5d1a74ba2c454439886fb8509b6cab3c' - -Vault Name : contoso -Name : secret1 -Version : 5d1a74ba2c454439886fb8509b6cab3c -Id : https://contoso.vault.azure.net:443/secrets/secret1/5d1a74ba2c454439886fb8509b6cab3c -Enabled : True -Expires : -Not Before : -Created : 4/5/2018 11:44:50 PM -Updated : 4/5/2018 11:44:50 PM -Content Type : -Tags : - - This command gets a specific version of the secret named secret1 in the key vault named Contoso. - - - - - - Example 5: Get the current version of a specific secret using Uri - Get-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/secret1/' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets the current version of the secret named secret1 in the key vault named Contoso. - - - - - - Example 6: Get a specific version of a specific secret using Uri - Get-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/secret1/7128133570f84a71b48d7d0550deb74c' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets a specific version of the secret named secret1 in the key vault named Contoso. - - - - - - Example 7: Get the current version of all the secrets using Uri - Get-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/' - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret2/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command gets the current version of all the secrets in the key vault named Contoso. - - - - - - Example 8: Get the plain text value of the current version of a specific secret - $secretText = Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'ITSecret' -AsPlainText - - The cmdlet returns the secret as a string when `-AsPlainText` is applied. Note: When listing secrets, i.e. not providing `-Name`, the `-AsPlainText` is ignored. - - - - - - Example 9: Get all the secrets that have been deleted but not purged for this key vault. - Get-AzKeyVaultSecret -VaultName 'Contoso' -InRemovedState - -Vault Name : contoso -Name : secret1 -Id : https://contoso.vault.azure.net:443/secrets/secret1 -Deleted Date : 4/4/2018 8:51:58 PM -Scheduled Purge Date : 7/3/2018 8:51:58 PM -Enabled : True -Expires : -Not Before : -Created : 4/4/2018 8:51:03 PM -Updated : 4/4/2018 8:51:03 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Id : https://contoso.vault.azure.net:443/secrets/secret2 -Deleted Date : 5/7/2018 7:56:34 PM -Scheduled Purge Date : 8/5/2018 7:56:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/6/2018 8:39:15 PM -Updated : 4/6/2018 10:11:24 PM -Content Type : -Tags : - - This command gets all the secrets that have been previously deleted, but not purged, in the key vault named Contoso. - - - - - - Example 10: Gets the secret ITSecret that has been deleted but not purged for this key vault. - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name 'secret1' -InRemovedState - -Vault Name : contoso -Name : secret1 -Version : 689d23346e9c42a2a64f4e3d75094dcc -Id : https://contoso.vault.azure.net:443/secrets/secret1/689d23346e9c42a2a64f4e3d75094dcc -Deleted Date : 4/4/2018 8:51:58 PM -Scheduled Purge Date : 7/3/2018 8:51:58 PM -Enabled : True -Expires : -Not Before : -Created : 4/4/2018 8:51:03 PM -Updated : 4/4/2018 8:51:03 PM -Content Type : -Tags : - - This command gets the secret 'secret1' that has been previously deleted, but not purged, in the key vault named Contoso. This command will return metadata such as the deletion date, and the scheduled purging date of this deleted secret. - - - - - - Example 11: Get all current versions of all secrets in a key vault using filtering - Get-AzKeyVaultSecret -VaultName 'Contoso' -Name "secret*" - -Vault Name : contoso -Name : secret1 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret1 -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - -Vault Name : contoso -Name : secret2 -Version : -Id : https://contoso.vault.azure.net:443/secrets/secret2 -Enabled : True -Expires : -Not Before : -Created : 4/11/2018 11:45:06 PM -Updated : 4/11/2018 11:45:06 PM -Content Type : -Tags : - - This command gets the current versions of all secrets in the key vault named Contoso that start with "secret". - - - - - - Example 12: Get a secret in Azure Key Vault by command Get-Secret in module Microsoft.PowerShell.SecretManagement - # Install module Microsoft.PowerShell.SecretManagement -Install-Module Microsoft.PowerShell.SecretManagement -Repository PSGallery -AllowPrerelease -# Register vault for Secret Management -Register-SecretVault -Name AzKeyVault -ModuleName Az.KeyVault -VaultParameters @{ AZKVaultName = 'test-kv'; SubscriptionId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' } -# Set secret for vault AzKeyVault -$secure = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-Secret -Vault AzKeyVault -Name secureSecret -SecureStringSecret $secure -Get-Secret -Vault AzKeyVault -Name secureSecret -AsPlainText - -Password - - This example Gets a secret named `secureSecret` in Azure Key Vault named `test-kv` by command `Get-Secret` in module `Microsoft.PowerShell.SecretManagement`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultsecret - - - Remove-AzKeyVaultSecret - - - - Undo-AzKeyVaultSecretRemoval - - - - Set-AzKeyVaultSecret - - - - - - - Get-AzKeyVaultSetting - Get - AzKeyVaultSetting - - Retrieves a specified key vault account setting or all available key vault account settings that can be configured. - - - - The Get-AzKeyVaultSetting cmdlet gets key vault account settings. This cmdlet gets a specific key vault account setting or all key vault account settings. - - - - Get-AzKeyVaultSetting - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultSetting - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzKeyVaultSetting - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - - - - - - - - - - ----- Example 1: Get all account settings in a Managed HSM ----- - Get-AzKeyVaultSetting -HsmName testmhsm - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets all account settings in a Managed HSM named `testmhsm`. - - - - - - Example 2: Get a specific key vault account setting in a Managed HSM - Get-AzKeyVaultSetting -HsmName testmhsm -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm`. - - - - - - Example 3: Get a specific key vault account setting in a Managed HSM via HsmObject - $hsmObject = Get-AzKeyVaultManagedHsm -Name testmhsm -Get-AzKeyVaultSetting -HsmObject $hsmObject -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` via HsmObject. - - - - - - Example 4: Get a specific key vault account setting in a Managed HSM by piping HsmObject - Get-AzKeyVaultManagedHsm -Name testmhsm | Get-AzKeyVaultSetting -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` via HsmObject. - - - - - - Example 4: Get a specific key vault account setting in a Managed HSM by piping HsmObject - Get-AzKeyVaultManagedHsm -Name testmhsm | Get-AzKeyVaultSetting -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` by piping HsmObject. - - - - - - Example 5: Get a specific key vault account setting in a Managed HSM via HsmId - Get-AzKeyVaultSetting -HsmId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/managedHSMs/testmhsm -Name AllowKeyManagementOperationsThroughARM - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM false boolean testmhsm - - This cmdlet gets a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed HSM named `testmhsm` via HsmId. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/get-azkeyvaultsetting - - - Update-AzKeyVaultSetting - - - - - - - Import-AzKeyVaultCertificate - Import - AzKeyVaultCertificate - - Imports a certificate to a key vault. - - - - The Import-AzKeyVaultCertificate cmdlet imports a certificate into a key vault. You can create the certificate to import by using one of the following methods: - Use `Add-AzKeyVaultCertificate` to create a certificate signing request and submit it to a certificate authority. See https://learn.microsoft.com/azure/key-vault/certificates/create-certificate-signing-request - - Use an existing certificate package file, such as a .pfx or .p12 file, which contains both the certificate and private key. - - - - Import-AzKeyVaultCertificate - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - CertificateCollection - - Specifies the certificate collection to add to a key vault. - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultCertificate - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - CertificateString - - Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key. - - System.String - - System.String - - - None - - - ContentType - - Specifies the type of the certificate to be imported. Regards certificate string as PFX format by default. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Password - - Specifies the password for a certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultCertificate - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FilePath - - Specifies the path of the certificate file that this cmdlet imports. - - System.String - - System.String - - - None - - - Password - - Specifies the password for a certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificateCollection - - Specifies the certificate collection to add to a key vault. - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - - None - - - CertificateString - - Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key. - - System.String - - System.String - - - None - - - ContentType - - Specifies the type of the certificate to be imported. Regards certificate string as PFX format by default. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FilePath - - Specifies the path of the certificate file that this cmdlet imports. - - System.String - - System.String - - - None - - - Name - - Specifies the certificate name. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate from key vault name, currently selected environment, and certificate name. - - System.String - - System.String - - - None - - - Password - - Specifies the password for a certificate file. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - PolicyObject - - An in-memory object to specify management policy for the certificate. Mutual-exclusive to PolicyPath. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - PolicyPath - - A file path to specify management policy for the certificate that contains JSON encoded policy definition. Mutual-exclusive to PolicyObject. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Specifies the key vault name into which this cmdlet imports certificates. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Security.Cryptography.X509Certificates.X509Certificate2Collection - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - ---------- Example 1: Import a key vault certificate ---------- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Import-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "ImportCert01" -FilePath "C:\Users\contosoUser\Desktop\import.pfx" -Password $Password - -Name : importCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:50:43 PM -Updated : 2/8/2016 11:50:43 PM - - The first command uses the ConvertTo-SecureString cmdlet to create a secure password, and then stores it in the $Password variable. The second command imports the certificate named ImportCert01 into the CosotosoKV01 key vault. - - - - - - Example 2: Import a key vault certificate by CertificateString - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -$Base64String = [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes("import.pfx")) -Import-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "ImportCert01" -CertificateString $Base64String -Password $Password - -Name : importCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : -Enabled : True -Created : 2/8/2016 11:50:43 PM -Updated : 2/8/2016 11:50:43 PM - - The first command uses the ConvertTo-SecureString cmdlet to create a secure password, and then stores it in the $Password variable. The second command reads a certificate as a Base64 encoded representation. The third command imports the certificate named ImportCert01 into the CosotosoKV01 key vault. - - - - - - -- Example 3: Import a key vault certificate with PolicyFile -- - $Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Import-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "ImportCert01" -FilePath "C:\Users\contosoUser\Desktop\import.pfx" -Password $Password -PolicyPath "C:\Users\contosoUser\Desktop\policy.json" - -Name : importCert01 -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 2/8/2016 3:11:45 PM - - [Not After] - 8/8/2016 4:21:45 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://ContosoKV01.vault.azure.net/keys/ImportCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -SecretId : https://ContosoKV01.vault.azure.net/secrets/ImportCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Policy : - Secret Content Type: application/x-pkcs12 - Issuer Name : Unknown - Created On : 3/22/2023 6:00:52 AM - Updated On : 4/27/2023 9:52:53 AM - ... -RecoveryLevel : Recoverable+Purgeable -Enabled : True -Expires : 6/9/2023 6:20:26 AM -NotBefore : 3/11/2023 6:20:26 AM -Created : 4/24/2023 9:05:51 AM -Updated : 4/24/2023 9:05:51 AM -Tags : {} -VaultName : ContosoKV01 -Name : ImportCert01 -Version : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Id : https://ContosoKV01.vault.azure.net/certificates/ImportCert01/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - The first command uses the ConvertTo-SecureString cmdlet to create a secure password, and then stores it in the $Password variable. The second command imports the certificate named ImportCert01 into the CosotosoKV01 key vault with a policy defined by file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/import-azkeyvaultcertificate - - - Remove-AzKeyVaultCertificate - - - - Creating and merging CSR in Key Vault - https://learn.microsoft.com/azure/key-vault/certificates/create-certificate-signing-request - - - - - - Import-AzKeyVaultSecurityDomain - Import - AzKeyVaultSecurityDomain - - Imports previously exported security domain data to a managed HSM. - - - - This cmdlet imports previously exported security domain data to a managed HSM. - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DownloadExchangeKey - - When specified, an exchange key will be downloaded to specified path. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutFile - - Local file path to store the security domain encrypted with the exchange key. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExchangeKeyPath - - Local path of exchange key used to encrypt the security domain data. Generated by running Import-AzKeyVaultSecurityDomain with -DownloadExchangeKey. - - System.String - - System.String - - - None - - - Force - - Specify whether to overwrite existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - OutFile - - Local file path to store the security domain encrypted with the exchange key. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreBlob - - When specified, the security domain data will be decrypted and encrypted using generated ExchangeKey locally. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ImportRestoredBlob - - When specified, SecurityDomainPath should be encrypted security domain data generated by Restore-AzKeyVaultSecurityDomainBlob. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Import-AzKeyVaultSecurityDomain - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DownloadExchangeKey - - When specified, an exchange key will be downloaded to specified path. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ExchangeKeyPath - - Local path of exchange key used to encrypt the security domain data. Generated by running Import-AzKeyVaultSecurityDomain with -DownloadExchangeKey. - - System.String - - System.String - - - None - - - Force - - Specify whether to overwrite existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ImportRestoredBlob - - When specified, SecurityDomainPath should be encrypted security domain data generated by Restore-AzKeyVaultSecurityDomainBlob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Object representing a managed HSM. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - Keys - - Information about the keys that are used to decrypt the security domain data. See examples for how it is constructed. - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - Microsoft.Azure.Commands.KeyVault.SecurityDomain.Models.KeyPath[] - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - OutFile - - Local file path to store the security domain encrypted with the exchange key. - - System.String - - System.String - - - None - - - PassThru - - When specified, a boolean will be returned when cmdlet succeeds. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RestoreBlob - - When specified, the security domain data will be decrypted and encrypted using generated ExchangeKey locally. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SecurityDomainPath - - Specify the path to the encrypted security domain data. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------- Example 1: Import Security domain -------------- - $keys = @{PublicKey = "sd1.cer"; PrivateKey = "sd1.key"}, @{PublicKey = "sd2.cer"; PrivateKey = "sd2.key"}, @{PublicKey = "sd3.cer"; PrivateKey = "sd3.key"} -Import-AzKeyVaultSecurityDomain -Name testmhsm -Keys $keys -SecurityDomainPath sd.ps.json - - First, the keys need be provided to decrypt the security domain data. Then, The Import-AzKeyVaultSecurityDomain command restores previous backed up security domain data to a managed HSM using these keys. - - - - - - ----- Example 2: Import Security domain by separate steps ----- - $exchangeKeyOutputPath = "ExchangeKey.cer" -$SecurityDomainRestoredBlob = "HsmRestoreBlob.json" -$keys = @{PublicKey = "sd1.cer"; PrivateKey = "sd1.key"}, @{PublicKey = "sd2.cer"; PrivateKey = "sd2.key"}, @{PublicKey = "sd3.cer"; PrivateKey = "sd3.key"} -Import-AzKeyVaultSecurityDomain -Name testmhsm -OutFile $exchangeKeyOutputPath -DownloadExchangeKey -Import-AzKeyVaultSecurityDomain -Keys $keys -ExchangeKeyPath $exchangeKeyPath -SecurityDomainPath sd.ps.json -OutFile sd_restored.ps.json -RestoreBlob -Import-AzKeyVaultSecurityDomain -Name testmhsm -SecurityDomainPath $SecurityDomainRestoredBlob -ImportRestoredBlob - - First, an exchange key should be downloaded by adding `-DownloadExchangeKey`. Then, the security domain data should be decrypted locally using key pairs and encrypted using generated exchange key by adding `-RestoreBlob`. Finally, the restored security domain data can be imported to a managed HSM using `-ImportRestoredBlob`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/import-azkeyvaultsecuritydomain - - - - - - Invoke-AzKeyVaultKeyOperation - Invoke - AzKeyVaultKeyOperation - - Performs operation like "Encrypt", "Decrypt", "Wrap" or "Unwrap" using a specified key stored in a key vault or managed hsm. - - - - Invoke-AzKeyVaultKeyOperation cmdlet supports 1. Encrypting an arbitrary sequence of bytes using an encryption key. 2. Decrypting a single block of encrypted data. 3. Wrapping a symmetric key using a specified key. 4. Unwrapping a symmetric key using the specified key that was initially used for wrapping that key. - - - - Invoke-AzKeyVaultKeyOperation - - HsmName - - HSM name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzKeyVaultKeyOperation - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzKeyVaultKeyOperation - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Algorithm - - Algorithm identifier - - System.String - - System.String - - - None - - - ByteArrayValue - - The value to be operated in byte array format. - - System.Byte[] - - System.Byte[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. - - System.String - - System.String - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - Operation - - Algorithm identifier - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Version - - Key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyOperationResult - - - - - - - - - - - - - - ---- Example 1: Encrypts byte array using an encryption key ---- - $byteArray = [Byte[]]@(58, 219) -$encryptedData = Invoke-AzKeyVaultKeyOperation -Operation Encrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray -$encryptedData - -KeyId : https://bez-kv.vault.azure.net/keys/bez-key/c96ce0fb18de446c9f4b911b686988af -RawResult : {21, 39, 82, 56…} -Algorithm : RSA1_5 - - Encrypts `$byteArray` using test-key stored in test-kv. - - - - - - ---- Example 2: Decrypts byte array using an encryption key ---- - $decryptedData = Invoke-AzKeyVaultKeyOperation -Operation Decrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $encryptedData.RawResult -$decryptedData - -KeyId : https://bez-kv.vault.azure.net/keys/bez-key/c96ce0fb18de446c9f4b911b686988af -RawResult : {58, 219} -Algorithm : RSA1_5 - - Decrypts `$encryptedData.RawResult` using test-key stored in test-kv. The `$decryptedData.RawResult` is same with `$byteArray`, which is original data. - - - - - - ---- Example 3: Encrypts plain text using an encryption key ---- - $plainText = "test" -$byteArray = [system.Text.Encoding]::UTF8.GetBytes($plainText) -$encryptedData = Invoke-AzKeyVaultKeyOperation -Operation Encrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray -$encryptedData - -KeyId : https://test-kv.vault.azure.net/keys/test-key/bd8b77352a2443d4983bd70e9f660bc6 -RawResult : {58, 219, 6, 236…} -Algorithm : RSA1_5 - - Encrypts string "test" using test-key stored in test-kv. The `RawResult` is the encrypted result in byte array format. - - - - - - ------- Example 4: Decrypt encrypted data to plain text ------- - $decryptedData = Invoke-AzKeyVaultKeyOperation -Operation Decrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $encryptedData.RawResult -$plainText = [system.Text.Encoding]::UTF8.GetString($decryptedData.RawResult) -$plainText - -test - - Decrypts encrypted data that is encrypted using test-key stored in test-kv. The `RawResult` is the decrypted result in byte array format. - - - - - - ---- Example 5: Wraps a symmetric key using a specified key ---- - $key = "ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo" -$byteArray = [system.Text.Encoding]::UTF8.GetBytes($key) -$wrappedResult = Invoke-AzKeyVaultKeyOperation -Operation Wrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray -$wrappedResult | Format-List - -KeyId : https://test-kv.vault.azure.net/keys/test-key/375cdf20252043b79c8ca0c57b6c7679 -RawResult : {58, 219, 6, 236…} -Algorithm : RSA1_5 - - Wraps a symmetric key using key named test-key stored in test-kv. The `RawResult` is wrapped result in byte array format. - - - - - - --- Example 6: Unwraps a symmetric key using a specified key --- - $unwrappedResult = Invoke-AzKeyVaultKeyOperation -Operation Unwrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $wrappedResult.RawResult -$key = [system.Text.Encoding]::UTF8.GetString($unwrappedResult.RawResult) -$key - -ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo - - Unwraps a symmetric key using a specified key test-key stored in test-kv. The `RawResult` is unwrapped result in byte array format. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/invoke-azkeyvaultkeyoperation - - - - - - Invoke-AzKeyVaultKeyRotation - Invoke - AzKeyVaultKeyRotation - - Creates a new key version in Key Vault, stores it, then returns the new key. - - - - The cmdlet will rotate the key based on the key policy. It requires the keys/rotate permission. It will returns a new version of the rotate key. - - - - Invoke-AzKeyVaultKeyRotation - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzKeyVaultKeyRotation - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Invoke-AzKeyVaultKeyRotation -VaultName test-kv -Name test-key - -Vault/HSM Name : test-kv -Name : test-key -Key Type : RSA -Key Size : 2048 -Curve Name : -Version : xxxxxxxxxxxxxx4939xxxxxxxxxxxxxxxx -Id : https://test-kv.vault.azure.net:443/keys/test-key/xxxxxxxxxxxxxx4939xxxxxxxxxxxxxxxx -Enabled : True -Expires : -Not Before : -Created : 12/10/2021 2:57:58 AM -Updated : 12/10/2021 2:57:58 AM -Recovery Level : Recoverable+Purgeable -Tags : - - This cmdlet creates a new key version for test-key. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/invoke-azkeyvaultkeyrotation - - - Get-AzKeyVaultKeyRotationPolicy.md - - - - Set-AzKeyVaultKeyRotationPolicy.md - - - - - - - New-AzKeyVault - New - AzKeyVault - - Creates a key vault. - - - - The New-AzKeyVault cmdlet creates a key vault in the specified resource group. This cmdlet also grants permissions to the currently logged on user to add, remove, or list keys and secrets in the key vault. Note: If you see the error **The subscription is not registered to use namespace 'Microsoft.KeyVault'** when you try to create your new key vault, run Register-AzResourceProvider -ProviderNamespace "Microsoft.KeyVault" and then rerun your New-AzKeyVault command. For more information, see Register-AzResourceProvider. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /groups/{id} - - GET /me - - - - New-AzKeyVault - - Name - - Specifies a name of the key vault to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzLocation (/powershell/module/az.resources/get-azlocation)to see your choices. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - If specified, disables to authorize data actions by Role Based Access Control (RBAC), and then the access policies specified in vault properties will be honored. Note that management actions are always authorized with RBAC. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - EnablePurgeProtection - - If specified, protection against immediate deletion is enabled for this vault; requires soft delete to be enabled as well. - - - System.Management.Automation.SwitchParameter - - - False - - - NetworkRuleSet - - Specifies the network rule set of the vault. It governs the accessibility of the key vault from specific network locations. Created by `New-AzKeyVaultNetworkRuleSetObject`. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. By default, we will enable public network access. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the key vault instance. For information about which features are available for each SKU, see the Azure Key Vault Pricing website (https://go.microsoft.com/fwlink/?linkid=512521). - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long deleted resources are retained, and how long until a vault or an object in the deleted state can be purged. The default is 90 days. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - If specified, disables to authorize data actions by Role Based Access Control (RBAC), and then the access policies specified in vault properties will be honored. Note that management actions are always authorized with RBAC. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnablePurgeProtection - - If specified, protection against immediate deletion is enabled for this vault; requires soft delete to be enabled as well. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzLocation (/powershell/module/az.resources/get-azlocation)to see your choices. - - System.String - - System.String - - - None - - - Name - - Specifies a name of the key vault to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - NetworkRuleSet - - Specifies the network rule set of the vault. It governs the accessibility of the key vault from specific network locations. Created by `New-AzKeyVaultNetworkRuleSetObject`. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. By default, we will enable public network access. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the key vault instance. For information about which features are available for each SKU, see the Azure Key Vault Pricing website (https://go.microsoft.com/fwlink/?linkid=512521). - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long deleted resources are retained, and how long until a vault or an object in the deleted state can be purged. The default is 90 days. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - ------------ Example 1: Create a Standard key vault ------------ - New-AzKeyVault -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -Location 'East US' - -Vault Name : contoso03vault -Resource Group Name : group14 -Location : East US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/group14/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : -Enabled For Template Deployment? : -Enabled For Disk Encryption? : -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : all - Permissions to Secrets : all - Permissions to Certificates : all - Permissions to (Key Vault Managed) Storage : all - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command creates a key vault named Contoso03Vault, in the Azure region East US. The command adds the key vault to the resource group named Group14. Because the command does not specify a value for the SKU parameter, it creates a Standard key vault. - - - - - - ------------ Example 2: Create a Premium key vault ------------ - New-AzKeyVault -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -Location 'East US' -Sku 'Premium' - -Vault Name : contoso03vault -Resource Group Name : group14 -Location : East US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/group14/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Premium -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : all - Permissions to Secrets : all - Permissions to Certificates : all - Permissions to (Key Vault Managed) Storage : all - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command creates a key vault, just like the previous example. However, it specifies a value of Premium for the SKU parameter to create a Premium key vault. - - - - - - -------------------------- Example 3 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "110.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "110.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -$ruleSet = New-AzKeyVaultNetworkRuleSetObject -DefaultAction Allow -Bypass AzureServices -IpAddressRange "110.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId -New-AzKeyVault -ResourceGroupName "myRg" -VaultName "myVault" -NetworkRuleSet $ruleSet -Location westus - -Vault Name : myVault -Resource Group Name : myRg -Location : East US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myRg/providers - /Microsoft.KeyVault/vaults/myVault -Vault URI : https://myVault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Premium -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : all - Permissions to Secrets : all - Permissions to Certificates : all - Permissions to (Key Vault Managed) Storage : all - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : 110.0.1.0/24 - Virtual Network Rules : /subscriptions/0b1f6471-1bf0-4dda-ae - c3-cb9272f09590/resourcegroups/myRg/providers/microsoft.network/virtualnetworks - /myvnet/subnets/frontendsubnet - -Tags : - - Creating a key vault and specifies network rules to allow access to the specified IP address from the virtual network identified by $myNetworkResId. See `New-AzKeyVaultNetworkRuleSetObject` for more information. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvault - - - Get-AzKeyVault - - - - Remove-AzKeyVault - - - - - - - New-AzKeyVaultCertificateAdministratorDetail - New - AzKeyVaultCertificateAdministratorDetail - - Creates an in-memory certificate administrator details object. - - - - The New-AzKeyVaultCertificateAdministratorDetail cmdlet creates an in-memory certificate administrator details object. - - - - New-AzKeyVaultCertificateAdministratorDetail - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address for the certificate administrator. - - System.String - - System.String - - - None - - - FirstName - - Specifies the first name of the certificate administrator. - - System.String - - System.String - - - None - - - LastName - - Specifies the last name of the certificate administrator. - - System.String - - System.String - - - None - - - PhoneNumber - - Specifies the phone number of the certificate administrator. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address for the certificate administrator. - - System.String - - System.String - - - None - - - FirstName - - Specifies the first name of the certificate administrator. - - System.String - - System.String - - - None - - - LastName - - Specifies the last name of the certificate administrator. - - System.String - - System.String - - - None - - - PhoneNumber - - Specifies the phone number of the certificate administrator. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails - - - - - - - - - - - - - - - Example 1: Create a certificate administrator details object - - $AdminDetails = New-AzKeyVaultCertificateAdministratorDetail -FirstName "Patti" -LastName "Fuller" -EmailAddress "patti.fuller@contoso.com" -PhoneNumber "5553334444" -$AdminDetails - -FirstName LastName EmailAddress PhoneNumber ---------- -------- ------------ ----------- -Patti Fuller patti.fuller@contoso.com 5553334444 - - This command creates an in-memory certificate administrator details object, and then stores it in the $AdminDetails variable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultcertificateadministratordetail - - - New-AzKeyVaultCertificateOrganizationDetail - - - - - - - New-AzKeyVaultCertificateOrganizationDetail - New - AzKeyVaultCertificateOrganizationDetail - - Creates an in-memory certificate organization details object. - - - - The New-AzKeyVaultCertificateOrganizationDetail cmdlet creates an in-memory certificate organization details object. - - - - New-AzKeyVaultCertificateOrganizationDetail - - AdministratorDetails - - Specifies the certificate organization administrators. - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Id - - Specifies the identifier for the organization. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AdministratorDetails - - Specifies the certificate organization administrators. - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - System.Collections.Generic.List`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Id - - Specifies the identifier for the organization. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Collections.Generic.List`1[[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateAdministratorDetails, Microsoft.Azure.PowerShell.Cmdlets.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - - - - - - - - - - - - ------- Example 1: Create an organization details object ------- - $AdminDetails = New-AzKeyVaultCertificateAdministratorDetail -FirstName "Patti" -LastName "Fuller" -EmailAddress "Patti.Fuller@contoso.com" -PhoneNumber "1234567890" -New-AzKeyVaultCertificateOrganizationDetail -AdministratorDetails $AdminDetails - -Id AdministratorDetails --- -------------------- - {Patti} - - The first command creates a certificate administrator details object, and then stores it in the $AdminDetails variable. The second command creates a certificate organization details object, and then stores it in the $OrgDetails variable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultcertificateorganizationdetail - - - New-AzKeyVaultCertificateAdministratorDetail - - - - - - - New-AzKeyVaultCertificatePolicy - New - AzKeyVaultCertificatePolicy - - Creates an in-memory certificate policy object. - - - - The New-AzKeyVaultCertificatePolicy cmdlet creates an in-memory certificate policy object for Azure Key Vault. - - - - New-AzKeyVaultCertificatePolicy - - IssuerName - - Specifies the name of the issuer for the certificate. - - System.String - - System.String - - - None - - - DnsName - - Specifies the DNS names in the certificate. Subject Alternative Names (SANs) can be specified as DNS names. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - SubjectName - - Specifies the subject name of the certificate. - > [!NOTE] > If you must use a comma (,) or a period (.) within a property in the `SubjectName` parameter, > you must enclose the property field in quotation marks. For example, you may use O="Contoso, Ltd." in the Organization Name field. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true' - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies how many days before expiry the automatic notification process begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - None - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - - System.Management.Automation.SwitchParameter - - - False - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultCertificatePolicy - - IssuerName - - Specifies the name of the issuer for the certificate. - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - > [!NOTE] > If you must use a comma (,) or a period (.) within a property in the `SubjectName` parameter, > you must enclose the property field in quotation marks. For example, you may use O="Contoso, Ltd." in the Organization Name field. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true' - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies how many days before expiry the automatic notification process begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - None - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - - System.Management.Automation.SwitchParameter - - - False - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true' - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the DNS names in the certificate. Subject Alternative Names (SANs) can be specified as DNS names. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies how many days before expiry the automatic notification process begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IssuerName - - Specifies the name of the issuer for the certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - System.Int32 - - System.Int32 - - - None - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - > [!NOTE] > If you must use a comma (,) or a period (.) within a property in the `SubjectName` parameter, > you must enclose the property field in quotation marks. For example, you may use O="Contoso, Ltd." in the Organization Name field. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Collections.Generic.List`1[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] - - - - - - - - System.Nullable`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] - - - - - - - - System.Management.Automation.SwitchParameter - - - - - - - - System.Collections.Generic.List`1[[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags, System.Security.Cryptography.X509Certificates, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]] - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------ Example 1: Create a certificate policy ------------ - New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal - -SecretContentType : application/x-pkcs12 -Kty : -KeySize : 2048 -Curve : -Exportable : -ReuseKeyOnRenewal : True -SubjectName : CN=contoso.com -DnsNames : -KeyUsage : -Ekus : -ValidityInMonths : 6 -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -CertificateTransparency : -Enabled : True -Created : -Updated : - - This command creates a certificate policy that is valid for six months and reuses the key to renew the certificate. - - - - - - -------------------------- Example 2 -------------------------- - New-AzKeyVaultCertificatePolicy -IssuerName 'Self' -KeyType RSA -RenewAtNumberOfDaysBeforeExpiry <Int32> -SecretContentType application/x-pkcs12 -SubjectName 'CN=contoso.com' -ValidityInMonths 6 - - - - - - - - Example 3: Create a Subject Alternate Name (or SAN) certificate - New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -DnsName "contoso.com","support.contoso.com","docs.contoso.com" -IssuerName "Self" - -SecretContentType : application/x-pkcs12 -Kty : RSA -KeySize : 2048 -Curve : -Exportable : -ReuseKeyOnRenewal : False -SubjectName : CN=contoso.com -DnsNames : {contoso.com, support.contoso.com, docs.contoso.com} -KeyUsage : -Ekus : -ValidityInMonths : -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -CertificateTransparency : -Enabled : True -Created : -Updated : - - This example creates a SAN certificate with 3 DNS names. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultcertificatepolicy - - - Get-AzKeyVaultCertificatePolicy - - - - Set-AzKeyVaultCertificatePolicy - - - - - - - New-AzKeyVaultManagedHsm - New - AzKeyVaultManagedHsm - - Creates a managed HSM. - - - - The New-AzKeyVaultManagedHsm cmdlet creates a managed HSM in the specified resource group. To add, remove, or list keys in the managed HSM, user should: 1. grant permissions by adding user ID to Administrator; 2. add role assignment for user like "Managed HSM Crypto User" and so on; 3. back up security domain data of a managed HSM using `Export-AzKeyVaultSecurityDomain`. - - - - New-AzKeyVaultManagedHsm - - Name - - Specifies a name of the managed HSM to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzResourceProvider with the ProviderNamespace parameter to see your choices. - - System.String - - System.String - - - None - - - Administrator - - Initial administrator object id for this managed HSM pool. - - System.String[] - - System.String[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the managed HSM instance. - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long the deleted managed hsm pool is retained, and how long until the managed hsm pool in the deleted state can be purged. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Administrator - - Initial administrator object id for this managed HSM pool. - - System.String[] - - System.String[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - Specifies the Azure region in which to create the key vault. Use the command Get-AzResourceProvider with the ProviderNamespace parameter to see your choices. - - System.String - - System.String - - - None - - - Name - - Specifies a name of the managed HSM to create. The name can be any combination of letters, digits, or hyphens. The name must start and end with a letter or digit. The name must be universally unique. - - System.String - - System.String - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Sku - - Specifies the SKU of the managed HSM instance. - - System.String - - System.String - - - None - - - SoftDeleteRetentionInDays - - Specifies how long the deleted managed hsm pool is retained, and how long until the managed hsm pool in the deleted state can be purged. - - System.Int32 - - System.Int32 - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.String[] - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - - - - - ---------- Example 1: Create a StandardB1 managed HSM ---------- - New-AzKeyVaultManagedHsm -Name 'myhsm' -ResourceGroupName 'myrg1' -Location 'eastus2euap' -Administrator "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -SoftDeleteRetentionInDays 70 - -Name Resource Group Name Location SKU ----- ------------------- -------- --- -myhsm myrg1 eastus2euap StandardB1 - - This command creates a managed HSM named myhsm in the location eastus2euap. The command adds the managed HSM to the resource group named myrg1. Because the command does not specify a value for the SKU parameter, it creates a Standard_B1 managed HSM. - - - - - - ---------- Example 2: Create a CustomB32 managed HSM ---------- - New-AzKeyVaultManagedHsm -Name 'myhsm' -ResourceGroupName 'myrg1' -Location 'eastus2euap' -Administrator "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Sku 'CustomB32' -SoftDeleteRetentionInDays 70 - -Name Resource Group Name Location SKU - ----- ------------------- -------- --- -myhsm myrg1 eastus2euap CustomB32 - - This command creates a managed HSM, just like the previous example. However, it specifies a value of CustomB32 for the SKU parameter to create a CustomB32 managed HSM. - - - - - - Example 3: Create a managed HSM with an user assigned identity - New-AzKeyVaultManagedHsm -Name 'myhsm' -ResourceGroupName 'myrg1' -Location 'eastus2euap' -Administrator "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"-SoftDeleteRetentionInDays 70 -UserAssignedIdentity /subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identityName | Format-List - -Managed HSM Name : myhsm -Resource Group Name : myrg1 -Location : eastus2euap -Resource ID : /subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/bez-rg/pro - viders/Microsoft.KeyVault/managedHSMs/bezmhsm -HSM Pool URI : -Tenant ID : 00001111-aaaa-2222-bbbb-3333cccc4444 -Initial Admin Object Ids : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : False -Soft Delete Retention Period (days) : 70 -Public Network Access : Enabled -IdentityType : UserAssigned -UserAssignedIdentities : /subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identityName -Provisioning State : Succeeded -Status Message : The Managed HSM is provisioned and ready to use. -Security Domain ActivationStatus : Active -Security Domain ActivationStatusMessage : Your HSM has been activated and can be used for cryptographic operations. -Regions : -Tags - - This command creates a managed HSM with an user assigned identity. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultmanagedhsm - - - Get-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - New-AzKeyVaultNetworkRuleSetObject - New - AzKeyVaultNetworkRuleSetObject - - Create an object representing the network rule settings. - - - - Create an object representing the network rule settings that can be used when creating a vault. - - - - New-AzKeyVaultNetworkRuleSetObject - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - - - - Bypass - - Specifies bypass of network rule. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum - - - None - - - DefaultAction - - Specifies default action of network rule. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleSet - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "110.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "110.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -$ruleSet = New-AzKeyVaultNetworkRuleSetObject -DefaultAction Allow -Bypass AzureServices -IpAddressRange "110.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId -New-AzKeyVault -ResourceGroupName "myRg" -VaultName "myVault" -NetworkRuleSet $ruleSet - - Creating a new vault and specifies network rules to allow access to the specified IP address from the virtual network identified by $myNetworkResId. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultnetworkrulesetobject - - - - - - New-AzKeyVaultRoleAssignment - New - AzKeyVaultRoleAssignment - - Assigns the specified RBAC role to the specified principal, at the specified scope. - - - - Use the `New-AzKeyVaultRoleAssignment` command to grant access. Access is granted by assigning the appropriate RBAC role to them at the right scope. The subject of the assignment must be specified. To specify a user, use SignInName or Microsoft Entra ObjectId parameters. To specify a security group, use Microsoft Entra ObjectId parameter. And to specify a Microsoft Entra application, use ApplicationId or ObjectId parameters. The role that is being assigned must be specified using the RoleDefinitionName pr RoleDefinitionId parameter. The scope at which access is being granted may be specified. It defaults to the selected subscription. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /servicePrincipals/{id} - - GET /servicePrincipals - - GET /groups/{id} - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-AzKeyVaultRoleAssignment -HsmName bez-hsm -RoleDefinitionName "Managed Hsm Crypto User" -ObjectId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - - This example assigns role "Managed Hsm Crypto User" to user "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" at top scope. If user wants to perform operations on keys. "Managed Hsm Crypto *" role is required for that user. - - - - - - -------------------------- Example 2 -------------------------- - New-AzKeyVaultRoleAssignment -HsmName myHsm -RoleDefinitionName "Managed HSM Policy Administrator" -SignInName user1@microsoft.com - -RoleDefinitionName DisplayName ObjectType Scope ------------------- ----------- ---------- ----- -Managed HSM Policy Administrator User 1 (user1@microsoft.com) User / - - This example assigns role "Managed HSM Policy Administrator" to user "user1@microsoft.com" at top scope. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultroleassignment - - - - - - New-AzKeyVaultRoleDefinition - New - AzKeyVaultRoleDefinition - - Creates a custom role definition on an HSM. - - - - The `New-AzKeyVaultRoleDefinition` cmdlet creates a custom role in Azure Role-Based Access Control of an Azure KeyVault managed HSM. - Provide either a JSON role definition file or a `PSKeyVaultRoleDefinition` object as input. First, use the `Get-AzKeyVaultRoleDefinition` command to generate a baseline role definition object. Then, modify its properties as required. Finally, use this command to create a custom role using role definition. - - - - New-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputFile - - File name containing a single role definition. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Role - - A role definition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputFile - - File name containing a single role definition. - - System.String - - System.String - - - None - - - Role - - A role definition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $role = Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleDefinitionName 'Managed HSM Crypto User' -$role.Name = $null -$role.RoleName = "my custom role" -$role.Description = "description for my role" -$role.Permissions[0].DataActions = @("Microsoft.KeyVault/managedHsm/roleAssignments/write/action", "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action") # todo -New-AzKeyVaultRoleDefinition -HsmName myHsm -Role $role - - This example uses the predefined "Managed HSM Crypto User" role as a template to create a custom role. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleDefinitionName 'Managed HSM Crypto User' | ConvertTo-Json -Depth 9 > C:\Temp\roleDefinition.json -# Edit roleDefinition.json. Make sure to clear "Name" so as not to overwrite an existing role. -New-AzKeyVaultRoleDefinition -HsmName myHsm -InputFile C:\Temp\roleDefinition.json - - This example uses a JSON file as the input of the custom role. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/new-azkeyvaultroledefinition - - - - - - Remove-AzKeyVault - Remove - AzKeyVault - - Deletes a key vault. - - - - The Remove-AzKeyVault cmdlet deletes the specified key vault. It also deletes all keys and secrets contained in that instance. Note that although specifying the resource group is optional for this cmdlet, you should so for better performance. - - - - Remove-AzKeyVault - - InputObject - - Key Vault object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - InputObject - - Key Vault object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted vault permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - VaultName - - Specifies the name of the key vault to remove. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted vault permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted vault permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - VaultName - - Specifies the name of the key vault to remove. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVault - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the key vault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key Vault object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InRemovedState - - Remove the previously deleted vault permanently. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted vault. - - System.String - - System.String - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1: Remove a key vault ---------------- - Remove-AzKeyVault -VaultName "Contoso03Vault" -PassThru - -True - - This command removes the key vault named Contoso03Vault from your current subscription. - - - - - - Example 2: Remove a key vault from a specified resource group - Remove-AzKeyVault -Name "Contoso03Vault" -ResourceGroupName "Group14" -PassThru - -True - - This command removes the key vault named Contoso03Vault from the named resource group. If you do not specify the resource group name, the cmdlet searches for the named key vault to delete in your current subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvault - - - Get-AzKeyVault - - - - New-AzKeyVault - - - - - - - Remove-AzKeyVaultAccessPolicy - Remove - AzKeyVaultAccessPolicy - - Removes all permissions for a user or application from a key vault. - - - - The Remove-AzKeyVaultAccessPolicy cmdlet removes all permissions for a user or application or for all users and applications from a key vault. Even if you remove all permissions, the owner of the Azure subscription that contains the key vault can add permissions to the key vault. Note that although specifying the resource group is optional for this cmdlet, you should do so for better performance. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /users - - GET /servicePrincipals/{id} - - GET /servicePrincipals - - GET /groups/{id} - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultAccessPolicy - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - Specifies the ID of application whose permissions should be removed - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user whose access you want to remove. - - System.String - - System.String - - - None - - - EnabledForDeployment - - If specified, disables the retrieval of secrets from this key vault by the Microsoft.Compute resource provider when referenced in resource creation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - If specified, disables the retrieval of secrets from this key vault by Azure Disk Encryption. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - If specified, disables the retrieval of secrets from this key vault by Azure Resource Manager when referenced in templates. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key Vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to remove permissions. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose access policy is being modified. If not specified, this cmdlet searches for the key vault in the current subscription. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application whose permissions you want to remove. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user whose access you want to remove. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault. This cmdlet removes permissions for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - ----------- Example 1: Remove permissions for a user ----------- - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : - Permissions to Secrets : - Permissions to Certificates : get, create - Permissions to (Key Vault Managed) Storage : - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command removes all the permissions that a user PattiFuller@contoso.com has on the key vault named Contoso03Vault. If -PassThru is specified, the KeyVault object is returned. - - - - - - ------- Example 2: Remove permissions for an application ------- - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ServicePrincipalName 'http://payroll.contoso.com' - - This command removes all the permissions that an application has on the key vault named Contoso03Vault. This example identifies the application by using the service principal name registered in Microsoft Entra ID, `http://payroll.contoso.com`. - - - - - - Example 3: Remove permissions for an application by using its object ID - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectID 34595082-9346-41b6-8d6b-295a2808b8db - - This command removes all the permissions that an application has on the key vault named Contoso03Vault. This example identifies the application by the object ID of the service principal. - - - - - - Example 4: Remove permissions for the Microsoft.Compute resource provider - Remove-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -EnabledForDeployment - - This command removes permission for the Microsoft.Compute resource provider to get secrets from the Contoso03Vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultaccesspolicy - - - Set-AzKeyVaultAccessPolicy - - - - - - - Remove-AzKeyVaultCertificate - Remove - AzKeyVaultCertificate - - Removes a certificate from a key vault. - - - - The Remove-AzKeyVaultCertificate cmdlet removes a certificate from a key vault. - - - - Remove-AzKeyVaultCertificate - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted certificate permanently - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificate - - VaultName - - Specifies the name of the key vault from which this cmdlet removes a certificate. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate that this cmdlet removes from a key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted certificate permanently - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Certificate Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - InRemovedState - - If present, removes the previously deleted certificate permanently - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the certificate that this cmdlet removes from a key vault. This cmdlet constructs the fully qualified domain name (FQDN) of a certificate based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault from which this cmdlet removes a certificate. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificate - - - - - - - - - - - - - - --------------- Example 1: Remove a certificate --------------- - Remove-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "SelfSigned01" -PassThru -Force - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 4/11/2018 4:28:39 PM - - [Not After] - 10/11/2018 4:38:39 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://contosokv01.vault.azure.net:443/keys/selfsigned01/968c3920884a435abf8faea11f565456 -SecretId : https://contosokv01.vault.azure.net:443/secrets/selfsigned01/968c3920884a435abf8faea11f565456 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Purgeable -ScheduledPurgeDate : -DeletedDate : -Enabled : True -Expires : 10/11/2018 11:38:39 PM -NotBefore : 4/11/2018 11:28:39 PM -Created : 4/11/2018 11:38:39 PM -Updated : 4/11/2018 11:38:39 PM -Tags : -VaultName : ContosoKV01 -Name : SelfSigned01 -Version : 968c3920884a435abf8faea11f565456 -Id : https://contosokv01.vault.azure.net:443/certificates/selfsigned01/968c3920884a435abf8faea11f565456 - - This command removes the certificate named SelfSigned01 from the key vault named ContosoKV01. This command specifies the Force parameter. Therefore, the cmdlet does not prompt you for confirmation. - - - - - - Example 2: Purge the deleted certificate from the key vault permanently - Remove-AzKeyVaultCertificate -VaultName 'Contoso' -Name 'MyCert' -InRemovedState - - This command permanently removes the certificate named 'MyCert' from the key vault named 'Contoso'. Executing this cmdlet requires the 'purge' permission, which must have been previously and explicitly granted to the user on this key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificate - - - Add-AzKeyVaultCertificate - - - - Get-AzKeyVaultCertificate - - - - Import-AzKeyVaultCertificate - - - - Undo-AzKeyVaultCertificateRemoval - - - - - - - Remove-AzKeyVaultCertificateContact - Remove - AzKeyVaultCertificateContact - - Deletes a contact that is registered for certificate notifications from a key vault. - - - - The Remove-AzKeyVaultCertificateContact cmdlet deletes a contact that is registered for certificate notifications from a key vault. - - - - Remove-AzKeyVaultCertificateContact - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateContact - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateContact - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the email address of the contact to remove. - - System.String[] - - System.String[] - - - None - - - InputObject - - KeyVault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceId - - KeyVault Resource Id. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateContact - - - - - - - - - - - - - - ----------- Example 1: Remove a certificate contact ----------- - Remove-AzKeyVaultCertificateContact -VaultName "Contoso01" -EmailAddress "patti.fuller@contoso.com" -PassThru - -Email VaultName ------ --------- -user1@microsoft.com mvault2 -user2@microsoft.com mvault2 -user3@microsoft.com mvault2 -user4@microsoft.com mvault2 - - This command removes Patti Fuller as a certificate contact for the Contoso01 key vault. If PassThru is specified, the cmdlet returns the list of remaining certificate contacts. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificatecontact - - - Add-AzKeyVaultCertificateContact - - - - Get-AzKeyVaultCertificateContact - - - - - - - Remove-AzKeyVaultCertificateIssuer - Remove - AzKeyVaultCertificateIssuer - - Deletes a certificate issuer from a key vault. - - - - The Remove-AzKeyVaultCertificateIssuer cmdlet deletes a certificate issuer from a key vault. - - - - Remove-AzKeyVaultCertificateIssuer - - InputObject - - Certificate Issuer Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the issuer to remove. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Certificate Issuer Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - Name - - Specifies the name of the issuer to remove. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuer - - - - - - - - - - - - - - ------------ Example 1: Remove a certificate issuer ------------ - Remove-AzKeyVaultCertificateIssuer -VaultName "ContosoKV01" -Name "TestIssuer01" -Force - -AccountId : -ApiKey : -OrganizationDetails : -Name : TestIssuer01 -IssuerProvider : test -VaultName : ContosoKV01 - - This command removes the certificate issuer named TestIssuer01 from the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificateissuer - - - Get-AzKeyVaultCertificateIssuer - - - - Set-AzKeyVaultCertificateIssuer - - - - - - - Remove-AzKeyVaultCertificateOperation - Remove - AzKeyVaultCertificateOperation - - Deletes a certificate operation from a key vault. - - - - The Remove-AzKeyVaultCertificateOperation cmdlet deletes a certificate operation from a key vault. - - - - Remove-AzKeyVaultCertificateOperation - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultCertificateOperation - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ---------- Example 1: Remove a certificate operation ---------- - Remove-AzKeyVaultCertificateOperation -VaultName "ContosoKV01" -Name "TestCert01" -Force - -Id : https://contosokv01.vault.azure.net/certificates/testcert01/pending -Status : completed -StatusDetails : -RequestId : f5dfd2ae486149a594dc98e800dceaaa -Target : https://contosokv01.vault.azure.net/certificates/testcert01 -Issuer : Self -CancellationRequested : False -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC73w3VRBOlgJ5Od1PjDh+2ytngNZp+ZP4fkuX8K1Ti5LA6Ih7eWx1fgAN/iTb6l - 5K6LvAIJvsTNVePMNxfSdaEIJ70Inm45wVU4A/kf+UxQWAYVMsBrLtDFWxnVhzf6n7RGYke6HLBj3j5ASb9g+olSs6eON25ibF0t+u6JC+sIR0LmVGar9Q0eZys1rdfzJBIKq+laOM7z2pJijb5ANqve9 - i7rH5mnhQk4V8WsRstOhYR9jgLqSSxokDoeaBClIOidSBYqVc1yNv4ASe1UWUCR7ZK6OQXiecNWSWPmgWEyawu6AR9eb1YotCr2ScheMOCxlm3103luitxrd8A7kMjAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAIHhsDJV37PKi8hor5eQf7+Tct1preIvSwqV0NF6Uo7O6 - YnC9Py7Wp7CHfKzuqeptUk2Tsu7B5dHB+o9Ypeeqw8fWhTN0GFGRKO7WjZQlDqL+lRNcjlFSaP022oIP0kmvVhBcmZqRQlALXccAaxEclFA/3y/aNj2gwWeKpH/pwAkZ39zMEzpQCaRfnQk7e3l4MV8cf - eC2HPYdRWkXxAeDcNPxBuVmKy49AzYvly+APNVDU3v66gxl3fIKrGRsKi2Cp/nO5rBxG2h8t+0Za4l/HJ7ZWR9wKbd/xg7JhdZZFVBxMHYzw8KQ0ys13x8HY+PXU92Y7yD3uC2Rcj+zbAf+Kg== - == -ErrorCode : -ErrorMessage : -Name : -VaultName : - - This command removes the certificate operation named TestCert01 from the ContosoKV01 key vault without prompting for confirmation. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultcertificateoperation - - - Get-AzKeyVaultCertificateOperation - - - - Stop-AzKeyVaultCertificateOperation - - - - - - - Remove-AzKeyVaultKey - Remove - AzKeyVaultKey - - Deletes a key in a key vault. - - - - The Remove-AzKeyVaultKey cmdlet deletes a key in a key vault. If the key was accidentally deleted the key can be recovered using Undo-AzKeyVaultKeyRemoval by a user with special 'recover' permissions. This cmdlet has a value of high for the ConfirmImpact property. - - - - Remove-AzKeyVaultKey - - Name - - Specifies the name of the key to remove. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InRemovedState - - Remove the previously deleted key permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultKey - - InputObject - - KeyBundle Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted key permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault from which to remove the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the key to remove. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted key permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - KeyBundle Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - InRemovedState - - Remove the previously deleted key permanently. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the key to remove. This cmdlet constructs the fully qualified domain name (FQDN) of a key based on the name that this parameter specifies, the name of the key vault, and your current environment. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey object. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault from which to remove the key. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKey - - - - - - - - - - - - - - ----------- Example 1: Remove a key from a key vault ----------- - Remove-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -PassThru - -Vault Name : contoso -Name : key2 -Id : https://contoso.vault.azure.net:443/keys/itsoftware/fdad15793ba0437e960497908ef9eb32 -Deleted Date : 5/24/2018 11:28:25 PM -Scheduled Purge Date : 8/22/2018 11:28:25 PM -Enabled : False -Expires : 10/11/2018 11:32:49 PM -Not Before : 4/11/2018 11:22:49 PM -Created : 4/12/2018 10:16:38 PM -Updated : 4/12/2018 10:16:38 PM -Purge Disabled : False -Tags : - - This command removes the key named ITSoftware from the key vault named Contoso. - - - - - - ------ Example 2: Remove a key without user confirmation ------ - Remove-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -Force - - This command removes the key named ITSoftware from the key vault named Contoso. The command specifies the Force parameter, and, therefore, the cmdlet does not prompt you for confirmation. - - - - - - Example 3: Purge a deleted key from the key vault permanently - Remove-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -InRemovedState - - This command removes the key named ITSoftware from the key vault named Contoso permanently. Executing this cmdlet requires the 'purge' permission, which must have been previously and explicitly granted to the user for this key vault. - - - - - - ---- Example 4: Remove keys by using the pipeline operator ---- - Get-AzKeyVaultKey -VaultName 'Contoso' | Where-Object {$_.Attributes.Enabled -eq $False} | Remove-AzKeyVaultKey - - This command gets all the keys in the key vault named Contoso, and passes them to the Where-Object cmdlet by using the pipeline operator. That cmdlet passes the keys that have a value of $False for the Enabled attribute to the current cmdlet. That cmdlet removes those keys. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Undo-AzKeyVaultKeyRemoval - - - - - - - Remove-AzKeyVaultManagedHsm - Remove - AzKeyVaultManagedHsm - - Deletes/Purges a managed HSM. - - - - The Remove-AzKeyVaultManagedHsm cmdlet deletes the specified managed HSM. It also deletes all keys contained in that instance. Note that although specifying the resource group is optional for this cmdlet, you should so for better performance. - - - - Remove-AzKeyVaultManagedHsm - - InputObject - - Managed HSM object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - InputObject - - Managed HSM object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - Name - - Specifies the name of the managed HSM to remove. - - System.String - - System.String - - - None - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - ResourceId - - ManagedHsm Resource Id. - - System.String - - System.String - - - None - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - Name - - Specifies the name of the managed HSM to remove. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of resource group for Azure managed HSM to remove. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedHsm - - ResourceId - - ManagedHsm Resource Id. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that the cmdlet does not prompt you for confirmation. By default, this cmdlet prompts you to confirm that you want to delete the managed HSM. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Managed HSM object to be deleted. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - InRemovedState - - Remove the previously deleted managed HSM pool permanently. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Location - - The location of the deleted managed HSM pool. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the managed HSM to remove. - - System.String - - System.String - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of resource group for Azure managed HSM to remove. - - System.String - - System.String - - - None - - - ResourceId - - ManagedHsm Resource Id. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - --------------- Example 1: Remove a managed HSM --------------- - Remove-AzKeyVaultManagedHsm -HsmName 'myhsm' -Force - -True - - This command removes the managed HSM named myhsm from your current subscription. - - - - - - Example 2: Remove a managed hsm from a specified resource group - Remove-AzKeyVaultManagedHsm -HsmName 'myhsm' -ResourceGroupName "myrg1" -PassThru - -True - - This command removes the managed HSM named myhsm from the resource group named myrg1. If you do not specify the resource group name, the cmdlet searches for the named managed HSM to delete in your current subscription. - - - - - - ------------ Example 3: Purge a deleted managed hsm ------------ - Remove-AzKeyVaultManagedHsm -Name 'myhsm' -Location "eastus" -Force -PassThru - -True - - This command purges the managed HSM named myhsm located at eastus. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedhsm - - - Get-AzKeyVaultManagedHsm - - - - New-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - Remove-AzKeyVaultManagedStorageAccount - Remove - AzKeyVaultManagedStorageAccount - - Removes a Key Vault managed Azure Storage Account and all associated SAS definitions. - - - - Disassociates an Azure Storage Account from Key Vault. This does not remove an Azure Storage Account but removes the account keys from being managed by Azure Key Vault. All associated Key Vault managed Storage SAS definitions are also removed. - - - - Remove-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Permanently remove the previously deleted managed storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedStorageAccount - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - InRemovedState - - Permanently remove the previously deleted managed storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - InRemovedState - - Permanently remove the previously deleted managed storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccount - - - - - - - - - - - - - - Example 1: Remove a Key Vault managed Azure Storage Account and all associated SAS definitions. - Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -PassThru - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Disassociates Azure Storage Account 'mystorageaccount' from Key Vault 'myvault' and stops Key Vault from managing its keys. The account 'mystorageaccount' will not be removed. All Key Vault managed Storage SAS definitions associated with this account will be removed. - - - - - - Example 2: Remove a Key Vault managed Azure Storage Account and all associated SAS definitions without user confirmation. - Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -PassThru -Force - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - Disassociates Azure Storage Account 'mystorageaccount' from Key Vault 'myvault' and stops Key Vault from managing its keys. The account 'mystorageaccount' will not be removed. All Key Vault managed Storage SAS definitions associated with this account will be removed. - - - - - - Example 3: Permanently delete (purge) a Key Vault managed Azure Storage Account and all associated SAS definitions from a soft-delete-enabled vault. - Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -Get-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -InRemovedState -Remove-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -InRemovedState - - The example assumes that soft-delete is enabled for this vault. Verify whether that is the case by examining the vault properties, or the RecoveryLevel attribute of an entity in the vault. The first cmdlet disassociates Azure Storage Account 'mystorageaccount' from Key Vault 'myvault' and stops Key Vault from managing its keys. The account 'mystorageaccount' will not be removed. All Key Vault managed Storage SAS definitions associated with this account will be removed. The second cmdlet verifies that the storage account is in a deleted, but recoverable state. Reaching this state may require some time, please allow ~30s before attempting. The third cmdlet permanently removes the storage account - recovery will no longer be possible. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedstorageaccount - - - Azure Key Vault PowerShell cmdlets - - - - - - - Remove-AzKeyVaultManagedStorageSasDefinition - Remove - AzKeyVaultManagedStorageSasDefinition - - Removes a Key Vault managed Azure Storage SAS definitions. - - - - Removes a Key Vault managed Azure Storage SAS definitions. This also removes the secret used to get the SAS token per this SAS definition. - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and storage account name. - - System.String - - System.String - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - InputObject - - ManagedStorageSasDefinition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageSasDefinition object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinition - - - - - - - - - - - - - - Example 1: Remove a Key Vault managed Azure Storage SAS definition. - Remove-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name 'mysasdef' -PassThru - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/mysasdef -Vault Name : myvault -AccountName : mystorageaccount -Name : mysasdef -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Removes a Key Vault managed Storage SAS definition 'mysasdef' associated with the account 'mystorageaccount' in vault 'myvault'. - - - - - - Example 2: Remove a Key Vault managed Azure Storage SAS definition without user confirmation. - Remove-AzKeyVaultManagedStorageSasDefinition -VaultName 'myvault' -AccountName 'mystorageaccount' -Name 'mysasdef' -PassThru -Force - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount/sas/mysasdef -Vault Name : myvault -AccountName : mystorageaccount -Name : mysasdef -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - Removes a Key Vault managed Storage SAS definition 'mysasdef' associated with the account 'mystorageaccount' in vault 'myvault'. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultmanagedstoragesasdefinition - - - Get-AzKeyVaultManagedStorageSasDefinition - - - - Set-AzKeyVaultManagedStorageSasDefinition - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - - - - - - Remove-AzKeyVaultNetworkRule - Remove - AzKeyVaultNetworkRule - - Removes a network rule from a key vault. - - - - Removes a network rule from a key vault. - - - - Remove-AzKeyVaultNetworkRule - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultNetworkRule - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultNetworkRule - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $myNetworkResId = (Get-AzVirtualNetwork -Name myVNetName -ResourceGroupName myRG).Subnets[0].Id -Remove-AzKeyVaultNetworkRule -VaultName myVault -IpAddressRange "10.0.0.1/26" -VirtualNetworkResourceId $myNetworkResId -PassThru - -Vault Name : myVault -Resource Group Name : myrg -Location : West US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover, backup, restore - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update, recover, backup, restore - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : - Virtual Network Rules : - -Tags : - - This command removes a network rule from the specified vault, provided a rule is found matching the specified IP address and the virtual network resource identifier. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultnetworkrule - - - - - - Remove-AzKeyVaultRoleAssignment - Remove - AzKeyVaultRoleAssignment - - Removes a role assignment to the specified principal who is assigned to a particular role at a particular scope. - - - - Use the `Remove-AzKeyVaultRoleAssignment` cmdlet to revoke access to any principal at given scope and given role. The object of the assignment i.e. the principal MUST be specified. The principal can be a user (use SignInName or ObjectId parameters to identify a user), security group (use ObjectId parameter to identify a group) or service principal (use ApplicationId or ObjectId parameters to identify a ServicePrincipal. The role that the principal is assigned to MUST be specified using the RoleDefinitionName or RoleDefinitionId parameter. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /users/{id} - - GET /servicePrincipals - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleAssignment - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Role assignment object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - The app SPN. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputObject - - Role assignment object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - None - - - ObjectId - - The user or group object id. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RoleAssignmentName - - Name of the role assignment. - - System.String - - System.String - - - None - - - RoleDefinitionId - - Role Id the principal is assigned to. - - System.String - - System.String - - - None - - - RoleDefinitionName - - Name of the RBAC role to assign the principal with. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. '/' is used when omitted. - - System.String - - System.String - - - None - - - SignInName - - The user SignInName. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleAssignment - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-AzKeyVaultRoleAssignment -HsmName myHsm -RoleDefinitionName "Managed HSM Policy Administrator" -SignInName user1@microsoft.com -Scope "/keys" - - This example revokes "Managed HSM Policy Administrator" role of "user1@microsoft.com" at "/keys" scope. - - - - - - -------------------------- Example 2 -------------------------- - Get-AzKeyVaultRoleAssignment -HsmName myHsm -SignInName user1@microsoft.com | Remove-AzKeyVaultRoleAssignment - - This example revokes all roles of "user1@microsoft.com" at all scopes. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultroleassignment - - - - - - Remove-AzKeyVaultRoleDefinition - Remove - AzKeyVaultRoleDefinition - - Removes a custom role definition from an HSM. - - - - The `Remove-AzKeyVaultRoleDefinition` cmdlet deletes a custom role in Azure Role-Based Access Control of Azure KeyVault managed HSM. Provide the `-RoleName` parameter of an existing custom role or a role object to delete that custom role. By default, `Remove-AzKeyVaultRoleDefinition` prompts you for confirmation. To suppress the prompt, use the `-Force` parameter. - - - - Remove-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirm. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - The object representing the role definition to be removed. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - PassThru - - This cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzKeyVaultRoleDefinition - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirm. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - This cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - - System.Management.Automation.SwitchParameter - - - False - - - RoleName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirm. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputObject - - The object representing the role definition to be removed. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - None - - - PassThru - - This cmdlet does not return an object by default. If this switch is specified, it returns true if successful. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RoleName - - Name of the role definition to get. - - System.String - - System.String - - - None - - - Scope - - Scope at which the role assignment or definition applies to, e.g., '/' or '/keys' or '/keys/{keyName}'. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultRoleDefinition - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-AzKeyVaultRoleDefinition -HsmName myHsm -RoleName "my role" - - This example removes a custom role named "my role". - - - - - - -------------------------- Example 2 -------------------------- - $role = Get-AzKeyVaultRoleDefinition -HsmName myHsm -RoleName "my role" -$role | Remove-AzKeyVaultRoleDefinition -HsmName myHsm -Force - - This example removes a custom role named "my role" by piping the role object. It also suppress the prompt by `-Force`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultroledefinition - - - - - - Remove-AzKeyVaultSecret - Remove - AzKeyVaultSecret - - Deletes a secret in a key vault. - - - - The Remove-AzKeyVaultSecret cmdlet deletes a secret in a key vault. If the secret was accidentally deleted the secret can be recovered using Undo-AzKeyVaultSecretRemoval by a user with special 'recover' permissions. This cmdlet has a value of high for the ConfirmImpact property. - - - - Remove-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - - SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Remove-AzKeyVaultSecret - - InputObject - - Key Vault Secret Object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - - SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Remove-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of a secret. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - SwitchParameter - - - False - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - - SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - SwitchParameter - - SwitchParameter - - - False - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InRemovedState - - If present, removes the previously deleted secret permanently. - - SwitchParameter - - SwitchParameter - - - False - - - InputObject - - Key Vault Secret Object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Specifies the name of a secret. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - PassThru - - Indicates that this cmdlet returns a Microsoft.Azure.Commands.KeyVault.Models.Secret object. By default, this cmdlet does not generate any output. - - SwitchParameter - - SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecret - - - - - - - - - - - - - - --------- Example 1: Remove a secret from a key vault --------- - Remove-AzKeyVaultSecret -VaultName 'Contoso' -Name 'FinanceSecret' -PassThru - -Vault Name : Contoso -Name : FinanceSecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://contoso.vault.azure.net:443/secrets/financesecret/f622abc7b1394092812f1eb0f85dc91c -Deleted Date : 5/25/2018 4:45:34 PM -Scheduled Purge Date : 8/23/2018 4:45:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command removes the secret named FinanceSecret from the key vault named Contoso.' - - - - - - Example 2: Remove a secret from a key vault without user confirmation - Remove-AzKeyVaultSecret -VaultName 'Contoso' -Name 'FinanceSecret' -PassThru -Force - -Vault Name : Contoso -Name : FinanceSecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://contoso.vault.azure.net:443/secrets/financesecret/f622abc7b1394092812f1eb0f85dc91c -Deleted Date : 5/25/2018 4:45:34 PM -Scheduled Purge Date : 8/23/2018 4:45:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command removes the secret named FinanceSecret from the key vault named Contoso. The command specifies the Force and Confirm parameters, and, therefore, the cmdlet does not prompt you for confirmation. - - - - - - --- Example 3: Remove a secret from a key vault (using uri) --- - Remove-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net:443/secrets/financesecret' -PassThru - -Vault Name : Contoso -Name : FinanceSecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://contoso.vault.azure.net:443/secrets/financesecret/f622abc7b1394092812f1eb0f85dc91c -Deleted Date : 5/25/2018 4:45:34 PM -Scheduled Purge Date : 8/23/2018 4:45:34 PM -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command removes the secret named 'FinanceSecret' from the key vault named 'Contoso'. - - - - - - Example 4: Remove a secret in Azure Key Vault by command Remove-Secret in module Microsoft.PowerShell.SecretManagement - # Install module Microsoft.PowerShell.SecretManagement -Install-Module Microsoft.PowerShell.SecretManagement -Repository PSGallery -AllowPrerelease -# Register vault for Secret Management -Register-SecretVault -Name AzKeyVault -ModuleName Az.KeyVault -VaultParameters @{ AZKVaultName = 'test-kv'; SubscriptionId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' } -# Set secret for vault AzKeyVault -$secure = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-Secret -Vault AzKeyVault -Name secureSecret -SecureStringSecret $secure -Remove-Secret -Vault AzKeyVault -Name secureSecret - -None - - This example removes a secret named `secureSecret` in Azure Key Vault `test-kv` by command `Remove-Secret` in module `Microsoft.PowerShell.SecretManagement`. - - - - - - Example 4: Purge deleted secret from the key vault permanently - Remove-AzKeyVaultSecret -VaultName 'Contoso' -Name 'FinanceSecret' -InRemovedState - - This command removes the secret named FinanceSecret from the key vault named Contoso permanently. Executing this cmdlet requires the 'purge' permission, which must have been previously and explicitly granted to the user for this key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/remove-azkeyvaultsecret - - - Get-AzKeyVaultSecret - - - - Set-AzKeyVaultSecret - - - - Undo-AzKeyVaultSecretRemoval - - - - - - - Restore-AzKeyVault - Restore - AzKeyVault - - Fully restores a managed HSM from backup. - - - - Fully restores a managed HSM from a backup stored in a storage account. Use `Backup-AzKeyVault` to backup. - - - - Restore-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVault - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVault - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVault - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - BackupFolder - - Folder name of the backup, e.g. 'mhsm-*-2020101309020403'. It can also be nested such as 'backups/mhsm-*-2020101309020403'. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Managed HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - KeyName - - Key name to restore. - - System.String - - System.String - - - None - - - PassThru - - Return true when the HSM is restored. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SasToken - - The shared access signature (SAS) token to authenticate the storage account. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - StorageAccountName - - Name of the storage account where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerName - - Name of the blob container where the backup is going to be stored. - - System.String - - System.String - - - None - - - StorageContainerUri - - URI of the storage container where the backup is going to be stored. - - System.Uri - - System.Uri - - - None - - - UseUserManagedIdentity - - Specified to use User Managed Identity to authenticate the storage account. Only valid when SasToken is not set. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1 Restore a Key Vault ---------------- - $sasToken = ConvertTo-SecureString -AsPlainText -Force "?sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-10-12T14:42:19Z&st=2020-10-12T06:42:19Z&spr=https&sig=******" -Restore-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -BackupFolder "mhsm-myHsm-2020101308504935" -SasToken $sasToken - - The example restores a backup stored in a folder named "mhsm-myHsm-2020101308504935" of a storage container "https://{accountName}.blob.core.windows.net/{containerName}". - - - - - - Example 2 Restore a Key Vault via User Assigned Managed Identity Authentication - # Make sure an identity is assigend to the Hsm -Update-AzKeyVaultManagedHsm -UserAssignedIdentity "/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}" -Restore-AzKeyVault -HsmName myHsm -StorageContainerUri "https://{accountName}.blob.core.windows.net/{containerName}" -BackupFolder "mhsm-myHsm-2020101308504935" -UseUserManagedIdentity - - The example restores an HSM via User Assigned Managed Identity Authentication. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvault - - - - - - Restore-AzKeyVaultCertificate - Restore - AzKeyVaultCertificate - - Restores a certificate in a key vault from a backup file. - - - - The Restore-AzKeyVaultCertificate cmdlet creates a certificate in the specified key vault from a backup file. This certificate is a replica of the backed-up certificate in the input file and has the same name as the original certificate. If the key vault already contains a certificate by the same name, this cmdlet fails instead of overwriting the original certificate. If the backup contains multiple versions of a certificate, all versions are restored. The key vault that you restore the certificate into can be different from the key vault that you backed up the certificate from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultCertificate - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultCertificate - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultCertificate - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - ---------- Example 1: Restore a backed-up certificate ---------- - Restore-AzKeyVaultCertificate -VaultName 'MyKeyVault' -InputFile "C:\Backup.blob" - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 5/25/2018 3:47:41 AM - - [Not After] - 11/25/2018 2:57:41 AM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://mykeyvault.vault.azure.net:443/keys/cert1/bd406f6d6b3a41a1a1c633494d8c3c3a -SecretId : https://mykeyvault.vault.azure.net:443/secrets/cert1/bd406f6d6b3a41a1a1c633494d8c3c3a -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Purgeable -Enabled : True -Expires : 11/25/2018 10:57:41 AM -NotBefore : 5/25/2018 10:47:41 AM -Created : 5/25/2018 10:57:41 AM -Updated : 5/25/2018 10:57:41 AM -Tags : -VaultName : MyKeyVault -Name : cert1 -Version : bd406f6d6b3a41a1a1c633494d8c3c3a -Id : https://mykeyvault.vault.azure.net:443/certificates/cert1/bd406f6d6b3a41a1a1c633494d8c3c3a - - This command restores a certificate, including all of its versions, from the backup file named Backup.blob into the key vault named MyKeyVault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultcertificate - - - - - - Restore-AzKeyVaultKey - Restore - AzKeyVaultKey - - Creates a key in a key vault from a backed-up key. - - - - The Restore-AzKeyVaultKey cmdlet creates a key in the specified key vault. This key is a replica of the backed-up key in the input file and has the same name as the original key. If the key vault already has a key by the same name, this cmdlet fails instead of overwriting the original key. If the backup contains multiple versions of a key, all versions are restored. The key vault that you restore the key into can be different from the key vault that you backed up the key from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultKey - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - HsmObject - - HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmResourceId - - Hsm Resource Id - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultKey - - VaultName - - Specifies the name of the key vault into which to restore the key. - - System.String - - System.String - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - HsmObject - - HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - HsmResourceId - - Hsm Resource Id - - System.String - - System.String - - - None - - - InputFile - - Specifies the input file that contains the backup of the key to restore. - - System.String - - System.String - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of the key vault into which to restore the key. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - -------------- Example 1: Restore a backed-up key -------------- - Restore-AzKeyVaultKey -VaultName 'MyKeyVault' -InputFile "C:\Backup.blob" - -Vault Name : MyKeyVault -Name : key1 -Version : 394f9379a47a4e2086585468de6c7ae5 -Id : https://mykeyvault.vault.azure.net:443/keys/key1/394f9379a47a4e2086585468de6c7ae5 -Enabled : True -Expires : -Not Before : -Created : 4/6/2018 11:31:36 PM -Updated : 4/6/2018 11:35:04 PM -Purge Disabled : False -Tags : - - This command restores a key, including all of its versions, from the backup file named Backup.blob into the key vault named MyKeyVault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultkey - - - Add-AzKeyVaultKey - - - - Backup-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - Remove-AzKeyVaultKey - - - - - - - Restore-AzKeyVaultManagedStorageAccount - Restore - AzKeyVaultManagedStorageAccount - - Restores a managed storage account in a key vault from a backup file. - - - - The Restore-AzKeyVaultManagedStorageAccount cmdlet creates a managed storage account in the specified key vault from a backup file. This managed storage account is a replica of the backed-up managed storage account in the input file and has the same name as the original. If the key vault already contains a managed storage account by the same name, this cmdlet fails instead of overwriting the original. The key vault that you restore the managed storage account into can be different from the key vault that you backed up the managed storage account from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultManagedStorageAccount - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultManagedStorageAccount - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputFile - - Input file. The input file containing the backed-up blob - - System.String - - System.String - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - ---- Example 1: Restore a backed-up managed storage account ---- - Restore-AzKeyVaultManagedStorageAccount -VaultName 'MyKeyVault' -InputFile "C:\Backup.blob" - -Id : https://mykeyvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : MyKeyVault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key1 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - This command restores a managed storage account, including all of its versions, from the backup file named Backup.blob into the key vault named MyKeyVault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultmanagedstorageaccount - - - - - - Restore-AzKeyVaultSecret - Restore - AzKeyVaultSecret - - Creates a secret in a key vault from a backed-up secret. - - - - The Restore-AzKeyVaultSecret cmdlet creates a secret in the specified key vault. This secret is a replica of the backed-up secret in the input file and has the same name as the original secret. If the key vault already has a secret by the same name, this cmdlet fails instead of overwriting the original secret. If the backup contains multiple versions of a secret, all versions are restored. The key vault that you restore the secret into can be different from the key vault that you backed up the secret from. However, the key vault must use the same subscription and be in an Azure region in the same geography (for example, North America). See the Microsoft Azure Trust Center (https://azure.microsoft.com/support/trust-center/) for the mapping of Azure regions to geographies. - - - - Restore-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Restore-AzKeyVaultSecret - - InputObject - - KeyVault object - - PSKeyVault - - PSKeyVault - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Restore-AzKeyVaultSecret - - ParentResourceId - - KeyVault Resource Id - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Restore-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault into which to restore the secret. - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputFile - - Specifies the input file that contains the backup of the secret to restore. - - String - - String - - - None - - - InputObject - - KeyVault object - - PSKeyVault - - PSKeyVault - - - None - - - ParentResourceId - - KeyVault Resource Id - - String - - String - - - None - - - VaultName - - Specifies the name of the key vault into which to restore the secret. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - ------------ Example 1: Restore a backed-up secret ------------ - Restore-AzKeyVaultSecret -VaultName 'contoso' -InputFile "C:\Backup.blob" - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command restores a secret, including all of its versions, from the backup file named Backup.blob into the key vault named contoso. - - - - - - ------ Example 2: Restore a backed-up secret (using Uri) ------ - Restore-AzKeyVaultSecret -Id "https://contoso.vault.azure.net:443/secrets/" -InputFile "C:\Backup.blob" - -Vault Name : contoso -Name : secret1 -Version : 7128133570f84a71b48d7d0550deb74c -Id : https://contoso.vault.azure.net:443/secrets/secret1/7128133570f84a71b48d7d0550deb74c -Enabled : True -Expires : 4/6/2018 3:59:43 PM -Not Before : -Created : 4/5/2018 11:46:28 PM -Updated : 4/6/2018 11:30:17 PM -Content Type : -Tags : - - This command restores a secret, including all of its versions, from the backup file named Backup.blob into the key vault named contoso. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/restore-azkeyvaultsecret - - - Set-AzKeyVaultSecret - - - - Backup-AzKeyVaultSecret - - - - Get-AzKeyVaultSecret - - - - Remove-AzKeyVaultSecret - - - - - - - Set-AzKeyVaultAccessPolicy - Set - AzKeyVaultAccessPolicy - - Grants or modifies existing permissions for a user, application, or security group to perform operations with a key vault. - - - - The Set-AzKeyVaultAccessPolicy cmdlet grants or modifies existing permissions for a user, application, or security group to perform the specified operations with a key vault. It does not modify the permissions that other users, applications, or security groups have on the key vault. If you are setting permissions for a security group, this operation affects only users in that security group. The following directories must all be the same Azure directory: - The default directory of the Azure subscription in which the key vault resides. - - The Azure directory that contains the user or application group that you are granting permissions to. - Examples of scenarios when these conditions are not met and this cmdlet will not work are: - Authorizing a user from a different organization to manage your key vault. Each organization has its own directory. - Your Azure account has multiple directories. If you register an application in a directory other than the default directory, you cannot authorize that application to use your key vault. The application must be in the default directory. Note that although specifying the resource group is optional for this cmdlet, you should do so for better performance. - The cmdlet may call below Microsoft Graph API according to input parameters: - - GET /directoryObjects/{id} - - GET /users/{id} - - GET /users - - GET /servicePrincipals/{id} - - GET /servicePrincipals - - GET /groups/{id} - - > [!NOTE] > When using a service principal to grant access policy permissions, you must use the `-BypassObjectIdValidation` parameter. - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultAccessPolicy - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ApplicationId - - For future use. - - System.Nullable`1[System.Guid] - - System.Nullable`1[System.Guid] - - - None - - - BypassObjectIdValidation - - Enables you to specify an object ID without validating that the object exists in Microsoft Entra ID. Use this parameter only if you want to grant access to your key vault to an object ID that refers to a delegated security group from another Azure tenant. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAddress - - Specifies the user email address of the user to whom to grant permissions. This email address must exist in the directory associated with the current subscription and be unique. - - System.String - - System.String - - - None - - - EnabledForDeployment - - Enables the Microsoft.Compute resource provider to retrieve secrets from this key vault when this key vault is referenced in resource creation, for example when creating a virtual machine. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForDiskEncryption - - Enables the Azure disk encryption service to get secrets and unwrap keys from this key vault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnabledForTemplateDeployment - - Enables Azure Resource Manager to get secrets from this key vault when this key vault is referenced in a template deployment. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key Vault Object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - None - - - ObjectId - - Specifies the object ID of the user or service principal in Microsoft Entra ID for which to grant permissions. Its value is in the format of GUID. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PermissionsToCertificates - - Specifies an array of certificate permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Delete - - Create - - Import - - Update - - Managecontacts - - Getissuers - - Listissuers - - Setissuers - - Deleteissuers - - Manageissuers - - Recover - - Backup - - Restore - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToKeys - - Specifies an array of key operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Decrypt - - Encrypt - - UnwrapKey - - WrapKey - - Verify - - Sign - - Get - - List - - Update - - Create - - Import - - Delete - - Backup - - Restore - - Recover - - Purge - - Rotate - - System.String[] - - System.String[] - - - None - - - PermissionsToSecrets - - Specifies an array of secret operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - All - - Get - - List - - Set - - Delete - - Backup - - Restore - - Recover - - Purge - - System.String[] - - System.String[] - - - None - - - PermissionsToStorage - - Specifies managed storage account and SaS-definition operation permissions to grant to a user or service principal. 'All' will grant all the permissions except 'Purge' The acceptable values for this parameter: - all - - get - - list - - delete - - set - - update - - regeneratekey - - getsas - - listsas - - deletesas - - setsas - - recover - - backup - - restore - - purge - - System.String[] - - System.String[] - - - None - - - ResourceGroupName - - Specifies the name of a resource group. - - System.String - - System.String - - - None - - - ResourceId - - Key Vault Resource Id - - System.String - - System.String - - - None - - - ServicePrincipalName - - Specifies the service principal name of the application to which to grant permissions. Specify the application ID, also known as client ID, registered for the application in Microsoft Entra ID. The application with the service principal name that this parameter specifies must be registered in the Azure directory that contains your current subscription. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - UserPrincipalName - - Specifies the user principal name of the user to whom to grant permissions. This user principal name must exist in the directory associated with the current subscription. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. This cmdlet modifies the access policy for the key vault that this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultIdentityItem - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - Example 1: Grant permissions to a user for a key vault and modify the permissions - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToKeys create,import,delete,list -PermissionsToSecrets set,delete -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : create, import, delete, list - Permissions to Secrets : set, delete - Permissions to Certificates : - Permissions to (Key Vault Managed) Storage : - -Tags : - -Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToSecrets set,delete,get -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : create, import, delete, list - Permissions to Secrets : set, delete, get - Permissions to Certificates : - Permissions to (Key Vault Managed) Storage : - -Tags : - -Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToKeys @() -PassThru - -Vault Name : Contoso03Vault -Resource Group Name : myrg -Location : westus -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/contoso03vault -Vault URI : https://contoso03vault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : - Permissions to Secrets : set, delete, get - Permissions to Certificates : - Permissions to (Key Vault Managed) Storage : - -Tags : - - The first command grants permissions for a user in your Microsoft Entra ID, PattiFuller@contoso.com, to perform operations on keys and secrets with a key vault named Contoso03Vault. The PassThru parameter results in the updated object being returned by the cmdlet. The second command modifies the permissions that were granted to PattiFuller@contoso.com in the first command, to now allow getting secrets in addition to setting and deleting them. The permissions to key operations remain unchanged after this command. The final command further modifies the existing permissions for PattiFuller@contoso.com to remove all permissions to key operations. The permissions to secret operations remain unchanged after this command. - - - - - - Example 2: Grant permissions for an application service principal to read and write secrets - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ServicePrincipalName 'http://payroll.contoso.com' -PermissionsToSecrets Get,Set - - This command grants permissions for an application for a key vault named Contoso03Vault. The ServicePrincipalName parameter specifies the application. The application must be registered in your Microsoft Entra ID. The value of the ServicePrincipalName parameter must be either the service principal name of the application or the application ID GUID. This example specifies the service principal name `http://payroll.contoso.com`, and the command grants the application permissions to read and write secrets. - - - - - - Example 3: Grant permissions for an application using its object ID - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectId 34595082-9346-41b6-8d6b-295a2808b8db -PermissionsToSecrets Get,Set - - This command grants the application permissions to read and write secrets. This example specifies the application using the object ID of the service principal of the application. - - - - - - ---- Example 4: Grant permissions for a user principal name ---- - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToSecrets Get,List,Set - - This command grants get, list, and set permissions for the specified user principal name for access to secrets. - - - - - - Example 5: Enable secrets to be retrieved from a key vault by the Microsoft.Compute resource provider - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -EnabledForDeployment - - This command grants the permissions for secrets to be retrieved from the Contoso03Vault key vault by the Microsoft.Compute resource provider. - - - - - - ------- Example 6: Grant permissions to a security group ------- - Get-AzADGroup -Set-AzKeyVaultAccessPolicy -VaultName 'myownvault' -ObjectId (Get-AzADGroup -SearchString 'group2')[0].Id -PermissionsToKeys get, set -PermissionsToSecrets get, set - - The first command uses the Get-AzADGroup cmdlet to get all Active Directory groups. From the output, you see 3 groups returned, named group1 , group2 , and group3 . Multiple groups can have the same name but always have a unique ObjectId. When more than one group that has the same name is returned, use the ObjectId in the output to identify the one you want to use. You then use the output of this command with Set-AzKeyVaultAccessPolicy to grant permissions to group2 for your key vault, named myownvault . This example enumerates the groups named 'group2' inline in the same command line. There may be multiple groups in the returned list that are named 'group2'. This example picks the first one, indicated by index [0] in the returned list. - - - - - - Example 7: Grant Azure Information Protection access to the customer-managed tenant key (BYOK) - Set-AzKeyVaultAccessPolicy -VaultName 'Contoso04Vault' -ServicePrincipalName 'MyServicePrincipal' -PermissionsToKeys decrypt,sign,get - - This command authorizes Azure Information Protection to use a customer-managed key (the bring your own key, or "BYOK" scenario) as the Azure Information Protection tenant key. When you run this command, specify your own key vault name but you must specify the ServicePrincipalName parameter and specify the permissions in the example. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultaccesspolicy - - - Get-AzKeyVault - - - - Remove-AzKeyVaultAccessPolicy - - - - - - - Set-AzKeyVaultCertificateIssuer - Set - AzKeyVaultCertificateIssuer - - Sets a certificate issuer in a key vault. - - - - The Set-AzKeyVaultCertificateIssuer cmdlet sets a certificate issuer in a key vault. - - - - Set-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Issuer. - - System.String - - System.String - - - None - - - AccountId - - Specifies the account ID for the certificate issuer. - - System.String - - System.String - - - None - - - ApiKey - - Specifies the API key for the certificate issuer. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IssuerProvider - - Specifies the type of certificate issuer. - - System.String - - System.String - - - None - - - OrganizationDetails - - Organization details to be used with the issuer. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultCertificateIssuer - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Issuer. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Specifies the certificate issuer to set. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountId - - Specifies the account ID for the certificate issuer. - - System.String - - System.String - - - None - - - ApiKey - - Specifies the API key for the certificate issuer. - - System.Security.SecureString - - System.Security.SecureString - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Specifies the certificate issuer to set. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - None - - - IssuerProvider - - Specifies the type of certificate issuer. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Issuer. - - System.String - - System.String - - - None - - - OrganizationDetails - - Organization details to be used with the issuer. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Specifies the name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIssuerIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------- Example 1: Set a certificate issuer ------------- - $AdminDetails = New-AzKeyVaultCertificateAdministratorDetail -FirstName user -LastName name -EmailAddress username@microsoft.com -$OrgDetails = New-AzKeyVaultCertificateOrganizationDetail -AdministratorDetails $AdminDetails -$Password = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-AzKeyVaultCertificateIssuer -VaultName "Contosokv01" -Name "TestIssuer01" -IssuerProvider "Test" -AccountId "555" -ApiKey $Password -OrganizationDetails $OrgDetails -PassThru - -AccountId : 555 -ApiKey : -OrganizationDetails : Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOrganizationDetails -Name : TestIssuer01 -IssuerProvider : Test -VaultName : Contosokv01 - - This command sets the properties for a certificate issuer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultcertificateissuer - - - Get-AzKeyVaultCertificateIssuer - - - - Remove-AzKeyVaultCertificateIssuer - - - - - - - Set-AzKeyVaultCertificatePolicy - Set - AzKeyVaultCertificatePolicy - - Creates or updates the policy for a certificate in a key vault. - - - - The Set-AzKeyVaultCertificatePolicy cmdlet creates or updates the policy for a certificate in a key vault. - - - - Set-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the subject name of the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IssuerName - - Specifies the name of the issuer for this certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the subject name of the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IssuerName - - Specifies the name of the issuer for this certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - - None - EncipherOnly - CrlSign - KeyCertSign - KeyAgreement - DataEncipherment - KeyEncipherment - NonRepudiation - DigitalSignature - DecipherOnly - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - - application/x-pkcs12 - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultCertificatePolicy - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - InputObject - - Specifies the certificate policy. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - - P-256 - P-384 - P-521 - P-256K - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - - 2048 - 3072 - 4096 - 256 - 384 - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - - RSA - RSA-HSM - EC - EC-HSM - - System.String - - System.String - - - RSA - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CertificateTransparency - - Indicates whether certificate transparency is enabled for this certificate/issuer; if not specified, the default is 'true'. `-IssuerName` needs to be specified when setting this property. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - CertificateType - - Specifies the type of certificate to the issuer. - - System.String - - System.String - - - None - - - Curve - - Specifies the elliptic curve name of the key of the certificate. The acceptable values for this parameter are: - P-256 - - P-384 - - P-521 - - P-256K - - SECP256K1 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - Indicates that the certificate policy is disabled. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DnsName - - Specifies the subject name of the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - Ekus - - Specifies the enhanced key usages (EKUs) in the certificate. - - System.Collections.Generic.List`1[System.String] - - System.Collections.Generic.List`1[System.String] - - - None - - - EmailAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiration when automatic renewal should start. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - EmailAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for the notification begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - InputObject - - Specifies the certificate policy. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - None - - - IssuerName - - Specifies the name of the issuer for this certificate. - - System.String - - System.String - - - None - - - KeyNotExportable - - Indicates that the key is not exportable. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeySize - - Specifies the key size of the certificate. The acceptable values for this parameter are: - 2048 - - 3072 - - 4096 - - 256 - - 384 - - 521 - - System.Int32 - - System.Int32 - - - 2048 - - - KeyType - - Specifies the key type of the key that backs the certificate. The acceptable values for this parameter are: - RSA - - RSA-HSM - - EC - - EC-HSM - - System.String - - System.String - - - RSA - - - KeyUsage - - Specifies the key usages in the certificate. - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags] - - - None - - - Name - - Specifies the name of the certificate. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RenewAtNumberOfDaysBeforeExpiry - - Specifies the number of days before expiry after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - RenewAtPercentageLifetime - - Specifies the percentage of the lifetime after which the automatic process for certificate renewal begins. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ReuseKeyOnRenewal - - Indicates that the certificate reuse the key during renewal. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - SecretContentType - - Specifies the content type of the new key vault secret. The acceptable values for this parameter are: - application/x-pkcs12 - - application/x-pem-file - - System.String - - System.String - - - None - - - SubjectName - - Specifies the subject name of the certificate. - - System.String - - System.String - - - None - - - ValidityInMonths - - Specifies the number of months the certificate is valid. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificatePolicy - - - - - - - - - - - - - - ------------- Example 1: Set a certificate policy ------------- - Set-AzKeyVaultCertificatePolicy -VaultName "ContosoKV01" -Name "TestCert01" -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal $True -PassThru - -SecretContentType : application/x-pkcs12 -Kty : -KeySize : 2048 -Curve : -Exportable : -ReuseKeyOnRenewal : True -SubjectName : CN=contoso.com -DnsNames : -KeyUsage : -Ekus : -ValidityInMonths : 6 -IssuerName : Self -CertificateType : -RenewAtNumberOfDaysBeforeExpiry : -RenewAtPercentageLifetime : -EmailAtNumberOfDaysBeforeExpiry : -EmailAtPercentageLifetime : -CertificateTransparency : -Enabled : True -Created : -Updated : - - This command sets the policy for the TestCert01 certificate in the ContosoKV01 key vault. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultcertificatepolicy - - - Get-AzKeyVaultCertificatePolicy - - - - New-AzKeyVaultCertificatePolicy - - - - - - - Set-AzKeyVaultKeyRotationPolicy - Set - AzKeyVaultKeyRotationPolicy - - Sets the key rotation policy for the specified key in Key Vault. - - - - This cmdlet requires the key update permission. It returns a key rotation policy for the specified key. - - - - Set-AzKeyVaultKeyRotationPolicy - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresIn - - The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D. - - System.String - - System.String - - - None - - - KeyRotationLifetimeAction - - PSKeyRotationLifetimeAction object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresIn - - The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D. - - System.String - - System.String - - - None - - - KeyRotationLifetimeAction - - PSKeyRotationLifetimeAction object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyPath - - A path to the rotation policy file that contains JSON policy definition. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - KeyRotationPolicy - - PSKeyRotationPolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultKeyRotationPolicy - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyPath - - A path to the rotation policy file that contains JSON policy definition. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresIn - - The expiryTime will be applied on the new key version. It should be at least 28 days. It will be in ISO 8601 Format. Examples: 90 days: P90D, 3 months: P3M, 48 hours: PT48H, 1 year and 10 days: P1Y10D. - - System.String - - System.String - - - None - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - KeyRotationLifetimeAction - - PSKeyRotationLifetimeAction object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationLifetimeAction[] - - - None - - - KeyRotationPolicy - - PSKeyRotationPolicy object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - None - - - Name - - Key name. - - System.String - - System.String - - - None - - - PolicyPath - - A path to the rotation policy file that contains JSON policy definition. - - System.String - - System.String - - - None - - - VaultName - - Vault name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyRotationPolicy - - - - - - - - - - - - - - ------- Example 1: Sets key rotation policy by JSON file ------- - <# -rotation_policy.json -{ - "lifetimeActions": [ - { - "trigger": { - "timeAfterCreate": "P18M", - "timeBeforeExpiry": null - }, - "action": { - "type": "Rotate" - } - }, - { - "trigger": { - "timeBeforeExpiry": "P30D" - }, - "action": { - "type": "Notify" - } - } - ], - "attributes": { - "expiryTime": "P2Y" - } - } -#> -Set-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key -PolicyPath rotation_policy.json - -Id : https://test-kv.vault.azure.net/keys/test-key/rotationpolicy -VaultName : test-kv -KeyName : test-keyAM +00:00 -LifetimeActions : {[Action: Notify, TimeAfterCreate: , TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 12/10/2021 3:21:51 AM +00:00 -UpdatedOn : 6/9/2022 7:43:27 - - These commands set the rotation policy of key `test-key` by JSON file. - - - - - - ------- Example 2: Sets key rotation policy expiry time ------- - Set-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key -ExpiresIn P2Y - -Id : https://test-kv.vault.azure.net/keys/test-key/rotationpolicy -VaultName : test-kv -KeyName : test-keyAM +00:00 -LifetimeActions : {[Action: Notify, TimeAfterCreate: , TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 12/10/2021 3:21:51 AM +00:00 -UpdatedOn : 6/9/2022 7:43:27 - - These commands set the expiry time will be applied on the new key version of `test-key` as 2 years. - - - - - - -------- Example 3: Sets key rotation policy via piping -------- - Get-AzKeyVaultKey -VaultName test-kv -Name test-key | Set-AzKeyVaultKeyRotationPolicy -KeyRotationLifetimeAction @{Action = "Rotate"; TimeBeforeExpiry = "P18M"} - -Id : https://test-kv.vault.azure.net/keys/test-key/rotationpolicy -VaultName : test-kv -KeyName : test-key -LifetimeActions : {[Action: Rotate, TimeAfterCreate: , TimeBeforeExpiry: P18M], [Action: Notify, TimeAfterCreate: , - TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 12/10/2021 3:21:51 AM +00:00 -UpdatedOn : 6/9/2022 8:10:43 AM +00:00 - - These commands set the duration before expiry to attempt to rotate `test-key` as 18 months. - - - - - - Example 4: Copy key rotation policy to another key via PSKeyRotationPolicy object - $policy = Get-AzKeyVaultKeyRotationPolicy -VaultName test-kv -Name test-key1 -$policy.KeyName = "test-key2" -$policy | Set-AzKeyVaultKeyRotationPolicy - -Id : https://test-kv.vault.azure.net/keys/test-key2/rotationpolicy -VaultName : test-kv -KeyName : test-key2 -LifetimeActions : {[Action: Rotate, TimeAfterCreate: , TimeBeforeExpiry: P18M], [Action: Notify, TimeAfterCreate: , - TimeBeforeExpiry: P30D]} -ExpiresIn : P2Y -CreatedOn : 6/9/2022 8:26:35 AM +00:00 -UpdatedOn : 6/9/2022 8:26:35 AM +00:00 - - These commands copy the key rotation policy `test-key1` to key `test-key2`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultkeyrotationpolicy - - - Get-AzKeyVaultKeyRotationPolicy - - - - Invoke-AzKeyVaultKeyRotation - - - - - - - Set-AzKeyVaultManagedStorageSasDefinition - Set - AzKeyVaultManagedStorageSasDefinition - - Sets a Shared Access Signature (SAS) definition with Key Vault for a given Key Vault managed Azure Storage Account. - - - - Sets a Shared Access Signature (SAS) definition with a given Key Vault managed Azure Storage Account. This also sets a secret which can be used to get the SAS token per this SAS definition. SAS token is generated using these parameters and the active key of the Key Vault managed Azure Storage Account. - - - - Set-AzKeyVaultManagedStorageSasDefinition - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - TemplateUri - - Storage SAS definition template uri. - - System.String - - System.String - - - None - - - SasType - - Storage SAS type. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of sas definition for generation of sas token. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ValidityPeriod - - Validity period that will get used to set the expiry time of sas token from the time it gets generated - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzKeyVaultManagedStorageSasDefinition - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - TemplateUri - - Storage SAS definition template uri. - - System.String - - System.String - - - None - - - SasType - - Storage SAS type. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of sas definition for generation of sas token. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ValidityPeriod - - Validity period that will get used to set the expiry time of sas token from the time it gets generated - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disable - - Disables the use of sas definition for generation of sas token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Storage sas definition name. Cmdlet constructs the FQDN of a storage sas definition from vault name, currently selected environment, storage account name and sas definition name. - - System.String - - System.String - - - None - - - SasType - - Storage SAS type. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TemplateUri - - Storage SAS definition template uri. - - System.String - - System.String - - - None - - - ValidityPeriod - - Validity period that will get used to set the expiry time of sas token from the time it gets generated - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - - - - - - - Example 1: Set an account-type SAS definition, and obtain a current SAS token based on it - $sa = Get-AzStorageAccount -Name mysa -ResourceGroupName myrg -$kv = Get-AzKeyVault -VaultName mykv -Add-AzKeyVaultManagedStorageAccount -VaultName $kv.VaultName -AccountName $sa.StorageAccountName -AccountResourceId $sa.Id -ActiveKeyName key1 -RegenerationPeriod ([System.Timespan]::FromDays(180)) -$sctx = New-AzStorageContext -StorageAccountName $sa.StorageAccountName -Protocol Https -StorageAccountKey Key1 -$start = [System.DateTime]::Now.AddDays(-1) -$end = [System.DateTime]::Now.AddMonths(1) -$at = "sv=2018-03-28&ss=bfqt&srt=sco&sp=rw&spr=https" -$sas = Set-AzKeyVaultManagedStorageSasDefinition -AccountName $sa.StorageAccountName -VaultName $kv.VaultName -Name accountsas -TemplateUri $at -SasType 'account' -ValidityPeriod ([System.Timespan]::FromDays(30)) -Get-AzKeyVaultSecret -VaultName $kv.VaultName -Name $sas.Sid.Substring($sas.Sid.LastIndexOf('/')+1) - - Sets an account SAS definition 'accountsas' on a KeyVault-managed storage account 'mysa' in vault 'mykv'. Specifically, the sequence above performs the following: - gets a (pre-existing) storage account - gets a (pre-existing) key vault - adds a KeyVault-managed storage account to the vault, setting Key1 as the active key, and with a regeneration period of 180 days - sets a storage context for the specified storage account, with Key1 - creates an account SAS token for services Blob, File, Table and Queue, for resource types Service, Container and Object, with all permissions, over https and with the specified start and end dates - sets a KeyVault-managed storage SAS definition in the vault, with the template uri as the SAS token created above, of SAS type 'account' and valid for 30 days - retrieves the actual access token from the KeyVault secret corresponding to the SAS definition - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultmanagedstoragesasdefinition - - - Get-AzKeyVaultManagedStorageSasDefinition - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - - - - - - Set-AzKeyVaultSecret - Set - AzKeyVaultSecret - - Creates or updates a secret in a key vault. - - - - The Set-AzKeyVaultSecret cmdlet creates or updates a secret in a key vault in Azure Key Vault. If the secret does not exist, this cmdlet creates it. If the secret already exists, this cmdlet creates a new version of that secret. - - - - Set-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-AzKeyVaultSecret - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-AzKeyVaultSecret - - VaultName - - Specifies the name of the key vault to which this secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - Name - - Specifies the name of a secret to modify. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ContentType - - Specifies the content type of a secret. To delete the existing content type, specify an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Disable - - Indicates that this cmdlet disables a secret. - - SwitchParameter - - SwitchParameter - - - False - - - Expires - - Specifies the expiration time, as a DateTime object, for the secret that this cmdlet updates. This parameter uses Coordinated Universal Time (UTC). To obtain a DateTime object, use the Get-Date cmdlet. For more information, type `Get-Help Get-Date`. - - DateTime - - DateTime - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Specifies the name of a secret to modify. This cmdlet constructs the fully qualified domain name (FQDN) of a secret based on the name that this parameter specifies, the name of the key vault, and your current environment. - - String - - String - - - None - - - NotBefore - - Specifies the time, as a DateTime object, before which the secret cannot be used. This parameter uses UTC. To obtain a DateTime object, use the Get-Date cmdlet. - - DateTime - - DateTime - - - None - - - SecretValue - - Specifies the value for the secret as a SecureString object. To obtain a SecureString object, use the ConvertTo-SecureString cmdlet. For more information, type `Get-Help ConvertTo-SecureString`. - - SecureString - - SecureString - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - Hashtable - - Hashtable - - - None - - - VaultName - - Specifies the name of the key vault to which this secret belongs. This cmdlet constructs the FQDN of a key vault based on the name that this parameter specifies and your current environment. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - Example 1: Modify the value of a secret using default attributes - $Secret = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-AzKeyVaultSecret -VaultName 'Contoso' -Name 'ITSecret' -SecretValue $Secret - -Vault Name : Contoso -Name : ITSecret -Version : 8b5c0cb0326e4350bd78200fac932b51 -Id : https://contoso.vault.azure.net:443/secrets/ITSecret/8b5c0cb0326e4350bd78200fac932b51 -Enabled : True -Expires : -Not Before : -Created : 5/25/2018 6:39:30 PM -Updated : 5/25/2018 6:39:30 PM -Content Type : -Tags : - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Secret variable. For more information, type `Get-Help ConvertTo-SecureString`. The second command modifies value of the secret named ITSecret in the key vault named Contoso. The secret value becomes the value stored in $Secret. - - - - - - Example 2: Modify the value of a secret using custom attributes - $Secret = ConvertTo-SecureString -String "****" -AsPlainText -Force -$Expires = (Get-Date).AddYears(2).ToUniversalTime() -$NBF =(Get-Date).ToUniversalTime() -$Tags = @{ 'Severity' = 'medium'; 'IT' = 'true'} -$ContentType = 'txt' -Set-AzKeyVaultSecret -VaultName 'Contoso' -Name 'ITSecret' -SecretValue $Secret -Expires $Expires -NotBefore $NBF -ContentType $ContentType -Disable -Tags $Tags - -Vault Name : Contoso -Name : ITSecret -Version : a2c150be3ea24dd6b8286986e6364851 -Id : https://contoso.vault.azure.net:443/secrets/ITSecret/a2c150be3ea24dd6b8286986e6364851 -Enabled : False -Expires : 5/25/2020 6:40:00 PM -Not Before : 5/25/2018 6:40:05 PM -Created : 5/25/2018 6:41:22 PM -Updated : 5/25/2018 6:41:22 PM -Content Type : txt -Tags : Name Value - Severity medium - IT true - - The first command converts a string into a secure string by using the ConvertTo-SecureString cmdlet, and then stores that string in the $Secret variable. For more information, type `Get-Help ConvertTo-SecureString`. The next commands define custom attributes for the expiry date, tags, and context type, and store the attributes in variables. The final command modifies values of the secret named ITSecret in the key vault named Contoso, by using the values specified previously as variables. - - - - - - Example 3: Modify the value of a secret using default attributes (using Uri) - $Secret = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-AzKeyVaultSecret -Id 'https://contoso.vault.azure.net/secrets/ITSecret' -SecretValue $Secret - -Vault Name : Contoso -Name : ITSecret -Version : 8b5c0cb0326e4350bd78200fac932b51 -Id : https://contoso.vault.azure.net:443/secrets/ITSecret/8b5c0cb0326e4350bd78200fac932b51 -Enabled : True -Expires : -Not Before : -Created : 5/25/2018 6:39:30 PM -Updated : 5/25/2018 6:39:30 PM -Content Type : -Tags : - - This command sets or updates the value of the secret named secret1 in the Key Vault named Contoso using the secret’s URI. - - - - - - Example 4: Create a secret in azure key vault by command Set-Secret in module Microsoft.PowerShell.SecretManagement - # Install module Microsoft.PowerShell.SecretManagement -Install-Module Microsoft.PowerShell.SecretManagement -Repository PSGallery -AllowPrerelease -# Register vault for Secret Management -Register-SecretVault -Name AzKeyVault -ModuleName Az.KeyVault -VaultParameters @{ AZKVaultName = 'test-kv'; SubscriptionId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' } -# Set secret for vault AzKeyVault -$secure = ConvertTo-SecureString -String "****" -AsPlainText -Force -Set-Secret -Name secureSecret -SecureStringSecret $secure -Vault AzKeyVault - -None - - This example sets a secret named `secureSecret` in azure key vault `test-kv` by command `Set-Secret` in module `Microsoft.PowerShell.SecretManagement`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/set-azkeyvaultsecret - - - Get-AzKeyVaultSecret - - - - Remove-AzKeyVaultSecret - - - - - - - Stop-AzKeyVaultCertificateOperation - Stop - AzKeyVaultCertificateOperation - - Cancels a certificate operation in key vault. - - - - The Stop-AzKeyVaultCertificateOperation cmdlet cancels a certificate operation in the Azure Key Vault service. - - - - Stop-AzKeyVaultCertificateOperation - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzKeyVaultCertificateOperation - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Operation object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - None - - - Name - - Specifies the name of a certificate. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run.Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateOperation - - - - - - - - - - - - - - ---------- Example 1: Cancel a certificate operation ---------- - Stop-AzKeyVaultCertificateOperation -VaultName "Contoso01" -Name "TestCert02" -Force - -Status : inProgress -CancellationRequested : True -CertificateSigningRequest : MIICpjCCAY4CAQAwFjEUMBIGA1UEAxMLY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVr6EVwsd48qDVORsF4V4w4N1aQCUirFW7b+kwoTvSOL4SfMiWcPmno0uxmQQoh - gz157bC3sKFLyBUsGCmS4i7uWkBOSEpCh8L3FKU4XMqRROlUM9AqswzB0e1sURCqevEJA80xFpfTgkeqpm44m4jr6p7gu+h1PBf9Dt7b43Gybde5DUlGrrOiTkOIAF0eU2iNVeHOapoj8m1XHmzO1BARs - oa0pSDxO/aMgeuq/QPkWG64Iiw55U20byKZ86u3Y4g192HsPwsrHkf9ZSYR2M9BYM3YGoT/dkCmAtP4LQAsOwf1+S0a/TwRtrnoOHbPFI6HYSY3TY1iqzZ9xItfgalAgMBAAGgSzBJBgkqhkiG9w0BCQ4 - xPDA6MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAjxUX5PGhri9qJTxSleGEbMVkxhhn3nuPUgxujEzrcQVr - fZAACJHbOnga/QYwpxumKWnkX9YdWxb58PPn+nLV2gYP3eYEyJ4DR9XDcKpoQxZahUdqD3JZXhWPIcN05tw9Fuq8ziw94BjLZW3h3iDamqkBnysJYW58FBp1H8Ejqk0Iynbo0V223Innq/7QB2fVwe3ZJ - JecT8YxHJjVQ5psdDpEWgLUG/DFiAPHdwupI7JjvtvQmT3AotL0x5GNx2bWNH5hHIXsX4bnbxZgNQnTB2w3tQ3QeuKt8fUx2S0xtxPllaCUul6efa84TNqdMcMfyxCarIwDP6qdhS+CDU1uUA== -ErrorCode : -ErrorMessage : - - This command cancels the TestCert02 certificate operation. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/stop-azkeyvaultcertificateoperation - - - Get-AzKeyVaultCertificateOperation - - - - Remove-AzKeyVaultCertificateOperation - - - - - - - Undo-AzKeyVaultCertificateRemoval - Undo - AzKeyVaultCertificateRemoval - - Recovers a deleted certificate in a key vault into an active state. - - - - The Undo-AzKeyVaultCertificateRemoval cmdlet will recover a previously deleted certificate. The recovered certificate will be active and can be used for all operations. Caller needs to have 'recover' permission in order to perform this operation. - - - - Undo-AzKeyVaultCertificateRemoval - - InputObject - - Deleted Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultCertificateRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment and certificate name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment and certificate name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultCertificateRemoval -VaultName 'MyKeyVault' -Name 'MyCertificate' - -Certificate : [Subject] - CN=contoso.com - - [Issuer] - CN=contoso.com - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 5/24/2018 10:58:13 AM - - [Not After] - 11/24/2018 10:08:13 AM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -KeyId : https://mykeyvault.vault.azure.net:443/keys/mycertificate/7fe415d5518240c1a6fce89986b8d334 -SecretId : https://mykeyvault.vault.azure.net:443/secrets/mycertificate/7fe415d5518240c1a6fce89986b8d334 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -RecoveryLevel : Recoverable+Purgeable -Enabled : True -Expires : 11/24/2018 6:08:13 PM -NotBefore : 5/24/2018 5:58:13 PM -Created : 5/24/2018 6:08:13 PM -Updated : 5/24/2018 6:08:13 PM -Tags : -VaultName : MyKeyVault -Name : MyCertificate -Version : 7fe415d5518240c1a6fce89986b8d334 -Id : https://mykeyvault.vault.azure.net:443/certificates/mycertificate/7fe415d5518240c1a6fce89986b8d334 - - This command will recover the certificate 'MyCertificate' that was previously deleted, into an active and usable state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultcertificateremoval - - - Remove-AzKeyVaultCertificate - - - - Get-AzKeyVaultCertificate - - - - - - - Undo-AzKeyVaultKeyRemoval - Undo - AzKeyVaultKeyRemoval - - Recovers a deleted key in a key vault into an active state. - - - - The Undo-AzKeyVaultKeyRemoval cmdlet will recover a previously deleted key. The recovered key will be active and can be used for all normal key operations. Caller needs to have 'recover' permission in order to perform this operation. - - - - Undo-AzKeyVaultKeyRemoval - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultKeyRemoval - - InputObject - - Deleted key object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultKeyRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - InputObject - - Deleted key object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultKeyRemoval -VaultName 'MyKeyVault' -Name 'MyKey' - -Vault Name : MyKeyVault -Name : MyKey -Version : 1af807cc331a49d0b52b7c75e1b2366e -Id : https://mykeybault.vault.azure.net:443/keys/mykey/1af807cc331a49d0b52b7c75e1b2366e -Enabled : True -Expires : -Not Before : -Created : 5/24/2018 8:32:27 PM -Updated : 5/24/2018 8:32:27 PM -Purge Disabled : False -Tags : - - This command will recover the key 'MyKey' that was previously deleted, into an active and usable state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultkeyremoval - - - Remove-AzKeyVaultKey - - - - Add-AzKeyVaultKey - - - - Get-AzKeyVaultKey - - - - - - - Undo-AzKeyVaultManagedHsmRemoval - Undo - AzKeyVaultManagedHsmRemoval - - Recover a managed HSM. - - - - Recover a previously deleted HSM for which soft delete was enabled. - - - - Undo-AzKeyVaultManagedHsmRemoval - - InputObject - - Deleted HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. - By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. - Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultManagedHsmRemoval - - Name - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the deleted HSM resource group. - - System.String - - System.String - - - None - - - Location - - Specifies the deleted HSM original Azure region. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. - By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. - Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted HSM object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - None - - - Location - - Specifies the deleted HSM original Azure region. - - System.String - - System.String - - - None - - - Name - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the deleted HSM resource group. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. - By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. - Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedManagedHsm - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - - - - - --------------- Example 1: Recover a deleted HSM --------------- - Undo-AzKeyVaultManagedHsmRemoval -Name test001 -ResourceGroupName test-rg -Location westus - -Name Resource Group Name Location SKU ProvisioningState ----- ------------------- -------- --- ----------------- -test001 test-rg West US StandardB1 Succeeded - - This command recovers a managed HSM called `test001` from deleted state. - - - - - - ---------- Example 2: Recover a deleted HSM by piping ---------- - Get-AzKeyVaultManagedHsm -Name test001 -Location westus -InRemovedState | Undo-AzKeyVaultManagedHsmRemoval - -Name Resource Group Name Location SKU ProvisioningState ----- ------------------- -------- --- ----------------- -test001 test-rg West US StandardB1 Succeeded - - This command recovers a managed HSM called `test001` from deleted state by piping. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultmanagedhsmremoval - - - New-AzKeyVaultManagedHsm - - - - Get-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Update-AzKeyVaultManagedHsm - - - - - - - Undo-AzKeyVaultManagedStorageAccountRemoval - Undo - AzKeyVaultManagedStorageAccountRemoval - - Recovers a previously deleted KeyVault-managed storage account. - - - - The Undo-AzKeyVaultManagedStorageAccountRemoval command recovers a previously deleted managed storage account, provided that soft delete is enabled for this vault, and that the attempt to recover occurs during the recovery interval. - - - - Undo-AzKeyVaultManagedStorageAccountRemoval - - InputObject - - Deleted Managed Storage Account object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultManagedStorageAccountRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Name of the KeyVault managed storage account. Cmdlet constructs the FQDN of the target from vault name, currently selected environment and the name of the managed storage account. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted Managed Storage Account object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - None - - - Name - - Name of the KeyVault managed storage account. Cmdlet constructs the FQDN of the target from vault name, currently selected environment and the name of the managed storage account. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultManagedStorageAccount -VaultName myVault -Name myAccount -InRemovedState -Undo-AzKeyVaultManagedStorageAccountRemoval -VaultName myVault -Name myAccount - -Id : https://myvault.vault.azure.net:443/storage/myaccount -Vault Name : myVault -AccountName : myAccount -Account Resource Id : /subscriptions/8bc48661-1801-4b7a-8ca1-6a3cadfb4870/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/myaccount -Active Key Name : key2 -Auto Regenerate Key : False -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 4/25/2018 1:50:32 AM -Updated : 4/25/2018 1:50:32 AM -Tags : - - This sequence of commands determines whether the specified storage account exists in the vault in a deleted state; the subsequent command recovers the deleted storage account, bringing it back into an active state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultmanagedstorageaccountremoval - - - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - Undo - AzKeyVaultManagedStorageSasDefinitionRemoval - - Recovers a previously deleted KeyVault-managed storage SAS definition. - - - - The Undo-AzKeyVaultManagedStorageSasDefinitionRemoval command recovers a previously deleted managed storage SAS definition, provided that soft delete is enabled for this vault, and that the attempt to recover occurs during the recovery interval. - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - InputObject - - Deleted managed storage SAS definition object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - AccountName - - KeyVault-managed storage account name. Cmdlet constructs the FQDN of a managed storage SAS definition from vault name, currently-selected environment and managed storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - KeyVault-managed storage account name. Cmdlet constructs the FQDN of a managed storage SAS definition from vault name, currently-selected environment and managed storage account name. - - System.String - - System.String - - - None - - - Name - - Name of the KeyVault-managed storage SAS definition. Cmdlet constructs the FQDN of the target from vault name, currently-selected environment, the name of the managed storage account and the name of the SAS definition. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - KeyVault-managed storage account name. Cmdlet constructs the FQDN of a managed storage SAS definition from vault name, currently-selected environment and managed storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted managed storage SAS definition object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - None - - - Name - - Name of the KeyVault-managed storage SAS definition. Cmdlet constructs the FQDN of the target from vault name, currently-selected environment, the name of the managed storage account and the name of the SAS definition. - - System.String - - System.String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultManagedStorageSasDefinitionIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageSasDefinition - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AzKeyVaultManagedStorageSasDefinition -VaultName myVault -AccountName myAccount -Name mySasName -InRemovedState -Undo-AzKeyVaultManagedStorageSasDefinitionRemoval -VaultName myVault -AccountName myAccount -Name mySasName - -Id : https://myvault.vault.azure.net:443/storage/myaccount/sas/mysasname -Secret Id : https://myvault.vault.azure.net/secrets/myaccount-mysasname -Vault Name : myVault -AccountName : myAccount -Name : mySasName -Parameter : -Enabled : True -Created : 5/24/2018 9:11:08 PM -Updated : 5/24/2018 9:11:08 PM -Tags : - - This sequence of commands determines whether the specified storage SAS definition exists in the vault in a deleted state; the subsequent command recovers the deleted sas definition, bringing it back into an active state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultmanagedstoragesasdefinitionremoval - - - Get-AzKeyVaultManagedStorageSasDefinition - - - - Remove-AzKeyVaultManagedStorageSasDefinition - - - - Set-AzKeyVaultManagedStorageSasDefinition - - - - - - - Undo-AzKeyVaultRemoval - Undo - AzKeyVaultRemoval - - Recovers a deleted key vault into an active state. - - - - The Undo-AzKeyVaultRemoval cmdlet will recover a previously deleted key vault. The recovered vault will be active after recovery - - - - Undo-AzKeyVaultRemoval - - InputObject - - Deleted vault object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Undo-AzKeyVaultRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - Location - - Specifies the deleted vault original Azure region. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted vault object - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - None - - - Location - - Specifies the deleted vault original Azure region. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of an existing resource group in which to create the key vault. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVault - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultRemoval -VaultName 'MyKeyVault' -ResourceGroupName 'MyResourceGroup' -Location 'eastus2' -Tag @{"x"= "y"} - -Vault Name : MyKeyVault -Resource Group Name : MyResourceGroup -Location : eastus2 -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myresourcegroup/providers - /Microsoft.KeyVault/vaults/mykeyvault -Vault URI : https://mykeyvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : True -Enabled For Template Deployment? : True -Enabled For Disk Encryption? : True -Soft Delete Enabled? : True -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update - -Tags : - Name Value - ==== ===== - x y - - This command will recover the key vault 'MyKeyVault' that was previously deleted from eastus2 region and 'MyResourceGroup' resource group, into an active and usable state. It also replaces the tags with new tag. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultremoval - - - Remove-AzKeyVault - - - - New-AzKeyVault - - - - Get-AzKeyVault - - - - - - - Undo-AzKeyVaultSecretRemoval - Undo - AzKeyVaultSecretRemoval - - Recovers a deleted secret in a key vault into an active state. - - - - The Undo-AzKeyVaultSecretRemoval cmdlet will recover a previously deleted secret. The recovered secret will be active and can be used for all normal secret operations. Caller needs to have 'recover' permission in order to perform this operation. - - - - Undo-AzKeyVaultSecretRemoval - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Undo-AzKeyVaultSecretRemoval - - InputObject - - Deleted secret object - - PSDeletedKeyVaultSecretIdentityItem - - PSDeletedKeyVaultSecretIdentityItem - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Undo-AzKeyVaultSecretRemoval - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Deleted secret object - - PSDeletedKeyVaultSecretIdentityItem - - PSDeletedKeyVaultSecretIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSDeletedKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Undo-AzKeyVaultSecretRemoval -VaultName 'MyKeyVault' -Name 'MySecret' - -Vault Name : MyKeyVault -Name : MySecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://mykeyvault.vault.azure.net:443/secrets/mysecret/f622abc7b1394092812f1eb0f85dc91c -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command will recover the secret 'MySecret' that was previously deleted, into an active and usable state. - - - - - - -------------------------- Example 2 -------------------------- - Undo-AzKeyVaultSecretRemoval -Id "https://mykeyvault.vault.azure.net:443/secrets/mysecret/" - -Vault Name : MyKeyVault -Name : MySecret -Version : f622abc7b1394092812f1eb0f85dc91c -Id : https://mykeyvault.vault.azure.net:443/secrets/mysecret/f622abc7b1394092812f1eb0f85dc91c -Enabled : True -Expires : -Not Before : -Created : 4/19/2018 5:56:02 PM -Updated : 4/26/2018 7:48:40 PM -Content Type : -Tags : - - This command will recover the secret 'MySecret' that was previously deleted, into an active and usable state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/undo-azkeyvaultsecretremoval - - - Remove-AzKeyVaultSecret - - - - Set-AzKeyVaultSecret - - - - Get-AzKeyVaultSecret - - - - - - - Update-AzKeyVault - Update - AzKeyVault - - Update the state of an Azure key vault. - - - - This cmdlet updates the state of an Azure key vault. - - - - Update-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVault - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the key vault. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableRbacAuthorization - - Disable or enable this key vault to authorize data actions by Role Based Access Control (RBAC). - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - EnablePurgeProtection - - Enable the purge protection functionality for this key vault. Once enabled it cannot be disabled. It requires soft-delete to be turned on. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key vault object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - PublicNetworkAccess - - Specifies whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the key vault. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Name of the key vault. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------- Example 1: Enable purge protection -------------- - Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName | Update-AzKeyVault -EnablePurgeProtection - - Enables purge protection using piping syntax. - - - - - - ------------- Example 2: Enable RBAC Authorization ------------- - Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName | Update-AzKeyVault -DisableRbacAuthorization $false - - Enables RBAC Authorization using piping syntax. - - - - - - --------------------- Example 3: Set tags --------------------- - Get-AzKeyVault -VaultName $keyVaultName | Update-AzKeyVault -Tags @{key = "value"} - - Sets the tags of a key vault named $keyVaultName. - - - - - - -------------------- Example 4: Clean tags -------------------- - Get-AzKeyVault -VaultName $keyVaultName | Update-AzKeyVault -Tags @{} - - Deletes all tags of a key vault named $keyVaultName. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvault - - - - - - Update-AzKeyVaultCertificate - Update - AzKeyVaultCertificate - - Modifies editable attributes of a certificate. - - - - The Update-AzKeyVaultCertificate cmdlet modifies the editable attributes of a certificate. - - - - Update-AzKeyVaultCertificate - - InputObject - - Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Version - - Certificate version. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment, certificate name and certificate version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enable a certificate if value is true. Disable a certificate if value is false. If not specified, the existing value of the certificate's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return certificate object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable representing certificate tags. If not specified, the existing tags of the sertificate remain unchanged. Remove a tag by specifying an empty Hashtable. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultCertificate - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - Version - - Certificate version. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment, certificate name and certificate version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enable a certificate if value is true. Disable a certificate if value is false. If not specified, the existing value of the certificate's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return certificate object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable representing certificate tags. If not specified, the existing tags of the sertificate remain unchanged. Remove a tag by specifying an empty Hashtable. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enable a certificate if value is true. Disable a certificate if value is false. If not specified, the existing value of the certificate's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - InputObject - - Certificate object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - None - - - Name - - Certificate name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return certificate object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable representing certificate tags. If not specified, the existing tags of the sertificate remain unchanged. Remove a tag by specifying an empty Hashtable. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Version - - Certificate version. Cmdlet constructs the FQDN of a certificate from vault name, currently selected environment, certificate name and certificate version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificateIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultCertificate - - - - - - - - - - - - - - --- Example 1: Modify the tags associated with a certificate --- - $Tags = @{ "Team" = "Azure" ; "Role" = "Engg" } -Update-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01" -Tag $Tags -PassThru - -Name : TestCert01 -Certificate : [Subject] - CN=AZURE - - [Issuer] - CN=AZURE - - [Serial Number] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - - [Not Before] - 7/27/2016 6:50:01 PM - - [Not After] - 7/27/2018 7:00:01 PM - - [Thumbprint] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - -Id : https://ContosoKV01.vault.azure.net:443/certificates/TestCert01 -KeyId : https://ContosoKV01.vault.azure.net:443/keys/TestCert01 -SecretId : https://ContosoKV01.vault.azure.net:443/secrets/TestCert01 -Thumbprint : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Tags : {[Role, Engg], [Team, Azure]} -Enabled : True -Created : 7/28/2016 2:00:01 AM -Updated : 8/1/2016 5:37:48 PM - - The first command assigns an array of key/value pairs to the $Tags variable. The second command sets the tags value of the certificate named TestCert01 to be $Tags. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzKeyVaultCertificate -Enable $true -Name 'TestCert01' -VaultName 'ContosoKV01' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultcertificate - - - - - - Update-AzKeyVaultKey - Update - AzKeyVaultKey - - Updates the attributes of a key in a key vault. - - - - The Update-AzKeyVaultKey cmdlet updates the editable attributes of a key in a key vault. - - - - Update-AzKeyVaultKey - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - - System.Management.Automation.SwitchParameter - - - False - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultKey - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultKey - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - Value of true enables the key and a value of false disabless the key. If not specified, the existing enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Expires - - The expiration time of a key in UTC time. If not specified, the existing expiration time of the key remains unchanged. Please notice that expirys is ignored for Key Exchange Key used in BYOK process. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - HsmName - - HSM name. Cmdlet constructs the FQDN of a managed HSM based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Immutable - - Sets the release policy as immutable state. Once marked immutable, this flag cannot be reset and the policy cannot be changed under any circumstances. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Key object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - None - - - KeyOps - - The operations that can be performed with the key. If not specified, the existing key operations of the key remain unchanged. - - System.String[] - - System.String[] - - - None - - - Name - - Key name. Cmdlet constructs the FQDN of a key from vault name, currently selected environment and key name. - - System.String - - System.String - - - None - - - NotBefore - - The UTC time before which key can't be used. If not specified, the existing NotBefore attribute of the key remains unchanged. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, returns the updated key bundle object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ReleasePolicyPath - - A path to a file containing JSON policy definition. The policy rules under which a key can be exported. - - System.String - - System.String - - - None - - - Tag - - A hashtable represents key tags. If not specified, the existings tags of the key remain unchanged. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Version - - Key version. Cmdlet constructs the FQDN of a key from vault name, currently selected environment, key name and key version. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKeyIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultKey - - - - - - - - - - - - - - Example 1: Modify a key to enable it, and set the expiration date and tags - $Expires = (Get-Date).AddYears(2).ToUniversalTime() -$Tags = @{'Severity' = 'high'; 'Accounting' = 'true'} -Update-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -Expires $Expires -Enable $True -Tag $Tags -PassThru - -Vault Name : Contoso -Name : ITSoftware -Version : 394f9379a47a4e2086585468de6c7ae5 -Id : https://Contoso.vault.azure.net:443/keys/ITSoftware/394f9379a47a4e2086585468de6c7ae5 -Enabled : True -Expires : 5/25/2020 7:58:07 PM -Not Before : -Created : 4/6/2018 11:31:36 PM -Updated : 5/25/2018 7:59:02 PM -Purge Disabled : False -Tags : Name Value - Severity high - Accounting true - - The first command creates a DateTime object by using the Get-Date cmdlet. That object specifies a time two years in the future. The command stores that date in the $Expires variable. For more information, type `Get-Help Get-Date`. The second command creates a variable to store tag values of high severity and Accounting. The final command modifies a key named ITSoftware. The command enables the key, sets its expiration time to the time stored in $Expires, and sets the tags that are stored in $Tags. - - - - - - ---------- Example 2: Modify a key to delete all tags ---------- - Update-AzKeyVaultKey -VaultName 'Contoso' -Name 'ITSoftware' -Version '394f9379a47a4e2086585468de6c7ae5' -Tag @{} - -Vault Name : Contoso -Name : ITSoftware -Version : 394f9379a47a4e2086585468de6c7ae5 -Id : https://Contoso.vault.azure.net:443/keys/ITSoftware/394f9379a47a4e2086585468de6c7ae5 -Enabled : True -Expires : 5/25/2020 7:58:07 PM -Not Before : -Created : 4/6/2018 11:31:36 PM -Updated : 5/25/2018 8:00:08 PM -Purge Disabled : False -Tags : - - This commands deletes all tags for a specific version of a key named ITSoftware. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultkey - - - - - - Update-AzKeyVaultManagedHsm - Update - AzKeyVaultManagedHsm - - Update the state of an Azure managed HSM. - - - - This cmdlet updates the state of an Azure managed HSM. - - - - Update-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Managed HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedHsm - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - - System.Management.Automation.SwitchParameter - - - False - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the managed HSM. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnablePurgeProtection - - specifying whether protection against purge is enabled for this managed HSM pool. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Managed HSM object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the managed HSM. - - System.String - - System.String - - - None - - - PublicNetworkAccess - - Controls permission for data plane traffic coming from public networks while private endpoint is enabled. - - System.String - - System.String - - - None - - - ResourceGroupName - - Name of the resource group. - - System.String - - System.String - - - None - - - ResourceId - - Resource ID of the managed HSM. - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - Tag - - A hash table which represents resource tags. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentity - - The set of user assigned identities associated with the managed HSM. Its value will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - - - - - ----------- Example 1: Update a managed Hsm directly ----------- - Update-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $resourceGroupName -Tag @{testKey="testValue"} | Format-List - -Managed HSM Name : testmhsm -Resource Group Name : testmhsm -Location : eastus2euap -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testmhsm/provid - ers/Microsoft.KeyVault/managedHSMs/testmhsm -HSM Pool URI : -Tenant ID : xxxxxx-xxxx-xxxx-xxxxxxxxxxxx -Initial Admin Object Ids : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : False -Soft Delete Retention Period (days) : 90 -Provisioning State : Provisioning -Status Message : Resource creation in progress. Starting service... -Tags : - Name Value - ==== ===== - testKey testValued - - Updates tags for the managed Hsm named `$hsmName` in resource group `$resourceGroupName`. - - - - - - --------- Example 2: Update a managed Hsm using piping --------- - Get-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $resourceGroupName | Update-AzKeyVaultManagedHsm -Tag @{testKey="testValue"} - - Updates tags for the managed Hsm using piping syntax. - - - - - - ----- Example 3: Enable purge protection for a managed Hsm ----- - Update-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $resourceGroupName -EnablePurgeProtection | Format-List - -Managed HSM Name : testmhsm -Resource Group Name : test-rg -Location : eastus -Resource ID : /subscriptions/xxxxxx71-1bf0-4dda-aec3-xxxxxxxxxxxx/resourceGroups/test-rg/provide - rs/Microsoft.KeyVault/managedHSMs/testmhsm -HSM Pool URI : -Tenant ID : 54xxxxxx-38d6-4fb2-bad9-xxxxxxxxxxxx -Initial Admin Object Ids : {xxxxxx9e-5be9-4f43-abd2-xxxxxxxxxxxx} -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : True -Soft Delete Retention Period (days) : 70 -Provisioning State : Succeeded -Status Message : The Managed HSM is provisioned and ready to use. -Tags : - - Enables purge protection for the managed Hsm named `$hsmName` in resource group `$resourceGroupName`. - - - - - - -- Example 4: Update user assigned identity for a managed Hsm -- - Update-AzKeyVaultManagedHsm -Name testmhsm -ResourceGroupName test-rg -UserAssignedIdentity /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bez-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/bez-id02 | Format-List - -Managed HSM Name : testmshm -Resource Group Name : test-rg -Location : eastus2euap -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/test-rg/pro - viders/Microsoft.KeyVault/managedHSMs/testmhsm -HSM Pool URI : -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -Initial Admin Object Ids : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} -SKU : StandardB1 -Soft Delete Enabled? : True -Enabled Purge Protection? : False -Soft Delete Retention Period (days) : 70 -Public Network Access : Enabled -IdentityType : UserAssigned -UserAssignedIdentities : /subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identityName -Provisioning State : Succeeded -Status Message : The Managed HSM is provisioned and ready to use. -Security Domain ActivationStatus : Active -Security Domain ActivationStatusMessage : Your HSM has been activated and can be used for cryptographic operations. -Regions : -Tags - - This command adds an user assigned identity for the managed Hsm named `testmshm` in resource group `test-rg`. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedhsm - - - New-AzKeyVaultManagedHsm - - - - Remove-AzKeyVaultManagedHsm - - - - Get-AzKeyVaultManagedHsm - - - - Undo-AzKeyVaultManagedHsmRemoval - - - - - - - Update-AzKeyVaultManagedStorageAccount - Update - AzKeyVaultManagedStorageAccount - - Update editable attributes of a Key Vault managed Azure Storage Account. - - - - Update the editable attributes of a Key Vault managed Azure Storage Account. - - - - Update-AzKeyVaultManagedStorageAccount - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - ActiveKeyName - - Active key name. If not specified, the existing value of managed storage account's active key name remains unchanged - - System.String - - System.String - - - None - - - AutoRegenerateKey - - Auto regenerate key. If not specified, the existing value of auto regenerate key of managed storage account remains unchanged - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enables a use of a managed storage account key for sas token generation if value is true. Disables use of a managed storage account key for sas token generation if value is false. If not specified, the existing value of the storage account's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return managed storage account object. - - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the active key. If not specified, the existing value of regeneration period of keys of managed storage account remains unchanged - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedStorageAccount - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - ActiveKeyName - - Active key name. If not specified, the existing value of managed storage account's active key name remains unchanged - - System.String - - System.String - - - None - - - AutoRegenerateKey - - Auto regenerate key. If not specified, the existing value of auto regenerate key of managed storage account remains unchanged - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enables a use of a managed storage account key for sas token generation if value is true. Disables use of a managed storage account key for sas token generation if value is false. If not specified, the existing value of the storage account's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return managed storage account object. - - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the active key. If not specified, the existing value of regeneration period of keys of managed storage account remains unchanged - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - ActiveKeyName - - Active key name. If not specified, the existing value of managed storage account's active key name remains unchanged - - System.String - - System.String - - - None - - - AutoRegenerateKey - - Auto regenerate key. If not specified, the existing value of auto regenerate key of managed storage account remains unchanged - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Enable - - If present, enables a use of a managed storage account key for sas token generation if value is true. Disables use of a managed storage account key for sas token generation if value is false. If not specified, the existing value of the storage account's enabled/disabled state remains unchanged. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return managed storage account object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RegenerationPeriod - - Regeneration period. If auto regenerate key is enabled, this value specifies the timespan after which managed storage account's inactive keygets auto regenerated and becomes the active key. If not specified, the existing value of regeneration period of keys of managed storage account remains unchanged - - System.Nullable`1[System.TimeSpan] - - System.Nullable`1[System.TimeSpan] - - - None - - - Tag - - Key-value pairs in the form of a hash table. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - Example 1: Update the active key to 'key2' on a Key Vault managed Azure Storage Account. - Update-AzKeyVaultManagedStorageAccount -VaultName 'myvault' -AccountName 'mystorageaccount' -ActiveKeyName 'key2' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key2 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Updates the Key Vault managed Azure Storage Account active key to 'key2'. 'key2' will be used to generate SAS tokens after this update. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzKeyVaultManagedStorageAccount -AccountName 'mystorageaccount' -AutoRegenerateKey $false -RegenerationPeriod $regenerationPeriod -VaultName 'myvault' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedstorageaccount - - - Az.KeyVault - - - - - - - Update-AzKeyVaultManagedStorageAccountKey - Update - AzKeyVaultManagedStorageAccountKey - - Regenerates the specified key of Key Vault managed Azure Storage Account. - - - - Regenerates the specified key of Key Vault managed Azure Storage Account and sets the key as the active key. Key Vault proxies the call to Azure Resource Manager to regenerate the key. The caller must posses permissions to regenerate keys on given Azure Storage Account. - - - - Update-AzKeyVaultManagedStorageAccountKey - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - KeyName - - Name of storage account key to regenerate and make active. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultManagedStorageAccountKey - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - KeyName - - Name of storage account key to regenerate and make active. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccountName - - Key Vault managed storage account name. Cmdlet constructs the FQDN of a managed storage account name from vault name, currently selected environment and manged storage account name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Do not ask for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ManagedStorageAccount object. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - None - - - KeyName - - Name of storage account key to regenerate and make active. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return an object by default. If this switch is specified, cmdlet returns the managed storage account that was deleted. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccountIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultManagedStorageAccount - - - - - - - - - - - - - - ----------------- Example 1: Regenerate a key ----------------- - Update-AzKeyVaultManagedStorageAccountKey -VaultName 'myvault' -AccountName 'mystorageaccount' -KeyName 'key1' - -Id : https://myvault.vault.azure.net:443/storage/mystorageaccount -Vault Name : myvault -AccountName : mystorageaccount -Account Resource Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.St - orage/storageAccounts/mystorageaccount -Active Key Name : key1 -Auto Regenerate Key : True -Regeneration Period : 90.00:00:00 -Enabled : True -Created : 5/21/2018 11:55:58 PM -Updated : 5/21/2018 11:55:58 PM -Tags : - - Regenerates 'key1' of account 'mystorageaccount' and sets 'key1' as the active of the Key Vault managed Azure Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultmanagedstorageaccountkey - - - Azure Key Vault PowerShell cmdlets - - - - - - - Update-AzKeyVaultNetworkRuleSet - Update - AzKeyVaultNetworkRuleSet - - Updates the network rule set on a key vault. - - - - The Update-AzKeyVaultNetworkRuleSet command updates the network rules in effect on the specified key vault. - - - - Update-AzKeyVaultNetworkRuleSet - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultNetworkRuleSet - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultNetworkRuleSet - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - Bypass - - Specifies bypass of network rule. - - - None - AzureServices - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - - Allow - Deny - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - - System.Management.Automation.SwitchParameter - - - False - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Bypass - - Specifies bypass of network rule. - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum] - - - None - - - DefaultAction - - Specifies default action of network rule. - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - System.Nullable`1[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - KeyVault object - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - None - - - IpAddressRange - - Specifies allowed network IP address range of network rule. - - System.String[] - - System.String[] - - - None - - - PassThru - - This Cmdlet does not return an object by default. If this switch is specified, it returns the updated key vault object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group associated with the key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - ResourceId - - KeyVault Resource Id - - System.String - - System.String - - - None - - - SubscriptionId - - The ID of the subscription. By default, cmdlets are executed in the subscription that is set in the current context. If the user specifies another subscription, the current cmdlet is executed in the subscription specified by the user. Overriding subscriptions only take effect during the lifecycle of the current cmdlet. It does not change the subscription in the context, and does not affect subsequent cmdlets. - - System.String - - System.String - - - None - - - VaultName - - Specifies the name of a key vault whose network rule is being modified. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - Specifies allowed virtual network resource identifier of network rule. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - System.String - - - - - - - - System.Nullable`1[[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleDefaultActionEnum, Microsoft.Azure.PowerShell.Cmdlets.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] - - - - - - - - System.Nullable`1[[Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultNetworkRuleBypassEnum, Microsoft.Azure.PowerShell.Cmdlets.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVault - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24" -ServiceEndpoint Microsoft.KeyVault -$virtualNetwork = New-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG -Location westus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet -$myNetworkResId = (Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myRG).Subnets[0].Id -Update-AzKeyVaultNetworkRuleSet -VaultName 'myVault' -ResourceGroupName myRG -Bypass AzureServices -IpAddressRange "10.0.1.0/24" -VirtualNetworkResourceId $myNetworkResId -PassThru - -Vault Name : myVault -Resource Group Name : myRG -Location : West US -Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers - /Microsoft.KeyVault/vaults/myvault -Vault URI : https://myvault.vault.azure.net/ -Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -SKU : Standard -Enabled For Deployment? : False -Enabled For Template Deployment? : False -Enabled For Disk Encryption? : False -Soft Delete Enabled? : -Access Policies : - Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx - Application ID : - Display Name : User Name (username@microsoft.com) - Permissions to Keys : get, create, delete, list, update, - import, backup, restore, recover - Permissions to Secrets : get, list, set, delete, backup, - restore, recover - Permissions to Certificates : get, delete, list, create, import, - update, deleteissuers, getissuers, listissuers, managecontacts, manageissuers, - setissuers, recover, backup, restore - Permissions to (Key Vault Managed) Storage : delete, deletesas, get, getsas, list, - listsas, regeneratekey, set, setsas, update, recover, backup, restore - - -Network Rule Set : - Default Action : Allow - Bypass : AzureServices - IP Rules : 10.0.1.0/24 - Virtual Network Rules : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx- - xxxxxxxxxxxxx/resourcegroups/myrg/providers/microsoft.network/virtualnetworks/myvn - et/subnets/frontendsubnet - -Tags : - - This command updates the network ruleset on the vault named 'myVault' for the specified IP range and the virtual network, allowing bypassing of the network rule for Azure services. - - - - - - -------------------------- Example 2 -------------------------- - Update-AzKeyVaultNetworkRuleSet -DefaultAction Allow -VaultName 'myVault' - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultnetworkruleset - - - - - - Update-AzKeyVaultSecret - Update - AzKeyVaultSecret - - Updates attributes of a secret in a key vault. - - - - The Update-AzKeyVaultSecret cmdlet updates editable attributes of a secret in a key vault. - - - - Update-AzKeyVaultSecret - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Update-AzKeyVaultSecret - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Update-AzKeyVaultSecret - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ContentType - - Secret's content type. If not specified, the existing value of the secret's content type remains unchanged. Remove the existing content type value by specifying an empty string. - - String - - String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - IAzureContextContainer - - IAzureContextContainer - - - None - - - Enable - - If present, enable a secret if value is true. Disable a secret if value is false. If not specified, the existing value of the secret's enabled/disabled state remains unchanged. - - Boolean - - Boolean - - - None - - - Expires - - The expiration time of a secret in UTC time. If not specified, the existing value of the secret's expiration time remains unchanged. - - DateTime - - DateTime - - - None - - - Id - - The URI of the KeyVault Secret. Please ensure it follows the format: `https://<vault-name>.vault.azure.net/secrets/<secret-name>/<version>` - - String - - String - - - None - - - InputObject - - Secret object - - PSKeyVaultSecretIdentityItem - - PSKeyVaultSecretIdentityItem - - - None - - - Name - - Secret name. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment and secret name. - - String - - String - - - None - - - NotBefore - - The UTC time before which secret can't be used. If not specified, the existing value of the secret's NotBefore attribute remains unchanged. - - DateTime - - DateTime - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - SwitchParameter - - SwitchParameter - - - False - - - Tag - - A hashtable representing secret tags. If not specified, the existing tags of the secret remain unchanged. Remove a tag by specifying an empty Hashtable. - - Hashtable - - Hashtable - - - None - - - VaultName - - Vault name. Cmdlet constructs the FQDN of a vault based on the name and currently selected environment. - - String - - String - - - None - - - Version - - Secret version. Cmdlet constructs the FQDN of a secret from vault name, currently selected environment, secret name and secret version. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecretIdentityItem - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSecret - - - - - - - - - - - - - - --------- Example 1: Modify the attributes of a secret --------- - $Expires = (Get-Date).AddYears(2).ToUniversalTime() -$Nbf = (Get-Date).ToUniversalTime() -$Tags = @{ 'Severity' = 'medium'; 'HR' = 'true'} -$ContentType= 'xml' -Update-AzKeyVaultSecret -VaultName 'ContosoVault' -Name 'HR' -Expires $Expires -NotBefore $Nbf -ContentType $ContentType -Enable $True -Tag $Tags -PassThru - -Vault Name : ContosoVault -Name : HR -Version : d476edfcd3544017a03bc49c1f3abec0 -Id : https://ContosoVault.vault.azure.net:443/secrets/HR/d476edfcd3544017a03bc49c1f3abec0 -Enabled : True -Expires : 5/25/2020 8:01:58 PM -Not Before : 5/25/2018 8:02:02 PM -Created : 4/11/2018 11:45:06 PM -Updated : 5/25/2018 8:02:45 PM -Content Type : xml -Tags : Name Value - Severity medium - HR true - - The first four commands define attributes for the expiry date, the NotBefore date, tags, and context type, and store the attributes in variables. The final command modifies the attributes for the secret named HR in the key vault named ContosoVault, using the stored variables. - - - - - - --- Example 2: Delete the tags and content type for a secret --- - Update-AzKeyVaultSecret -VaultName 'ContosoVault' -Name 'HR' -Version '9EEA45C6EE50490B9C3176A80AC1A0DF' -ContentType '' -Tag @{} - - This command deletes the tags and the content type for the specified version of the secret named HR in the key vault named Contoso. - - - - - - Example 3: Disable the current version of secrets whose name begins with IT - $Vault = 'ContosoVault' -$Prefix = 'IT' -Get-AzKeyVaultSecret $Vault | Where-Object {$_.Name -like $Prefix + '*'} | Update-AzKeyVaultSecret -Enable $False - - The first command stores the string value Contoso in the $Vault variable. The second command stores the string value IT in the $Prefix variable. The third command uses the Get-AzKeyVaultSecret cmdlet to get the secrets in the specified key vault, and then passes those secrets to the Where-Object cmdlet. The Where-Object cmdlet filters the secrets for names that begin with the characters IT. The command pipes the secrets that match the filter to the Update-AzKeyVaultSecret cmdlet, which disables them. - - - - - - - Example 4: Set the ContentType for all versions of a secret - - $VaultName = 'ContosoVault' -$Name = 'HR' -$ContentType = 'xml' -Get-AzKeyVaultKey -VaultName $VaultName -Name $Name -IncludeVersions | Update-AzKeyVaultSecret -ContentType $ContentType - - The first three commands define string variables to use for the VaultName , Name , and ContentType parameters. The fourth command uses the Get-AzKeyVaultKey cmdlet to get the specified keys, and pipes the keys to the Update-AzKeyVaultSecret cmdlet to set their content type to XML. - - - - - - Example 5: Delete the tags and content type for a secret (using Uri) - Update-AzKeyVaultSecret -Id 'https://ContosoVault.vault.azure.net:443/secrets/HR/9EEA45C6EE50490B9C3176A80AC1A0DF' -ContentType '' -Tag @{} - - This command deletes the tags and the content type for the specified version of the secret named HR in the key vault named Contoso. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultsecret - - - - - - Update-AzKeyVaultSetting - Update - AzKeyVaultSetting - - Update specific setting associated with the managed HSM. - - - - The Update-AzKeyVaultSetting cmdlet updates key vault account settings. This cmdlet updates a specific key vault account setting. - - - - Update-AzKeyVaultSetting - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultSetting - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultSetting - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - InputObject - - The location of the deleted vault. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzKeyVaultSetting - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HsmId - - Hsm Resource Id. - - System.String - - System.String - - - None - - - HsmName - - Name of the HSM. - - System.String - - System.String - - - None - - - HsmObject - - Hsm Object. - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - None - - - InputObject - - The location of the deleted vault. - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - None - - - Name - - Name of the setting. - - System.String - - System.String - - - None - - - PassThru - - Cmdlet does not return object by default. If this switch is specified, return Secret object. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Value - - Value of the setting. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSManagedHsm - - - - - - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyVaultSetting - - - - - - - - - - - - - - ---- Example 1: Update a specific key vault account setting ---- - Update-AzKeyVaultSetting -HsmName testmhsm -Name AllowKeyManagementOperationsThroughARM -Value true -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm`. - - - - - - Example 2: Update a specific key vault account setting same as another account setting - $setting = Get-AzKeyVaultSetting -HsmName testmhsm1 -Name AllowKeyManagementOperationsThroughARM -$setting | Update-AzKeyVaultSetting -HsmName testmhsm2 -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm2 - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm2` same with `testmhsm1`. - - - - - - Example 3: Update a specific key vault account setting via HsmObject - $hsmObject = Get-AzKeyVaultManagedHsm -Name testmhsm -Update-AzKeyVaultSetting -HsmObject $hsmObject -Name AllowKeyManagementOperationsThroughARM -Value true -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm` via HsmObject. - - - - - - Example 4: Update a specific key vault account setting via HsmId - $hsmObject = Get-AzKeyVaultManagedHsm -Name testmhsm -Update-AzKeyVaultSetting -HsmId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/managedHSMs/testmhsm-Name AllowKeyManagementOperationsThroughARM -Value true -PassThru - -Name Value Type HSM Name ----- ----- ---- -------- -AllowKeyManagementOperationsThroughARM true boolean testmhsm - - Update a specific key vault account setting named `AllowKeyManagementOperationsThroughARM` in a Managed Hsm named `testmhsm` via HsmObject. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.keyvault/update-azkeyvaultsetting - - - Get-AzKeyVaultSetting - - - - - \ No newline at end of file diff --git a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll b/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll deleted file mode 100644 index d4a22992eb53..000000000000 Binary files a/Modules/Az.KeyVault/6.3.1/Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll and /dev/null differ diff --git a/Modules/Az.KeyVault/6.3.1/PSGetModuleInfo.xml b/Modules/Az.KeyVault/6.3.1/PSGetModuleInfo.xml deleted file mode 100644 index 53382a82510c..000000000000 --- a/Modules/Az.KeyVault/6.3.1/PSGetModuleInfo.xml +++ /dev/null @@ -1,323 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.KeyVault - 6.3.1 - Module - Microsoft Azure PowerShell - Key Vault service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on Key Vault, please visit the following: https://learn.microsoft.com/azure/key-vault/ - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-14T03:15:54-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - KeyVault - SecretManagement - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Add-AzKeyVaultManagedHsmRegion - Get-AzKeyVaultManagedHsmRegion - Remove-AzKeyVaultManagedHsmRegion - Test-AzKeyVaultManagedHsmNameAvailability - Test-AzKeyVaultNameAvailability - - - - - Cmdlet - - - - Add-AzKeyVaultCertificate - Add-AzKeyVaultCertificateContact - Add-AzKeyVaultKey - Add-AzKeyVaultManagedStorageAccount - Add-AzKeyVaultNetworkRule - Backup-AzKeyVault - Backup-AzKeyVaultCertificate - Backup-AzKeyVaultKey - Backup-AzKeyVaultManagedStorageAccount - Backup-AzKeyVaultSecret - Export-AzKeyVaultSecurityDomain - Get-AzKeyVault - Get-AzKeyVaultCertificate - Get-AzKeyVaultCertificateContact - Get-AzKeyVaultCertificateIssuer - Get-AzKeyVaultCertificateOperation - Get-AzKeyVaultCertificatePolicy - Get-AzKeyVaultKey - Get-AzKeyVaultKeyRotationPolicy - Get-AzKeyVaultManagedHsm - Get-AzKeyVaultManagedStorageAccount - Get-AzKeyVaultManagedStorageSasDefinition - Get-AzKeyVaultRandomNumber - Get-AzKeyVaultRoleAssignment - Get-AzKeyVaultRoleDefinition - Get-AzKeyVaultSecret - Get-AzKeyVaultSetting - Import-AzKeyVaultCertificate - Import-AzKeyVaultSecurityDomain - Invoke-AzKeyVaultKeyOperation - Invoke-AzKeyVaultKeyRotation - New-AzKeyVault - New-AzKeyVaultCertificateAdministratorDetail - New-AzKeyVaultCertificateOrganizationDetail - New-AzKeyVaultCertificatePolicy - New-AzKeyVaultManagedHsm - New-AzKeyVaultNetworkRuleSetObject - New-AzKeyVaultRoleAssignment - New-AzKeyVaultRoleDefinition - Remove-AzKeyVault - Remove-AzKeyVaultAccessPolicy - Remove-AzKeyVaultCertificate - Remove-AzKeyVaultCertificateContact - Remove-AzKeyVaultCertificateIssuer - Remove-AzKeyVaultCertificateOperation - Remove-AzKeyVaultKey - Remove-AzKeyVaultManagedHsm - Remove-AzKeyVaultManagedStorageAccount - Remove-AzKeyVaultManagedStorageSasDefinition - Remove-AzKeyVaultNetworkRule - Remove-AzKeyVaultRoleAssignment - Remove-AzKeyVaultRoleDefinition - Remove-AzKeyVaultSecret - Restore-AzKeyVault - Restore-AzKeyVaultCertificate - Restore-AzKeyVaultKey - Restore-AzKeyVaultManagedStorageAccount - Restore-AzKeyVaultSecret - Set-AzKeyVaultAccessPolicy - Set-AzKeyVaultCertificateIssuer - Set-AzKeyVaultCertificatePolicy - Set-AzKeyVaultKeyRotationPolicy - Set-AzKeyVaultManagedStorageSasDefinition - Set-AzKeyVaultSecret - Stop-AzKeyVaultCertificateOperation - Undo-AzKeyVaultCertificateRemoval - Undo-AzKeyVaultKeyRemoval - Undo-AzKeyVaultManagedHsmRemoval - Undo-AzKeyVaultManagedStorageAccountRemoval - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - Undo-AzKeyVaultRemoval - Undo-AzKeyVaultSecretRemoval - Update-AzKeyVault - Update-AzKeyVaultCertificate - Update-AzKeyVaultKey - Update-AzKeyVaultManagedHsm - Update-AzKeyVaultManagedStorageAccount - Update-AzKeyVaultManagedStorageAccountKey - Update-AzKeyVaultNetworkRuleSet - Update-AzKeyVaultSecret - Update-AzKeyVaultSetting - - - - - DscResource - - - - Workflow - - - - Command - - - - Add-AzKeyVaultCertificate - Add-AzKeyVaultCertificateContact - Add-AzKeyVaultKey - Add-AzKeyVaultManagedStorageAccount - Add-AzKeyVaultNetworkRule - Backup-AzKeyVault - Backup-AzKeyVaultCertificate - Backup-AzKeyVaultKey - Backup-AzKeyVaultManagedStorageAccount - Backup-AzKeyVaultSecret - Export-AzKeyVaultSecurityDomain - Get-AzKeyVault - Get-AzKeyVaultCertificate - Get-AzKeyVaultCertificateContact - Get-AzKeyVaultCertificateIssuer - Get-AzKeyVaultCertificateOperation - Get-AzKeyVaultCertificatePolicy - Get-AzKeyVaultKey - Get-AzKeyVaultKeyRotationPolicy - Get-AzKeyVaultManagedHsm - Get-AzKeyVaultManagedStorageAccount - Get-AzKeyVaultManagedStorageSasDefinition - Get-AzKeyVaultRandomNumber - Get-AzKeyVaultRoleAssignment - Get-AzKeyVaultRoleDefinition - Get-AzKeyVaultSecret - Get-AzKeyVaultSetting - Import-AzKeyVaultCertificate - Import-AzKeyVaultSecurityDomain - Invoke-AzKeyVaultKeyOperation - Invoke-AzKeyVaultKeyRotation - New-AzKeyVault - New-AzKeyVaultCertificateAdministratorDetail - New-AzKeyVaultCertificateOrganizationDetail - New-AzKeyVaultCertificatePolicy - New-AzKeyVaultManagedHsm - New-AzKeyVaultNetworkRuleSetObject - New-AzKeyVaultRoleAssignment - New-AzKeyVaultRoleDefinition - Remove-AzKeyVault - Remove-AzKeyVaultAccessPolicy - Remove-AzKeyVaultCertificate - Remove-AzKeyVaultCertificateContact - Remove-AzKeyVaultCertificateIssuer - Remove-AzKeyVaultCertificateOperation - Remove-AzKeyVaultKey - Remove-AzKeyVaultManagedHsm - Remove-AzKeyVaultManagedStorageAccount - Remove-AzKeyVaultManagedStorageSasDefinition - Remove-AzKeyVaultNetworkRule - Remove-AzKeyVaultRoleAssignment - Remove-AzKeyVaultRoleDefinition - Remove-AzKeyVaultSecret - Restore-AzKeyVault - Restore-AzKeyVaultCertificate - Restore-AzKeyVaultKey - Restore-AzKeyVaultManagedStorageAccount - Restore-AzKeyVaultSecret - Set-AzKeyVaultAccessPolicy - Set-AzKeyVaultCertificateIssuer - Set-AzKeyVaultCertificatePolicy - Set-AzKeyVaultKeyRotationPolicy - Set-AzKeyVaultManagedStorageSasDefinition - Set-AzKeyVaultSecret - Stop-AzKeyVaultCertificateOperation - Undo-AzKeyVaultCertificateRemoval - Undo-AzKeyVaultKeyRemoval - Undo-AzKeyVaultManagedHsmRemoval - Undo-AzKeyVaultManagedStorageAccountRemoval - Undo-AzKeyVaultManagedStorageSasDefinitionRemoval - Undo-AzKeyVaultRemoval - Undo-AzKeyVaultSecretRemoval - Update-AzKeyVault - Update-AzKeyVaultCertificate - Update-AzKeyVaultKey - Update-AzKeyVaultManagedHsm - Update-AzKeyVaultManagedStorageAccount - Update-AzKeyVaultManagedStorageAccountKey - Update-AzKeyVaultNetworkRuleSet - Update-AzKeyVaultSecret - Update-AzKeyVaultSetting - Add-AzKeyVaultManagedHsmRegion - Get-AzKeyVaultManagedHsmRegion - Remove-AzKeyVaultManagedHsmRegion - Test-AzKeyVaultManagedHsmNameAvailability - Test-AzKeyVaultNameAvailability - - - - - - - * Upgraded nuget package to signed package._x000D__x000A_* Upgraded Azure.Core to 1.44.1. - - - - - - System.Collections.Specialized.OrderedDictionary - System.Object - - - - Name - Az.Accounts - - - MinimumVersion - 4.0.1 - - - CanonicalId - nuget:Az.Accounts/4.0.1 - - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Key Vault service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information on Key Vault, please visit the following: https://learn.microsoft.com/azure/key-vault/ - True - * Upgraded nuget package to signed package._x000D__x000A_* Upgraded Azure.Core to 1.44.1. - True - True - 3374973 - 143464978 - 2962648 - 1/14/2025 3:15:54 AM -05:00 - 1/14/2025 3:15:54 AM -05:00 - 1/30/2025 5:40:00 PM -05:00 - Azure ResourceManager ARM KeyVault SecretManagement PSModule PSEdition_Core PSEdition_Desktop PSCmdlet_Add-AzKeyVaultCertificate PSCommand_Add-AzKeyVaultCertificate PSCmdlet_Add-AzKeyVaultCertificateContact PSCommand_Add-AzKeyVaultCertificateContact PSCmdlet_Add-AzKeyVaultKey PSCommand_Add-AzKeyVaultKey PSCmdlet_Add-AzKeyVaultManagedStorageAccount PSCommand_Add-AzKeyVaultManagedStorageAccount PSCmdlet_Add-AzKeyVaultNetworkRule PSCommand_Add-AzKeyVaultNetworkRule PSCmdlet_Backup-AzKeyVault PSCommand_Backup-AzKeyVault PSCmdlet_Backup-AzKeyVaultCertificate PSCommand_Backup-AzKeyVaultCertificate PSCmdlet_Backup-AzKeyVaultKey PSCommand_Backup-AzKeyVaultKey PSCmdlet_Backup-AzKeyVaultManagedStorageAccount PSCommand_Backup-AzKeyVaultManagedStorageAccount PSCmdlet_Backup-AzKeyVaultSecret PSCommand_Backup-AzKeyVaultSecret PSCmdlet_Export-AzKeyVaultSecurityDomain PSCommand_Export-AzKeyVaultSecurityDomain PSCmdlet_Get-AzKeyVault PSCommand_Get-AzKeyVault PSCmdlet_Get-AzKeyVaultCertificate PSCommand_Get-AzKeyVaultCertificate PSCmdlet_Get-AzKeyVaultCertificateContact PSCommand_Get-AzKeyVaultCertificateContact PSCmdlet_Get-AzKeyVaultCertificateIssuer PSCommand_Get-AzKeyVaultCertificateIssuer PSCmdlet_Get-AzKeyVaultCertificateOperation PSCommand_Get-AzKeyVaultCertificateOperation PSCmdlet_Get-AzKeyVaultCertificatePolicy PSCommand_Get-AzKeyVaultCertificatePolicy PSCmdlet_Get-AzKeyVaultKey PSCommand_Get-AzKeyVaultKey PSCmdlet_Get-AzKeyVaultKeyRotationPolicy PSCommand_Get-AzKeyVaultKeyRotationPolicy PSCmdlet_Get-AzKeyVaultManagedHsm PSCommand_Get-AzKeyVaultManagedHsm PSCmdlet_Get-AzKeyVaultManagedStorageAccount PSCommand_Get-AzKeyVaultManagedStorageAccount PSCmdlet_Get-AzKeyVaultManagedStorageSasDefinition PSCommand_Get-AzKeyVaultManagedStorageSasDefinition PSCmdlet_Get-AzKeyVaultRandomNumber PSCommand_Get-AzKeyVaultRandomNumber PSCmdlet_Get-AzKeyVaultRoleAssignment PSCommand_Get-AzKeyVaultRoleAssignment PSCmdlet_Get-AzKeyVaultRoleDefinition PSCommand_Get-AzKeyVaultRoleDefinition PSCmdlet_Get-AzKeyVaultSecret PSCommand_Get-AzKeyVaultSecret PSCmdlet_Get-AzKeyVaultSetting PSCommand_Get-AzKeyVaultSetting PSCmdlet_Import-AzKeyVaultCertificate PSCommand_Import-AzKeyVaultCertificate PSCmdlet_Import-AzKeyVaultSecurityDomain PSCommand_Import-AzKeyVaultSecurityDomain PSCmdlet_Invoke-AzKeyVaultKeyOperation PSCommand_Invoke-AzKeyVaultKeyOperation PSCmdlet_Invoke-AzKeyVaultKeyRotation PSCommand_Invoke-AzKeyVaultKeyRotation PSCmdlet_New-AzKeyVault PSCommand_New-AzKeyVault PSCmdlet_New-AzKeyVaultCertificateAdministratorDetail PSCommand_New-AzKeyVaultCertificateAdministratorDetail PSCmdlet_New-AzKeyVaultCertificateOrganizationDetail PSCommand_New-AzKeyVaultCertificateOrganizationDetail PSCmdlet_New-AzKeyVaultCertificatePolicy PSCommand_New-AzKeyVaultCertificatePolicy PSCmdlet_New-AzKeyVaultManagedHsm PSCommand_New-AzKeyVaultManagedHsm PSCmdlet_New-AzKeyVaultNetworkRuleSetObject PSCommand_New-AzKeyVaultNetworkRuleSetObject PSCmdlet_New-AzKeyVaultRoleAssignment PSCommand_New-AzKeyVaultRoleAssignment PSCmdlet_New-AzKeyVaultRoleDefinition PSCommand_New-AzKeyVaultRoleDefinition PSCmdlet_Remove-AzKeyVault PSCommand_Remove-AzKeyVault PSCmdlet_Remove-AzKeyVaultAccessPolicy PSCommand_Remove-AzKeyVaultAccessPolicy PSCmdlet_Remove-AzKeyVaultCertificate PSCommand_Remove-AzKeyVaultCertificate PSCmdlet_Remove-AzKeyVaultCertificateContact PSCommand_Remove-AzKeyVaultCertificateContact PSCmdlet_Remove-AzKeyVaultCertificateIssuer PSCommand_Remove-AzKeyVaultCertificateIssuer PSCmdlet_Remove-AzKeyVaultCertificateOperation PSCommand_Remove-AzKeyVaultCertificateOperation PSCmdlet_Remove-AzKeyVaultKey PSCommand_Remove-AzKeyVaultKey PSCmdlet_Remove-AzKeyVaultManagedHsm PSCommand_Remove-AzKeyVaultManagedHsm PSCmdlet_Remove-AzKeyVaultManagedStorageAccount PSCommand_Remove-AzKeyVaultManagedStorageAccount PSCmdlet_Remove-AzKeyVaultManagedStorageSasDefinition PSCommand_Remove-AzKeyVaultManagedStorageSasDefinition PSCmdlet_Remove-AzKeyVaultNetworkRule PSCommand_Remove-AzKeyVaultNetworkRule PSCmdlet_Remove-AzKeyVaultRoleAssignment PSCommand_Remove-AzKeyVaultRoleAssignment PSCmdlet_Remove-AzKeyVaultRoleDefinition PSCommand_Remove-AzKeyVaultRoleDefinition PSCmdlet_Remove-AzKeyVaultSecret PSCommand_Remove-AzKeyVaultSecret PSCmdlet_Restore-AzKeyVault PSCommand_Restore-AzKeyVault PSCmdlet_Restore-AzKeyVaultCertificate PSCommand_Restore-AzKeyVaultCertificate PSCmdlet_Restore-AzKeyVaultKey PSCommand_Restore-AzKeyVaultKey PSCmdlet_Restore-AzKeyVaultManagedStorageAccount PSCommand_Restore-AzKeyVaultManagedStorageAccount PSCmdlet_Restore-AzKeyVaultSecret PSCommand_Restore-AzKeyVaultSecret PSCmdlet_Set-AzKeyVaultAccessPolicy PSCommand_Set-AzKeyVaultAccessPolicy PSCmdlet_Set-AzKeyVaultCertificateIssuer PSCommand_Set-AzKeyVaultCertificateIssuer PSCmdlet_Set-AzKeyVaultCertificatePolicy PSCommand_Set-AzKeyVaultCertificatePolicy PSCmdlet_Set-AzKeyVaultKeyRotationPolicy PSCommand_Set-AzKeyVaultKeyRotationPolicy PSCmdlet_Set-AzKeyVaultManagedStorageSasDefinition PSCommand_Set-AzKeyVaultManagedStorageSasDefinition PSCmdlet_Set-AzKeyVaultSecret PSCommand_Set-AzKeyVaultSecret PSCmdlet_Stop-AzKeyVaultCertificateOperation PSCommand_Stop-AzKeyVaultCertificateOperation PSCmdlet_Undo-AzKeyVaultCertificateRemoval PSCommand_Undo-AzKeyVaultCertificateRemoval PSCmdlet_Undo-AzKeyVaultKeyRemoval PSCommand_Undo-AzKeyVaultKeyRemoval PSCmdlet_Undo-AzKeyVaultManagedHsmRemoval PSCommand_Undo-AzKeyVaultManagedHsmRemoval PSCmdlet_Undo-AzKeyVaultManagedStorageAccountRemoval PSCommand_Undo-AzKeyVaultManagedStorageAccountRemoval PSCmdlet_Undo-AzKeyVaultManagedStorageSasDefinitionRemoval PSCommand_Undo-AzKeyVaultManagedStorageSasDefinitionRemoval PSCmdlet_Undo-AzKeyVaultRemoval PSCommand_Undo-AzKeyVaultRemoval PSCmdlet_Undo-AzKeyVaultSecretRemoval PSCommand_Undo-AzKeyVaultSecretRemoval PSCmdlet_Update-AzKeyVault PSCommand_Update-AzKeyVault PSCmdlet_Update-AzKeyVaultCertificate PSCommand_Update-AzKeyVaultCertificate PSCmdlet_Update-AzKeyVaultKey PSCommand_Update-AzKeyVaultKey PSCmdlet_Update-AzKeyVaultManagedHsm PSCommand_Update-AzKeyVaultManagedHsm PSCmdlet_Update-AzKeyVaultManagedStorageAccount PSCommand_Update-AzKeyVaultManagedStorageAccount PSCmdlet_Update-AzKeyVaultManagedStorageAccountKey PSCommand_Update-AzKeyVaultManagedStorageAccountKey PSCmdlet_Update-AzKeyVaultNetworkRuleSet PSCommand_Update-AzKeyVaultNetworkRuleSet PSCmdlet_Update-AzKeyVaultSecret PSCommand_Update-AzKeyVaultSecret PSCmdlet_Update-AzKeyVaultSetting PSCommand_Update-AzKeyVaultSetting PSIncludes_Cmdlet PSFunction_Add-AzKeyVaultManagedHsmRegion PSCommand_Add-AzKeyVaultManagedHsmRegion PSFunction_Get-AzKeyVaultManagedHsmRegion PSCommand_Get-AzKeyVaultManagedHsmRegion PSFunction_Remove-AzKeyVaultManagedHsmRegion PSCommand_Remove-AzKeyVaultManagedHsmRegion PSFunction_Test-AzKeyVaultManagedHsmNameAvailability PSCommand_Test-AzKeyVaultManagedHsmNameAvailability PSFunction_Test-AzKeyVaultNameAvailability PSCommand_Test-AzKeyVaultNameAvailability PSIncludes_Function - False - 2025-01-30T17:40:00Z - 6.3.1 - Microsoft Corporation - false - Module - Az.KeyVault.nuspec|KeyVault.Autorest\utils\Unprotect-SecureString.ps1|Az.KeyVault.psm1|Azure.Security.KeyVault.Certificates.dll|BouncyCastle.Crypto.dll|keyvault.generated.format.ps1xml|Microsoft.Azure.KeyVault.WebKey.dll|Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll-Help.xml|Az.KeyVault.Extension\Az.KeyVault.Extension.psd1|KeyVault.Autorest\Az.KeyVault.format.ps1xml|KeyVault.Autorest\bin\Az.KeyVault.private.dll|KeyVault.Autorest\custom\Az.KeyVault.custom.psm1|KeyVault.Autorest\custom\ManagedHsm.json.cs|KeyVault.Autorest\exports\ProxyCmdletDefinitions.ps1|KeyVault.Autorest\internal\ProxyCmdletDefinitions.ps1|KeyVault.Autorest\utils\Get-SubscriptionIdTestSafe.ps1|Az.KeyVault.psd1|Azure.Security.KeyVault.Administration.dll|Azure.Security.KeyVault.Keys.dll|KeyVault.format.ps1xml|Microsoft.Azure.KeyVault.dll|Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll|Microsoft.Azure.PowerShell.KeyVault.Management.Sdk.dll|Az.KeyVault.Extension\Az.KeyVault.Extension.psm1|KeyVault.Autorest\Az.KeyVault.psm1|KeyVault.Autorest\custom\Add-AzKeyVaultManagedHsmRegion.ps1|KeyVault.Autorest\custom\Get-ParameterForRegion.cs|KeyVault.Autorest\custom\Remove-AzKeyVaultManagedHsmRegion.ps1|KeyVault.Autorest\internal\Az.KeyVault.internal.psm1|.signature.p7s - cd188042-f215-4657-adfe-c17ae28cf730 - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.KeyVault\6.3.1 -
-
-
diff --git a/Modules/Az.KeyVault/6.3.1/keyvault.generated.format.ps1xml b/Modules/Az.KeyVault/6.3.1/keyvault.generated.format.ps1xml deleted file mode 100644 index f586ecd1de60..000000000000 --- a/Modules/Az.KeyVault/6.3.1/keyvault.generated.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyOperationResult - - Microsoft.Azure.Commands.KeyVault.Models.PSKeyOperationResult - - - - - - - KeyId - - - - RawResult - - - - Algorithm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/.signature.p7s b/Modules/Az.Storage/8.1.0/.signature.p7s deleted file mode 100644 index 13dfbd7d7057..000000000000 Binary files a/Modules/Az.Storage/8.1.0/.signature.p7s and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Az.Storage.psd1 b/Modules/Az.Storage/8.1.0/Az.Storage.psd1 deleted file mode 100644 index 47a92893ca13..000000000000 --- a/Modules/Az.Storage/8.1.0/Az.Storage.psd1 +++ /dev/null @@ -1,495 +0,0 @@ -# -# Module manifest for module 'Az.Storage' -# -# Generated by: Microsoft Corporation -# -# Generated on: 1/9/2025 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Az.Storage.psm1' - -# Version number of this module. -ModuleVersion = '8.1.0' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = 'dfa9e4ea-1407-446d-9111-79122977ab20' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Storage service data plane and management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. Creates and manages storage accounts in Azure Resource Manager. - -For more information on Storage, please visit the following: https://learn.microsoft.com/azure/storage/' - -# Minimum version of the PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# ClrVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Azure.Data.Tables.dll', 'Azure.Storage.Blobs.dll', - 'Azure.Storage.Common.dll', 'Azure.Storage.Files.DataLake.dll', - 'Azure.Storage.Files.Shares.dll', 'Azure.Storage.Queues.dll', - 'Microsoft.Azure.Cosmos.Table.dll', - 'Microsoft.Azure.DocumentDB.Core.dll', - 'Microsoft.Azure.KeyVault.Core.dll', - 'Microsoft.Azure.PowerShell.Storage.Common.dll', - 'Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll', - 'Microsoft.Azure.Storage.Blob.dll', - 'Microsoft.Azure.Storage.Common.dll', - 'Microsoft.Azure.Storage.DataMovement.dll', - 'Microsoft.Azure.Storage.File.dll', - 'Microsoft.Azure.Storage.Queue.dll', 'Microsoft.OData.Core.dll', - 'Microsoft.OData.Edm.dll', 'Microsoft.Spatial.dll', - 'Storage.Autorest/bin/Az.Storage.private.dll', - 'System.IO.Hashing.dll' - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Storage.Autorest/Az.Storage.format.ps1xml', - 'Storage.format.ps1xml', 'Storage.generated.format.ps1xml', - 'Storage.Management.format.ps1xml' - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('Storage.Autorest/Az.Storage.psm1') - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = 'Get-AzStorageAccountMigration', 'Start-AzStorageAccountMigration' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = 'Add-AzRmStorageContainerLegalHold', - 'Add-AzStorageAccountManagementPolicyAction', - 'Add-AzStorageAccountNetworkRule', 'Close-AzStorageFileHandle', - 'Copy-AzStorageBlob', 'Disable-AzStorageBlobDeleteRetentionPolicy', - 'Disable-AzStorageBlobLastAccessTimeTracking', - 'Disable-AzStorageBlobRestorePolicy', - 'Disable-AzStorageContainerDeleteRetentionPolicy', - 'Disable-AzStorageDeleteRetentionPolicy', - 'Disable-AzStorageStaticWebsite', - 'Enable-AzStorageBlobDeleteRetentionPolicy', - 'Enable-AzStorageBlobLastAccessTimeTracking', - 'Enable-AzStorageBlobRestorePolicy', - 'Enable-AzStorageContainerDeleteRetentionPolicy', - 'Enable-AzStorageDeleteRetentionPolicy', - 'Enable-AzStorageStaticWebsite', 'Get-AzDataLakeGen2ChildItem', - 'Get-AzDataLakeGen2DeletedItem', 'Get-AzDataLakeGen2Item', - 'Get-AzDataLakeGen2ItemContent', 'Get-AzRmStorageContainer', - 'Get-AzRmStorageContainerImmutabilityPolicy', - 'Get-AzRmStorageShare', 'Get-AzStorageAccount', - 'Get-AzStorageAccountKey', 'Get-AzStorageAccountManagementPolicy', - 'Get-AzStorageAccountNameAvailability', - 'Get-AzStorageAccountNetworkRuleSet', 'Get-AzStorageBlob', - 'Get-AzStorageBlobByTag', 'Get-AzStorageBlobContent', - 'Get-AzStorageBlobCopyState', 'Get-AzStorageBlobInventoryPolicy', - 'Get-AzStorageBlobQueryResult', 'Get-AzStorageBlobServiceProperty', - 'Get-AzStorageBlobTag', 'Get-AzStorageContainer', - 'Get-AzStorageContainerStoredAccessPolicy', 'Get-AzStorageCORSRule', - 'Get-AzStorageEncryptionScope', 'Get-AzStorageFile', - 'Get-AzStorageFileContent', 'Get-AzStorageFileCopyState', - 'Get-AzStorageFileHandle', 'Get-AzStorageFileServiceProperty', - 'Get-AzStorageLocalUser', 'Get-AzStorageLocalUserKey', - 'Get-AzStorageObjectReplicationPolicy', 'Get-AzStorageQueue', - 'Get-AzStorageQueueStoredAccessPolicy', - 'Get-AzStorageServiceLoggingProperty', - 'Get-AzStorageServiceMetricsProperty', - 'Get-AzStorageServiceProperty', 'Get-AzStorageShare', - 'Get-AzStorageShareStoredAccessPolicy', 'Get-AzStorageTable', - 'Get-AzStorageTableStoredAccessPolicy', 'Get-AzStorageUsage', - 'Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration', - 'Invoke-AzStorageAccountFailover', - 'Invoke-AzStorageAccountHierarchicalNamespaceUpgrade', - 'Lock-AzRmStorageContainerImmutabilityPolicy', - 'Move-AzDataLakeGen2Item', 'New-AzDataLakeGen2Item', - 'New-AzDataLakeGen2SasToken', 'New-AzRmStorageContainer', - 'New-AzRmStorageShare', 'New-AzStorageAccount', - 'New-AzStorageAccountKey', - 'New-AzStorageAccountManagementPolicyBlobIndexMatchObject', - 'New-AzStorageAccountManagementPolicyFilter', - 'New-AzStorageAccountManagementPolicyRule', - 'New-AzStorageAccountSASToken', - 'New-AzStorageBlobInventoryPolicyRule', - 'New-AzStorageBlobQueryConfig', 'New-AzStorageBlobRangeToRestore', - 'New-AzStorageBlobSASToken', 'New-AzStorageContainer', - 'New-AzStorageContainerSASToken', - 'New-AzStorageContainerStoredAccessPolicy', 'New-AzStorageContext', - 'New-AzStorageDirectory', 'New-AzStorageEncryptionScope', - 'New-AzStorageFileSASToken', - 'New-AzStorageLocalUserPermissionScope', - 'New-AzStorageLocalUserSshPassword', - 'New-AzStorageLocalUserSshPublicKey', - 'New-AzStorageObjectReplicationPolicyRule', 'New-AzStorageQueue', - 'New-AzStorageQueueSASToken', - 'New-AzStorageQueueStoredAccessPolicy', 'New-AzStorageShare', - 'New-AzStorageShareSASToken', - 'New-AzStorageShareStoredAccessPolicy', 'New-AzStorageTable', - 'New-AzStorageTableSASToken', - 'New-AzStorageTableStoredAccessPolicy', - 'Remove-AzDataLakeGen2AclRecursive', 'Remove-AzDataLakeGen2Item', - 'Remove-AzRmStorageContainer', - 'Remove-AzRmStorageContainerImmutabilityPolicy', - 'Remove-AzRmStorageContainerLegalHold', 'Remove-AzRmStorageShare', - 'Remove-AzStorageAccount', - 'Remove-AzStorageAccountManagementPolicy', - 'Remove-AzStorageAccountNetworkRule', 'Remove-AzStorageBlob', - 'Remove-AzStorageBlobImmutabilityPolicy', - 'Remove-AzStorageBlobInventoryPolicy', 'Remove-AzStorageContainer', - 'Remove-AzStorageContainerStoredAccessPolicy', - 'Remove-AzStorageCORSRule', 'Remove-AzStorageDirectory', - 'Remove-AzStorageFile', 'Remove-AzStorageLocalUser', - 'Remove-AzStorageObjectReplicationPolicy', 'Remove-AzStorageQueue', - 'Remove-AzStorageQueueStoredAccessPolicy', 'Remove-AzStorageShare', - 'Remove-AzStorageShareStoredAccessPolicy', 'Remove-AzStorageTable', - 'Remove-AzStorageTableStoredAccessPolicy', - 'Rename-AzStorageDirectory', 'Rename-AzStorageFile', - 'Restore-AzDataLakeGen2DeletedItem', 'Restore-AzRmStorageShare', - 'Restore-AzStorageBlobRange', 'Restore-AzStorageContainer', - 'Revoke-AzStorageAccountUserDelegationKeys', - 'Set-AzCurrentStorageAccount', 'Set-AzDataLakeGen2AclRecursive', - 'Set-AzDataLakeGen2ItemAclObject', - 'Set-AzRmStorageContainerImmutabilityPolicy', - 'Set-AzStorageAccount', 'Set-AzStorageAccountManagementPolicy', - 'Set-AzStorageBlobContent', 'Set-AzStorageBlobImmutabilityPolicy', - 'Set-AzStorageBlobInventoryPolicy', 'Set-AzStorageBlobLegalHold', - 'Set-AzStorageBlobTag', 'Set-AzStorageContainerAcl', - 'Set-AzStorageContainerStoredAccessPolicy', 'Set-AzStorageCORSRule', - 'Set-AzStorageFileContent', 'Set-AzStorageLocalUser', - 'Set-AzStorageObjectReplicationPolicy', - 'Set-AzStorageQueueStoredAccessPolicy', - 'Set-AzStorageServiceLoggingProperty', - 'Set-AzStorageServiceMetricsProperty', 'Set-AzStorageShareQuota', - 'Set-AzStorageShareStoredAccessPolicy', - 'Set-AzStorageTableStoredAccessPolicy', 'Start-AzStorageBlobCopy', - 'Start-AzStorageBlobIncrementalCopy', 'Start-AzStorageFileCopy', - 'Stop-AzStorageAccountHierarchicalNamespaceUpgrade', - 'Stop-AzStorageBlobCopy', 'Stop-AzStorageFileCopy', - 'Update-AzDataLakeGen2AclRecursive', 'Update-AzDataLakeGen2Item', - 'Update-AzRmStorageContainer', 'Update-AzRmStorageShare', - 'Update-AzStorageAccountNetworkRuleSet', - 'Update-AzStorageBlobServiceProperty', - 'Update-AzStorageEncryptionScope', - 'Update-AzStorageFileServiceProperty', - 'Update-AzStorageServiceProperty' - -# Variables to export from this module -# VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = 'Disable-AzStorageSoftDelete', 'Enable-AzStorageSoftDelete', - 'Get-AzDatalakeGen2FileSystem', 'Get-AzStorageContainerAcl', - 'New-AzDatalakeGen2FileSystem', 'New-AzDataLakeGen2ItemAclObject', - 'Remove-AzDatalakeGen2FileSystem', 'Start-CopyAzureStorageBlob', - 'Stop-CopyAzureStorageBlob' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -ModuleList = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.1'; }) - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','Storage','StorageAccount' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Upgraded nuget package to signed package. -* Added warning message for account migration cmdlet. - - ''Start-AzStorageAccountMigration'' -* Fixed error message when creating OAuth based Storage context without first login with Connect-AzAccount. - - ''New-AzStorageContext'' -* Upgraded Azure.Storage.Blobs to 12.23.0 -* Upgraded Azure.Storage.Files.Shares to 12.21.0 -* Upgraded Azure.Storage.Files.DataLake to 12.21.0 -* Upgraded Azure.Storage.Queues to 12.21.0 -* Supported ClientName property when listing file handles - - ''Get-AzStorageFileHandle'' -* Upgraded Azure.Core to 1.44.1.' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCdvhDU+kBf4iej -# Xj/yr8wlkwJG4s1Ad2IchMhiIuTBsaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMK2cx6POWJ7dDjjDd9geRpW -# +gN57X0gJteoVBQz5BtGMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEASYRjZ6WGPg2lwUU8ne9mQTgtRjgtKkEStYAiXRuWA/JaRVjd0RRE8uoS -# fmRvqtUvGGRLUnR+nww5VN+BI6s36nNwZ61lFkfuCvhfgiwipShKC4sESDZ2aSrw -# x6pLANuj6Fn83i9doqSeocoAKjjKsUHb2QuhxttkTF/4bXaQ7m01DRh/JcN2b7+g -# NEiZ9ivuPdBBuZeCDbCKHdypz6uVYbAOB6vAsF5F/yvQLxW4ICJphhVS3YeDnC9P -# VAeGknY/YIo5BdsWxPKp6snZ85hGL11LshXywZol21KTLN5Y9nVscwXZeaapzyfl -# 0A0AN6hKCCaJa6egdaJJ9I2x86cAYaGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAqhL2h/GNc9/7kSqanOcb/4PRPuiBDP1X6+WV650Gu2wIGZ2L/yIYd -# GBMyMDI1MDEwOTA3MjEzOS4yMzNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9ZkJlLzxxlCMAAEAAAH1MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwMVoXDTI1MTAyMjE4MzEwMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjY1MUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzO90cFQTWd/WP84IT7JM -# IW1fQL61sdfgmhlfT0nvYEb2kvkNF073ZwjveuSWot387LjE0TCiG93e6I0HzIFQ -# BnbxGP/WPBUirFq7WE5RAsuhNfYUL+PIb9jJq3CwWxICfw5t/pTyIOHjKvo1lQOT -# WZypir/psZwEE7y2uWAPbZJTFrKen5R73x2Hbxy4eW1DcmXjym2wFWv10sBH40aj -# Jfe+OkwcTdoYrY3KkpN/RQSjeycK0bhjo0CGYIYa+ZMAao0SNR/R1J1Y6sLkiCJO -# 3aQrbS1Sz7l+/qJgy8fyEZMND5Ms7C0sEaOvoBHiWSpTM4vc0xDLCmc6PGv03CtW -# u2KiyqrL8BAB1EYyOShI3IT79arDIDrL+de91FfjmSbBY5j+HvS0l3dXkjP3Hon8 -# b74lWwikF0rzErF0n3khVAusx7Sm1oGG+06hz9XAy3Wou+T6Se6oa5LDiQgPTfWR -# /j9FNk8Ju06oSfTh6c03V0ulla0Iwy+HzUl+WmYxFLU0PiaXsmgudNwVqn51zr+B -# i3XPJ85wWuy6GGT7nBDmXNzTNkzK98DBQjTOabQXUZ884Yb9DFNcigmeVTYkyUXZ -# 6hscd8Nyq45A3D3bk+nXnsogK1Z7zZj6XbGft7xgOYvveU6p0+frthbF7MXv+i5q -# cD9HfFmOq4VYHevVesYb6P0CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRV4Hxb9Uo0 -# oHDwJZJe22ixe2B1ATAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAcwxmVPaA9xHf -# fuom0TOSp2hspuf1G0cHW/KXHAuhnpW8/Svlq5j9aKI/8/G6fGIQMr0zlpau8jy8 -# 3I4zclGdJjl5S02SxDlUKawtWvgf7ida06PgjeQM1eX4Lut4bbPfT0FEp77G76hh -# ysXxTJNHv5y+fwThUeiiclihZwqcZMpa46m+oV6igTU6I0EnneotMqFs0Q3zHgVV -# r4WXjnG2Bcnkip42edyg/9iXczqTBrEkvTz0UlltpFGaQnLzq+No8VEgq0UG7W1E -# LZGhmmxFmHABwTT6sPJFV68DfLoC0iB9Qbb9VZ8mvbTV5JtISBklTuVAlEkzXi9L -# IjNmx+kndBfKP8dxG/xbRXptQDQDaCsS6ogLkwLgH6zSs+ul9WmzI0F8zImbhnZh -# UziIHheFo4H+ZoojPYcgTK6/3bkSbOabmQFf95B8B6e5WqXbS5s9OdMdUlW1gTI1 -# r5u+WAwH2KG7dxneoTbf/jYl3TUtP7AHpyck2c0nun/Q0Cycpa9QUH/Dy01k6tQo -# mNXGjivg2/BGcgZJ0Hw8C6KVelEJ31xLoE21m9+NEgSKCRoFE1Lkma31SyIaynbd -# YEb8sOlZynMdm8yPldDwuF54vJiEArjrcDNXe6BobZUiTWSKvv1DJadR1SUCO/Od -# 21GgU+hZqu+dKgjKAYdeTIvi9R2rtLYwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAJsAKu48NbR5YRg3WSBQCyjzdkvaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOsp1Y4wIhgPMjAyNTAxMDkwNDU2NDZaGA8yMDI1MDExMDA0NTY0NlowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA6ynVjgIBADAHAgEAAgIv2DAHAgEAAgITKTAK -# AgUA6ysnDgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBQZ+epogh9yozG -# UXovfC3VuYhp+q9eHXsbU/tJwdx7+bFn5T6uQT/6MJPWR7o6lYwustfEM0NLspeU -# imvngBIWtQbNrJpreDR9FiiwUn/Vyr0xLe9wulNHOPr+bqXRWk6PpLXo0fjZ2pUS -# cusPFs7wcRFLIaEdn7nuFhV62XsNsNm3V4OyAKEu6mkkIHx4X5Lrg80iKlN2BXYR -# GjRYP7Hb4TglhDJSPdDWxvhj+ndNbhc13Nm3zZd/DJqJgi5TYRK6BmUDOfZRiO2U -# CHB5CKvilGCspEfnlyBFjlPuUQhra/zOX2uuSzrHTcfwJ6b5vb7DmQVFde3aEtEM -# Vk3Z8ACgMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH1mQmUvPHGUIwAAQAAAfUwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgHT4HjH8544mJ -# l9CzlW/M4iRtECX2OhuzyV3kl5adVwcwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCDB1vLSFwh09ISu4kdEv4/tg9eR1Yk8w5x7j5GThqaPNTCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9ZkJlLzxxlCMAAEAAAH1 -# MCIEIILkTWtto6jyoOiQmqv3k12cmyPChV3pUGKZ5kYF/vZ0MA0GCSqGSIb3DQEB -# CwUABIICAC93dforzSO6PdcCUN+y3ukTVJ2MlcYffT3GNzq+m4U4wq4phe0qSCZi -# sZKdksakCgm5iy20sNG7LDNqZuEnZOlpQvUveQF1nouGeo0CfUCu+df0kmK2wF9D -# 2ZMM8y1rJ24Wfw9Hgj+utja6YURPSBI7dD11rolgR1AWm+MVYIXH7iIksQNZ7P1k -# Rah+uqWP4ZQ13jqWAZ2nMebVihvzM7/Ogut8iNXKoDoXw+Ya7MNWtwWV2k00jWgG -# n+GGfAOVQ5zgp4TUR5fhl1FPkWNoyhwMd4N2WX33W/dgSuiS8/oBtHXi8H6wPVPC -# uQ8YWSt9wsOsO8O0+DSrgWo8VWvIh109Fek5bPAy0SMD9NALoxd1mzzIqh95Rs4L -# MwcER0TerBPLVxmTAmvOrsxVY3sC0wiL/lBaD7pZNW+eKLuujbJvVa3SLcx0BO4k -# MYdHMhhvuWfiuEvcz90d8cLPM5/HQa3vbWIvxl7xw5XeUDr88VHepl8/X78e1bdA -# 4ZV6p2VYKzR3N5c6EQcDmqAxVJ7Bqh5xG48mgfYXPkr9lv39xzkWPwwx7ItriZfs -# gVRABGRq3OGV89hFu/myMuDsEyMc64eolprblbCeesaLL3NBBWu04mg9jwT4BN2O -# R+4h/dNplsEg3ZhXrQ0st9thbY2J71oimeRKOsYlqdcCJBCT1NnL -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Az.Storage.psm1 b/Modules/Az.Storage/8.1.0/Az.Storage.psm1 deleted file mode 100644 index b2592fb4a8df..000000000000 --- a/Modules/Az.Storage/8.1.0/Az.Storage.psm1 +++ /dev/null @@ -1,363 +0,0 @@ -# -# Script module for module 'Az.Storage' that is executed when 'Az.Storage' is imported in a PowerShell session. -# -# Generated by: Microsoft Corporation -# -# Generated on: 01/09/2025 06:21:00 -# - -$PSDefaultParameterValues.Clear() -Set-StrictMode -Version Latest - -function Test-DotNet -{ - try - { - if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) - { - throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." - } - } - catch [System.Management.Automation.DriveNotFoundException] - { - Write-Verbose ".NET Framework version check failed." - } -} - -function Preload-Assembly { - param ( - [string] - $AssemblyDirectory - ) - if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) - { - try - { - Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { - try - { - Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null - } - catch { - Write-Verbose $_ - } - } - } - catch {} - } -} - -if ($true -and ($PSEdition -eq 'Desktop')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'5.1') - { - throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." - } - - Test-DotNet -} - -if ($true -and ($PSEdition -eq 'Core')) -{ - if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') - { - throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." - } -} - -if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -# [windows powershell] preload assemblies - - -# [windows powershell] preload module alc assemblies -$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") -Preload-Assembly -AssemblyDirectory $preloadPath - -if (Get-Module AzureRM.profile -ErrorAction Ignore) -{ - Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") - throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + - "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") -} - -$module = Get-Module Az.Accounts - if ($module -ne $null -and $module.Version -lt [System.Version]"4.0.1") -{ - Write-Error "This module requires Az.Accounts version 4.0.1. An earlier version of Az.Accounts is imported in the current PowerShell session. Please open a new session before importing this module. This error could indicate that multiple incompatible versions of the Azure PowerShell cmdlets are installed on your system. Please see https://aka.ms/azps-version-error for troubleshooting information." -ErrorAction Stop -} -elseif ($module -eq $null) -{ - Import-Module Az.Accounts -MinimumVersion 4.0.1 -Scope Global -} -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Storage.dll) -Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll) - - -if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) -{ - Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { - . $_.FullName - } -} - -$FilteredCommands = @('Add-AzStorageAccountNetworkRule:ResourceGroupName','Get-AzStorageAccountKey:ResourceGroupName','Get-AzStorageAccountNetworkRuleSet:ResourceGroupName','New-AzStorageAccount:ResourceGroupName','New-AzStorageAccountKey:ResourceGroupName','Remove-AzStorageAccount:ResourceGroupName','Remove-AzStorageAccountNetworkRule:ResourceGroupName','Set-AzStorageAccount:ResourceGroupName','Update-AzStorageAccountNetworkRuleSet:ResourceGroupName') - -if ($Env:ACC_CLOUD -eq $null) -{ - $FilteredCommands | ForEach-Object { - - $existingDefault = $false - foreach ($key in $global:PSDefaultParameterValues.Keys) - { - if ($_ -like "$key") - { - $existingDefault = $true - } - } - - if (!$existingDefault) - { - $global:PSDefaultParameterValues.Add($_, - { - if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) - { - $context = Get-AzureRmContext - } - else - { - $context = Get-AzContext - } - if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { - $context.ExtendedProperties["Default Resource Group"] - } - }) - } - } -} - - - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCehGpcDhHdtJbf -# FDG3JkfI5VqzgqNJiZjwD6iDWXs59KCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKSrgJm7vHQHiqt974hRQDs7 -# BcyeGPXjXC6wPO0U8zEnMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAQVUZ7uzoDVRK2T+uUfiknaCuU7dsXwZghpIKsTBewPmMBQKhS3XfMDjc -# jy96Q5NjmfOAJcN+A5NbrmZOzdyFx/qQdabAP/BXtt3DTWnQeKY67QWYPaW1yxx9 -# rsDQwh6ZxEqFDITvFz7bqRnXy9m5cBSQ+kvbIjMPq/O3TNp3wklg0reZJRmLBpwm -# Q+wfoVzXRrbRRxlMKmti7dtLHIQnR8/oZPSNdwPa0Loey+rlx+TnTxtxtBczqv31 -# qf5EC/wn9YW1lTJ9BrJUZNa9Ml+C14NucCBkev+v5LI8pRAHKXa5x0My0gNNn6eg -# 8JlI+eSFPbG4GyfrOLPB/1fGsJVy3KGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCACCMhcNeUenNeK3xR+doF3IMl2WfaAPMXHB+a8/jOkEgIGZ1rLW6EL -# GBMyMDI1MDEwOTA2MzY0Ny4yMDdaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAe+JP1ahWMyo2gABAAAB7zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDhaFw0yNTAzMDUxODQ1NDhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCjC1jinwzgHwhOakZqy17oE4BIBKsm5kX4DUmCBWI0 -# lFVpEiK5mZ2Kh59soL4ns52phFMQYGG5kypCipungwP9Nob4VGVE6aoMo5hZ9Nyt -# XR5ZRgb9Z8NR6EmLKICRhD4sojPMg/RnGRTcdf7/TYvyM10jLjmLyKEegMHfvIwP -# mM+AP7hzQLfExDdqCJ2u64Gd5XlnrFOku5U9jLOKk1y70c+Twt04/RLqruv1fGP8 -# LmYmtHvrB4TcBsADXSmcFjh0VgQkX4zXFwqnIG8rgY+zDqJYQNZP8O1Yo4kSckHT -# 43XC0oM40ye2+9l/rTYiDFM3nlZe2jhtOkGCO6GqiTp50xI9ITpJXi0vEek8AejT -# 4PKMEO2bPxU63p63uZbjdN5L+lgIcCNMCNI0SIopS4gaVR4Sy/IoDv1vDWpe+I28 -# /Ky8jWTeed0O3HxPJMZqX4QB3I6DnwZrHiKn6oE38tgBTCCAKvEoYOTg7r2lF0Iu -# bt/3+VPvKtTCUbZPFOG8jZt9q6AFodlvQntiolYIYtqSrLyXAQIlXGhZ4gNcv4dv -# 1YAilnbWA9CsnYh+OKEFr/4w4M69lI+yaoZ3L/t/UfXpT/+yc7hS/FolcmrGFJTB -# YlS4nE1cuKblwZ/UOG26SLhDONWXGZDKMJKN53oOLSSk4ldR0HlsbT4heLlWlOEl -# JQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFO1MWqKFwrCbtrw9P8A63bAVSJzLMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAYGZa3aCDudbk9EVdkP8xcQGZuIAIPRx9K -# 1CA7uRzBt80fC0aWkuYYhQMvHHJRHUobSM4Uw3zN7fHEN8hhaBDb9NRaGnFWdtHx -# mJ9eMz6Jpn6KiIyi9U5Og7QCTZMl17n2w4eddq5vtk4rRWOVvpiDBGJARKiXWB9u -# 2ix0WH2EMFGHqjIhjWUXhPgR4C6NKFNXHvWvXecJ2WXrJnvvQGXAfNJGETJZGpR4 -# 1nUN3ijfiCSjFDxamGPsy5iYu904Hv9uuSXYd5m0Jxf2WNJSXkPGlNhrO27pPxgT -# 111myAR61S3S2hc572zN9yoJEObE98Vy5KEM3ZX53cLefN81F1C9p/cAKkE6u9V6 -# ryyl/qSgxu1UqeOZCtG/iaHSKMoxM7Mq4SMFsPT/8ieOdwClYpcw0CjZe5KBx2xL -# a4B1neFib8J8/gSosjMdF3nHiyHx1YedZDtxSSgegeJsi0fbUgdzsVMJYvqVw52W -# qQNu0GRC79ZuVreUVKdCJmUMBHBpTp6VFopL0Jf4Srgg+zRD9iwbc9uZrn+89odp -# InbznYrnPKHiO26qe1ekNwl/d7ro2ItP/lghz0DoD7kEGeikKJWHdto7eVJoJhkr -# UcanTuUH08g+NYwG6S+PjBSB/NyNF6bHa/xR+ceAYhcjx0iBiv90Mn0JiGfnA2/h -# Lj5evhTcAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBL -# cI81gxbea1Ex2mFbXx7ck+0g/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJiDAiGA8yMDI1MDEwODIzMzIy -# NFoYDzIwMjUwMTA5MjMzMjI0WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKYmI -# AgEAMAoCAQACAhBWAgH/MAcCAQACAhQIMAoCBQDrKtsIAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAFF0rbTmMxkNPz1om4SHJYc5SM7SYKncb0JlkUfCGEYD -# gqofUSHhfk6mHDcJEWMr/8zYmBhRHgPuwpWmY/brBK7db/raMs35QQZbnW+zFh7k -# DWu9SsAIAmMsjCFCidwTPCwvp01uN2bL1Nniofh1TZXX4kibqoDs8lc3a4iBK5HH -# SiV//dtJgcZ3l28OnuUcPy6OMhl1vi1fVfHEsjO3l4dsN7c+KYGWxGrSDF5RT5iF -# 4xikv8W98I8aju/Y88HPZtIF2a/jyxMmXnOrlxQUEw8HECkQVRN4mijQjKMqE74z -# SIhjWxKaMbM94739pPKBb+o5mZFzKnBbaCA13R3zvNMxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe+JP1ahWMyo2gABAAAB -# 7zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCB9b62W0fGtRFo65gP8c7KeBQ4Smt1fOOibnEKdwOFu -# HzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPBhKEW4Fo3wUz09NQx2a0Db -# cdsX8jovM5LizHmnyX+jMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHviT9WoVjMqNoAAQAAAe8wIgQgk8GRw07evoBPTcHFRSwwzBm1 -# /c/LPJrR0eUDtfdYEUgwDQYJKoZIhvcNAQELBQAEggIAeGF2Gbta7gc4EP1gu52I -# mtRDvhc695ftE+f+CG2caBp+xUumZgGKY0Tdk5wyaVazkCR3gw+vy/LldVHAhOR2 -# +YTYQBaZ58spz1k+j/jUrPdIHOCRpyqmkZYxXiZYeebjvtWSmo+qPr7N/xUcu7zf -# Cu8VKZZ+vuS4rzohsGabrXGrG8EBQJof5ypNAbr9E6v7hNgnDU1TImw6wYC0ko69 -# euQSb4ODZB+hE8sS/IkAhCL90GucX6O6EpKICJuFcy5e6SOOGsutRz5OtHADLItN -# t75h1wr2bSnOHINR3NiFTWAWC1JeOxRIPyuJdxVN+ybR9noM55JGgNoNJHc+eC+j -# MEZyON+U3TBHmnslhx2oMyYs46pXj5zewcnAhjWDztv0/JjS+OM1mEiOuUB59ySV -# RowLJjcBbAXXxcrsmUqqBaa4S8jv9R3VH/yll39JovBN8XV6r9FJ8/5OYcmSIUUs -# 547f/0PS6ZSKt4H1tFiP8lIkUr76piaAKD8dOYWkw8QbSSoQLNqcJj2uPB4vXyaS -# AGdwM52HSmPywz65yc5EDC1S1uCJxjPYAMS3gT1Ct1vOHPeXlZTBloxTjflEMyHJ -# hNz8Hxu3s7fFhEKUiTdrFZ/8xzDbgOWSMpECRp4i3XPt5kSPojmuM9xDW4U7/gbA -# II6d1HZyF9q8XML9hQZaXUE= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Azure.Data.Tables.dll b/Modules/Az.Storage/8.1.0/Azure.Data.Tables.dll deleted file mode 100644 index 8073b79d2b68..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Data.Tables.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Blobs.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Blobs.dll deleted file mode 100644 index 31612396a04c..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Blobs.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Common.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Common.dll deleted file mode 100644 index fa3a764ff338..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Common.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.DataLake.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Files.DataLake.dll deleted file mode 100644 index 241b93b09a5d..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.DataLake.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.Shares.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Files.Shares.dll deleted file mode 100644 index 9f84c2d11287..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Files.Shares.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Azure.Storage.Queues.dll b/Modules/Az.Storage/8.1.0/Azure.Storage.Queues.dll deleted file mode 100644 index 29ad40b9cdb2..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Azure.Storage.Queues.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Cosmos.Table.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Cosmos.Table.dll deleted file mode 100644 index d2fc43049374..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Cosmos.Table.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.DocumentDB.Core.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.DocumentDB.Core.dll deleted file mode 100644 index 08ee37ff689f..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.DocumentDB.Core.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.KeyVault.Core.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.KeyVault.Core.dll deleted file mode 100644 index 3e899b4f76d2..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.KeyVault.Core.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll deleted file mode 100644 index 88b67a17e4b3..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml deleted file mode 100644 index 6da511f023e1..000000000000 --- a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml +++ /dev/null @@ -1,35583 +0,0 @@ - - - - - Add-AzRmStorageContainerLegalHold - Add - AzRmStorageContainerLegalHold - - Adds legal hold tags to a Storage blob container - - - - The Add-AzRmStorageContainerLegalHold cmdlet adds legal hold tags to a Storage blob container - - - - Add-AzRmStorageContainerLegalHold - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzRmStorageContainerLegalHold - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzRmStorageContainerLegalHold - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AllowProtectedAppendWriteAll - - When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLegalHold - - - - - - - - - - - - - - Example 1: Add legal hold tags to a Storage blob container with Storage account name and container name - Add-AzRmStorageContainerLegalHold -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Tag tag1,tag2 -AllowProtectedAppendWriteAll $true - - This command adds legal hold tags to a Storage blob container with Storage account name and container name, and set AllowProtectedAppendWriteAll as true to allow append new blocks to append or block blob. - - - - - - Example 2: Add legal hold tags to a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Add-AzRmStorageContainerLegalHold -StorageAccount $accountObject -ContainerName "myContainer" -Tag tag1 - - This command adds legal hold tags to a Storage blob container with Storage account object and container name. - - - - - - Example 3: Add legal hold tags to all Storage blob containers in a Storage account with pipeline - Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Add-AzRmStorageContainerLegalHold -Tag tag1,tag2,tag3 - - This command adds legal hold tags to all Storage blob containers in a Storage account with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/add-azrmstoragecontainerlegalhold - - - - - - Add-AzStorageAccountManagementPolicyAction - Add - AzStorageAccountManagementPolicyAction - - Adds an action to the input ManagementPolicy Action Group object, or creates a ManagementPolicy Action Group object with the action. The object can be used in New-AzStorageAccountManagementPolicyRule. - - - - The Add-AzStorageAccountManagementPolicyAction cmdlet adds an action to the input ManagementPolicy Action Group object, or creates a ManagementPolicy Action Group object with the action. - - - - Add-AzStorageAccountManagementPolicyAction - - BaseBlobAction - - The management policy action for baseblob. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterModificationGreaterThan - - Integer value indicating the age in days after last modification. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - BaseBlobAction - - The management policy action for baseblob. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterLastAccessTimeGreaterThan - - Integer value indicating the age in days after last blob access. This property can only be used in conjuction with last access time tracking policy. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAutoTierToHotFromCool - - Enables auto tiering of a blob from cool to hot on a blob access. It only works with TierToCool action and DaysAfterLastAccessTimeGreaterThan. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - BaseBlobAction - - The management policy action for baseblob. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - BlobVersionAction - - The management policy action for blob version. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - - Add-AzStorageAccountManagementPolicyAction - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - SnapshotAction - - The management policy action for snapshot. - - - Delete - TierToArchive - TierToCool - TierToCold - TierToHot - - System.String - - System.String - - - None - - - - - - BaseBlobAction - - The management policy action for baseblob. - - System.String - - System.String - - - None - - - BlobVersionAction - - The management policy action for blob version. - - System.String - - System.String - - - None - - - DaysAfterCreationGreaterThan - - Integer value indicating the age in days after creation. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastAccessTimeGreaterThan - - Integer value indicating the age in days after last blob access. This property can only be used in conjuction with last access time tracking policy. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterLastTierChangeGreaterThan - - Integer value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions. It requires daysAfterModificationGreaterThan to be set for baseBlobs based actions, or daysAfterModificationGreaterThan to be set for snapshots and blob version based actions. - - System.Int32 - - System.Int32 - - - None - - - DaysAfterModificationGreaterThan - - Integer value indicating the age in days after last modification. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableAutoTierToHotFromCool - - Enables auto tiering of a blob from cool to hot on a blob access. It only works with TierToCool action and DaysAfterLastAccessTimeGreaterThan. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - If input the ManagementPolicy Action object, will set the action to the input action object. If not input, will create a new action object. - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - SnapshotAction - - The management policy action for snapshot. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - - - - - - - - - - - - Example 1: Creates a ManagementPolicy Action Group object with 4 actions, then add it to a management policy rule and set to a Storage account - $action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -DaysAfterCreationGreaterThan 100 -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 50 -DaysAfterLastTierChangeGreaterThan 40 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCool -DaysAfterLastAccessTimeGreaterThan 30 -EnableAutoTierToHotFromCool -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToHot -DaysAfterCreationGreaterThan 100 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 100 -InputObject $action -$action - -BaseBlob.TierToCool.DaysAfterModificationGreaterThan : -BaseBlob.TierToCool.DaysAfterLastAccessTimeGreaterThan : 30 -BaseBlob.TierToCool.DaysAfterCreationGreaterThan : -BaseBlob.EnableAutoTierToHotFromCool : True -BaseBlob.TierToArchive.DaysAfterModificationGreaterThan : 50 -BaseBlob.TierToArchive.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToArchive.DaysAfterCreationGreaterThan : -BaseBlob.TierToArchive.DaysAfterLastTierChangeGreaterThan : 40 -BaseBlob.Delete.DaysAfterModificationGreaterThan : -BaseBlob.Delete.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.Delete.DaysAfterCreationGreaterThan : 100 -BaseBlob.TierToCold.DaysAfterModificationGreaterThan : -BaseBlob.TierToCold.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToCold.DaysAfterCreationGreaterThan : -BaseBlob.TierToHot.DaysAfterModificationGreaterThan : -BaseBlob.TierToHot.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToHot.DaysAfterCreationGreaterThan : 100 -Snapshot.TierToCool.DaysAfterCreationGreaterThan : -Snapshot.TierToArchive.DaysAfterCreationGreaterThan : -Snapshot.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Snapshot.Delete.DaysAfterCreationGreaterThan : 100 -Snapshot.TierToCold.DaysAfterCreationGreaterThan : -Snapshot.TierToHot.DaysAfterCreationGreaterThan : -Version.TierToCool.DaysAfterCreationGreaterThan : -Version.TierToArchive.DaysAfterCreationGreaterThan : -Version.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Version.Delete.DaysAfterCreationGreaterThan : -Version.TierToCold.DaysAfterCreationGreaterThan : -Version.TierToHot.DaysAfterCreationGreaterThan : - -$filter = New-AzStorageAccountManagementPolicyFilter -$rule = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - The first command create a ManagementPolicy Action Group object, the following 3 commands add 3 actions to the object. Then add it to a management policy rule and set to a Storage account. - - - - - - Example 2: Creates a ManagementPolicy Action Group object with 7 actions on snapshot and blob version, then add it to a management policy rule and set to a Storage account - $action = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 40 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -SnapshotAction TierToArchive -daysAfterCreationGreaterThan 50 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -SnapshotAction TierToCool -daysAfterCreationGreaterThan 60 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction Delete -daysAfterCreationGreaterThan 70 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction TierToArchive -daysAfterCreationGreaterThan 80 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction TierToCool -daysAfterCreationGreaterThan 90 -$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BlobVersionAction TierToCold -daysAfterCreationGreaterThan 100 -$action - -BaseBlob.TierToCool.DaysAfterModificationGreaterThan : -BaseBlob.TierToCool.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToCool.DaysAfterCreationGreaterThan : -BaseBlob.EnableAutoTierToHotFromCool : -BaseBlob.TierToArchive.DaysAfterModificationGreaterThan : -BaseBlob.TierToArchive.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToArchive.DaysAfterCreationGreaterThan : -BaseBlob.TierToArchive.DaysAfterLastTierChangeGreaterThan : -BaseBlob.Delete.DaysAfterModificationGreaterThan : -BaseBlob.Delete.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.Delete.DaysAfterCreationGreaterThan : -BaseBlob.TierToCold.DaysAfterModificationGreaterThan : -BaseBlob.TierToCold.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToCold.DaysAfterCreationGreaterThan : -BaseBlob.TierToHot.DaysAfterModificationGreaterThan : -BaseBlob.TierToHot.DaysAfterLastAccessTimeGreaterThan : -BaseBlob.TierToHot.DaysAfterCreationGreaterThan : -Snapshot.TierToCool.DaysAfterCreationGreaterThan : 60 -Snapshot.TierToArchive.DaysAfterCreationGreaterThan : 50 -Snapshot.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Snapshot.Delete.DaysAfterCreationGreaterThan : 40 -Snapshot.TierToCold.DaysAfterCreationGreaterThan : -Snapshot.TierToHot.DaysAfterCreationGreaterThan : -Version.TierToCool.DaysAfterCreationGreaterThan : 90 -Version.TierToArchive.DaysAfterCreationGreaterThan : 80 -Version.TierToArchive.DaysAfterLastTierChangeGreaterThan : -Version.Delete.DaysAfterCreationGreaterThan : 70 -Version.TierToCold.DaysAfterCreationGreaterThan : 100 -Version.TierToHot.DaysAfterCreationGreaterThan : - -$filter = New-AzStorageAccountManagementPolicyFilter -$rule = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - The first command create a ManagementPolicy Action Group object, the following 5 commands add 5 actions on snapshot and blob version to the object. Then add it to a management policy rule and set to a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/add-Azstorageaccountmanagementpolicyaction - - - - - - Add-AzStorageAccountNetworkRule - Add - AzStorageAccountNetworkRule - - Add IpRules or VirtualNetworkRules to the NetworkRule property of a Storage account - - - - The Add-AzStorageAccountNetworkRule cmdlet adds IpRules or VirtualNetworkRules to the NetworkRule property of a Storage account - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, add IpRules with the input IpAddressOrRange and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will add VirtualNetworkRule with input VirtualNetworkResourceId and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Add-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, add IpRules with the input IpAddressOrRange and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - IPRule - - The Array of IpRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will add VirtualNetworkRule with input VirtualNetworkResourceId and default Action Allow to NetworkRule Property. - - System.String[] - - System.String[] - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to add to the NetworkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule - - - - - - - - - - - - - - ----- Example 1: Add several IpRules with IPAddressOrRange ----- - Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IPAddressOrRange "10.0.0.0/7","28.2.0.0/16" - - This command add several IpRules with IPAddressOrRange. - - - - - - Example 2: Add a VirtualNetworkRule with VirtualNetworkResourceID - $subnet = Get-AzVirtualNetwork -ResourceGroupName "myResourceGroup" -Name "myvirtualnetwork" | Get-AzVirtualNetworkSubnetConfig -Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -VirtualNetworkResourceId $subnet[0].Id - - This command add a VirtualNetworkRule with VirtualNetworkResourceID. - - - - - - Example 3: Add VirtualNetworkRules with VirtualNetworkRule Objects from another account - $networkrule = Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount1" -Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount2" -VirtualNetworkRule $networkrule.VirtualNetworkRules - - This command add VirtualNetworkRules with VirtualNetworkRule Objects from another account. - - - - - - Example 4: Add several IpRule with IpRule objects, input with JSON - Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IPRule (@{IPAddressOrRange="10.0.0.0/7";Action="allow"},@{IPAddressOrRange="28.2.0.0/16";Action="allow"}) - - This command add several IpRule with IpRule objects, input with JSON. - - - - - - ------------ Example 5: Add a resource access rule ------------ - Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -TenantId $tenantId -ResourceId $ResourceId - - This command adds a resource access rule with TenantId and ResourceId. - - - - - - Example 6: Add all resource access rules of one storage account to another storage account - (Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount1").ResourceAccessRules | Add-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount2" - - This command gets all resource access rules from one storage account, and adds them to another storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/add-azstorageaccountnetworkrule - - - - - - Disable-AzStorageBlobDeleteRetentionPolicy - Disable - AzStorageBlobDeleteRetentionPolicy - - Disable delete retention policy for the Azure Storage Blob service. - - - - The Disable-AzStorageBlobDeleteRetentionPolicy cmdlet disables delete retention policy for the Azure Storage Blob service. - - - - Disable-AzStorageBlobDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobDeleteRetentionPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Disable delete retention policy for the Blob services - Disable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru - -Enabled Days -------- ---- - False - - This command disables delete retention policy for the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstorageblobdeleteretentionpolicy - - - - - - Disable-AzStorageBlobLastAccessTimeTracking - Disable - AzStorageBlobLastAccessTimeTracking - - Disable last access time tracking for the Azure Storage Blob service. - - - - The Disable-AzStorageBlobDeleteRetentionPolicy cmdlet disables delete retention policy for the Azure Storage Blob service. - - - - Disable-AzStorageBlobLastAccessTimeTracking - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobLastAccessTimeTracking - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Disable last access time tracking for the Blob service - Disable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - This command disables last access time tracking for the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragebloblastaccesstimetracking - - - - - - Disable-AzStorageBlobRestorePolicy - Disable - AzStorageBlobRestorePolicy - - Disables Blob Restore Policy on a Storage account. - - - - The Disable-AzStorageBlobRestorePolicy cmdlet disables Blob Restore Policy for the Azure Storage Blob service. - - - - Disable-AzStorageBlobRestorePolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobRestorePolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageBlobRestorePolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Disables Blob Restore Policy for the Azure Storage Blob service on a Storage account - Disable-AzStorageBlobRestorePolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" - - This command Disables Blob Restore Policy for the Azure Storage Blob service on a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstorageblobrestorepolicy - - - - - - Disable-AzStorageContainerDeleteRetentionPolicy - Disable - AzStorageContainerDeleteRetentionPolicy - - Disable delete retention policy for Azure Storage blob containers. - - - - The Disable-AzStorageContainerDeleteRetentionPolicy cmdlet disables delete retention policy for Azure Storage blob containers. - - - - Disable-AzStorageContainerDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageContainerDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Disable-AzStorageContainerDeleteRetentionPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Disable delete retention policy for blob containers - Disable-AzStorageContainerDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru - -Enabled Days -------- ---- - False - - This command disables delete retention policy for blob containers. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragecontainerdeleteretentionpolicy - - - - - - Enable-AzStorageBlobDeleteRetentionPolicy - Enable - AzStorageBlobDeleteRetentionPolicy - - Enable delete retention policy for the Azure Storage Blob service. - - - - The Enable-AzStorageBlobDeleteRetentionPolicy cmdlet enables delete retention policy for the Azure Storage Blob service. - - - - Enable-AzStorageBlobDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobDeleteRetentionPolicy - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AllowPermanentDelete - - Allow deletion of the soft deleted blob versions and snapshots. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Enable delete retention policy for the Blob service - Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -AllowPermanentDelete -PassThru -RetentionDays 4 - -Enabled Days AllowPermanentDelete -------- ---- -------------------- - True 4 True - - This command enables delete retention policy for the Blob service, and set deleted blob retention days to 4. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstorageblobdeleteretentionpolicy - - - - - - Enable-AzStorageBlobLastAccessTimeTracking - Enable - AzStorageBlobLastAccessTimeTracking - - Enable last access time tracking for the Azure Storage Blob service. - - - - The Enable-AzStorageBlobLastAccessTimeTracking cmdlet enables last access time tracking for the Azure Storage Blob service. - - - - Enable-AzStorageBlobLastAccessTimeTracking - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobLastAccessTimeTracking - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Enable last access time tracking for the Blob service - Enable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru - -Enable Name TrackingGranularityInDays BlobType ------- ---- ------------------------- -------- - True AccessTimeTracking 1 {blockBlob} - - This command enables last access time tracking for the Blob service, and show the last access time tracking policy properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragebloblastaccesstimetracking - - - - - - Enable-AzStorageBlobRestorePolicy - Enable - AzStorageBlobRestorePolicy - - Enables Blob Restore Policy on a Storage account. - - - - The Enable-AzStorageBlobRestorePolicy cmdlet enables Blob Restore Policy for the Azure Storage Blob service. - - - - Enable-AzStorageBlobRestorePolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobRestorePolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageBlobRestorePolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - RestoreDays - - Sets the number of days for the blob can be restored.. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - - - - - - - - - - Example 1: Enables Blob Restore Policy for the Azure Storage Blob service on a Storage account - Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -RetentionDays 5 - -Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -EnableChangeFeed $true - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegoup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : True -DeleteRetentionPolicy.Days : 5 -RestorePolicy.Enabled : False -RestorePolicy.Days : -RestorePolicy.MinRestoreTime : -ChangeFeed : True -IsVersioningEnabled : True - -Enable-AzStorageBlobRestorePolicy -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -RestoreDays 4 - -Get-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegoup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : True -DeleteRetentionPolicy.Days : 5 -RestorePolicy.Enabled : True -RestorePolicy.Days : 4 -RestorePolicy.MinRestoreTime : 8/28/2020 6:00:59 AM -ChangeFeed : True -IsVersioningEnabled : True - - This command first enable Blob softdelete and changefeed, then enables Blob Restore Policy, finally check the setting in Blob service properties. The Blob service RestorePolicy.Days must be smaller than DeleteRetentionPolicy.Days. Blob softdelete and ChangeFeed must be enabled before enable blob Restore Policy. If softdelete and Changefeed are just enabled, might need wait for some time for server to handle the setting, before enable Blob restore policy. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstorageblobrestorepolicy - - - - - - Enable-AzStorageContainerDeleteRetentionPolicy - Enable - AzStorageContainerDeleteRetentionPolicy - - Enable delete retention policy for Azure Storage blob containers. - - - - The Enable-AzStorageContainerDeleteRetentionPolicy cmdlet enables delete retention policy for Azure Storage blob containers. - - - - Enable-AzStorageContainerDeleteRetentionPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageContainerDeleteRetentionPolicy - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Enable-AzStorageContainerDeleteRetentionPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Enable delete retention policy for Blob containers - Enable-AzStorageContainerDeleteRetentionPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PassThru -RetentionDays 3 - -Enabled Days -------- ---- - True 3 - - This command enables delete retention policy for Blob containers, and set deleted blob retention days to 3. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragecontainerdeleteretentionpolicy - - - - - - Get-AzRmStorageContainer - Get - AzRmStorageContainer - - Gets or lists Storage blob containers - - - - The Get-AzRmStorageContainer cmdlet gets or lists Storage blob containers - - - - Get-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - - Get-AzRmStorageContainer - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Get a Storage blob container with Storage account name and container name - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" - - This command gets a Storage blob container with Storage account name and container name. - - - - - - Example 2: List all Storage blob containers of a Storage account - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" - - This command lists all Storage blob containers of a Storage account with Storage account name. - - - - - - Example 3: Get a Storage blob container with Storage account object and container name. - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Get-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" - - This command gets a Storage blob container with Storage account object and container name. - - - - - - Example 4: List Storage blob container of a Storage account, include deleted containers. - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -IncludeDeleted - -ResourceGroupName: myResourceGroup, StorageAccountName: myStorageAccount - -Name PublicAccess LastModified HasLegalHold HasImmutabilityPolicy Deleted VersionId ----- ------------ ------------ ------------ --------------------- ------- --------- -testcon None 2020-08-28 10:18:13Z False False False 01D685BC91A88F22 -testcon2 None 2020-09-04 12:52:37Z False False True 01D67D248986B6DA - - This example lists all containers of a storage account, include deleted containers. Deleted containers will only exist after enabled Container softdelete with Enable-AzStorageBlobDeleteRetentionPolicy. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azrmstoragecontainer - - - - - - Get-AzRmStorageContainerImmutabilityPolicy - Get - AzRmStorageContainerImmutabilityPolicy - - Gets ImmutabilityPolicy of a Storage blob containers - - - - The Get-AzRmStorageContainerImmutabilityPolicy cmdlet gets ImmutabilityPolicy of a Storage blob containers - - - - Get-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - - Get-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - - Get-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Get ImmutabilityPolicy of a Storage blob container with Storage account name and container name - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" - - This command gets ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Get ImmutabilityPolicy of a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" - - This command gets ImmutabilityPolicy of a Storage blob containers with Storage account object and container name. - - - - - - Example 3: Get ImmutabilityPolicy of a Storage blob container with Storage container object - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -Get-AzRmStorageContainerImmutabilityPolicy -Container $containerObject - - This command gets ImmutabilityPolicy of a Storage blob container with Storage container object. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azrmstoragecontainerimmutabilitypolicy - - - - - - Get-AzRmStorageShare - Get - AzRmStorageShare - - Gets or lists Storage file shares. - - - - The Get-AzRmStorageShare cmdlet gets or lists Storage file shares. - - - - Get-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Filter - - The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, `<prefix>`) - - System.String - - System.String - - - None - - - IncludeDeleted - - Include deleted shares, by default list shares won't include deleted shares - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - Include share snapshots, by default list shares won't include share snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Filter - - The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, `<prefix>`) - - System.String - - System.String - - - None - - - IncludeDeleted - - Include deleted shares, by default list shares won't include deleted shares - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - Include share snapshots, by default list shares won't include share snapshots. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - Get-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzRmStorageShare - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Filter - - The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, `<prefix>`) - - System.String - - System.String - - - None - - - GetShareUsage - - Specify this parameter to get the Share Usage in Bytes. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeDeleted - - Include deleted shares, by default list shares won't include deleted shares - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - Include share snapshots, by default list shares won't include share snapshots. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - Example 1: Get a Storage file share with Storage account name and share name - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 5120 - - This command gets a Storage file share with Storage account name and share name. - - - - - - - Example 2: List all Storage file shares of a Storage account - - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -share1 5120 TransactionOptimized -share2 5120 TransactionOptimized - - This command lists all Storage file shares of a Storage account with Storage account name. - - - - - - Example 3: Get a Storage blob container with Storage account object and container name. - Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | Get-AzRmStorageShare -Name "myshare" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 5120 - - This command gets a Storage blob container with Storage account object and container name. - - - - - - Example 4: Get a Storage file share with the share usage in bytes - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -GetShareUsage - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 5120 2097152 - - This command gets a Storage file share with Storage account name and share name, and include the share usage in bytes. - - - - - - Example 5: List all Storage file shares of a Storage account, include the deleted shares, include the share snapshots - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -IncludeDeleted -IncludeSnapshot - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -testshare1 5120 TransactionOptimized 2021-05-10T08:04:08Z -testshare1 5120 TransactionOptimized -share1 100 TransactionOptimized True 01D61FD1FC5498B6 - - This command lists all Storage file shares include the deleted shares and share snapshots. - - - - - - ------------ Example 6: Get a single share snapshot ------------ - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "testshare1" -SnapshotTime "2021-05-10T08:04:08Z" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -testshare1 5120 TransactionOptimized 2021-05-10T08:04:08Z - - This command gets a single file share snapshot with share name and snapshot time. - - - - - - Example 7: List Storage file shares of a Storage account with a filter - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Filter "startswith(name, test)" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -testshare1 5120 SMB TransactionOptimized -testshare2 5120 SMB TransactionOptimized - - This command lists all Storage file shares with names that begin with "test". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azrmstorageshare - - - - - - Get-AzStorageAccount - Get - AzStorageAccount - - Gets a Storage account. - - - - The Get-AzStorageAccount cmdlet gets a specified Storage account or all of the Storage accounts in a resource group or the subscription. - - - - Get-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to get. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeBlobRestoreStatus - - Get the BlobRestoreStatus of the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to get. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeGeoReplicationStats - - Get the GeoReplicationStats of the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeBlobRestoreStatus - - Get the BlobRestoreStatus of the Storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeGeoReplicationStats - - Get the GeoReplicationStats of the Storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the Storage account to get. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ---------- Example 1: Get a specified Storage account ---------- - Get-AzStorageAccount -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command gets the specified Storage account. - - - - - - --- Example 2: Get all Storage accounts in a resource group --- - Get-AzStorageAccount -ResourceGroupName "RG01" - - This command gets all of the Storage accounts in a resource group. - - - - - - --- Example 3: Get all Storage accounts in the subscription --- - Get-AzStorageAccount - - This command gets all of the Storage accounts in the subscription. - - - - - - Example 4: Get a Storage accounts with its blob restore status - $account = Get-AzStorageAccount -ResourceGroupName "myresourcegoup" -Name "mystorageaccount" -IncludeBlobRestoreStatus - -$account.BlobRestoreStatus - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -InProgress a70cd4a1-f223-4c86-959f-cc13eb4795a8 2020-02-10T13:45:04.7155962Z [container1/blob1 -> container2/blob2] - - This command gets a Storage accounts with its blob restore status, and show the blob restore status. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccount - - - New-AzStorageAccount - - - - Remove-AzStorageAccount - - - - Set-AzStorageAccount - - - - - - - Get-AzStorageAccountKey - Get - AzStorageAccountKey - - Gets the access keys for an Azure Storage account. - - - - The Get-AzStorageAccountKey cmdlet gets the access keys for an Azure Storage account. - - - - Get-AzStorageAccountKey - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account for which this cmdlet gets keys. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListKerbKey - - Lists the Kerberos keys (if active directory enabled) for the specified storage account. Kerberos key is generated per storage account for Azure Files identity based authentication either with Microsoft Entra Domain Service (Microsoft Entra Domain Services) or Active Directory Domain Service (AD DS). It is used as the password of the identity registered in the domain service that represents the storage account. Kerberos key does not provide access permission to perform any control or data plane read or write operations against the storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ListKerbKey - - Lists the Kerberos keys (if active directory enabled) for the specified storage account. Kerberos key is generated per storage account for Azure Files identity based authentication either with Microsoft Entra Domain Service (Microsoft Entra Domain Services) or Active Directory Domain Service (AD DS). It is used as the password of the identity registered in the domain service that represents the storage account. Kerberos key does not provide access permission to perform any control or data plane read or write operations against the storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the Storage account for which this cmdlet gets keys. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.StorageAccountKey - - - - - - - - - - - - - - ----- Example 1: Get the access keys for a Storage account ----- - Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command gets the keys for the specified Azure Storage account. - - - - - - -- Example 2: Get a specific access key for a Storage account -- - This command gets a specific key for a Storage account. -(Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount")| Where-Object {$_.KeyName -eq "key1"} - -KeyName Value Permissions CreationTime -------- ----- ----------- ------------ -key1 <KeyValue> Full - -This command gets a specific key value for a Storage account. -(Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount")[0].Value - -<KeyValue> - - - - - - - - Example 3: Lists the access keys for a Storage account, include the Kerberos keys (if active directory enabled) - Get-AzStorageAccountKey -ResourceGroupName "RG01" -Name "mystorageaccount" -ListKerbKey - - This command gets the keys for the specified Azure Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountkey - - - New-AzStorageAccountKey - - - - - - - Get-AzStorageAccountManagementPolicy - Get - AzStorageAccountManagementPolicy - - Gets the management policy of an Azure Storage account. - - - - The Get-AzStorageAccountManagementPolicy cmdlet gets the management policy of an Azure Storage account. - - - - Get-AzStorageAccountManagementPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageAccountManagementPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzStorageAccountManagementPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.StorageAccountKey - - - - - - - - - - - - - - -- Example 1: Get the management policy of a Storage account. -- - Get-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -ResourceGroupName : myresourcegroup -StorageAccountName : mystorageaccount -Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default -Type : Microsoft.Storage/storageAccounts/managementPolicies -LastModifiedTime : 3/12/2019 7:04:05 AM -Rules : [ - { - "Enabled": true, - "Name": "Test", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": { - "DaysAfterModificationGreaterThan": 30 - }, - "TierToArchive": { - "DaysAfterModificationGreaterThan": 50 - }, - "Delete": { - "DaysAfterModificationGreaterThan": 100 - } - }, - "Snapshot": { - "Delete": { - "DaysAfterCreationGreaterThan": 100 - } - } - }, - "Filters": { - "PrefixMatch": [ - "prefix1", - "prefix2" - ], - "BlobTypes": [ - "blockBlob" - ] - } - } - }, - { - "Enabled": true, - "Name": "Test2", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": null, - "TierToArchive": null, - "Delete": { - "DaysAfterModificationGreaterThan": 100 - } - }, - "Snapshot": null - }, - "Filters": { - "PrefixMatch": null, - "BlobTypes": [ - "blockBlob" - ] - } - } - } - ] - - This command gets the management policy of a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/get-Azstorageaccountmanagementpolicy - - - - - - Get-AzStorageAccountNameAvailability - Get - AzStorageAccountNameAvailability - - Checks the availability of a Storage account name. - - - - The Get-AzStorageAccountNameAvailability cmdlet checks whether the name of an Azure Storage account is valid and available to use. - - - - Get-AzStorageAccountNameAvailability - - Name - - Specifies the name of the Storage account that this cmdlet checks. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account that this cmdlet checks. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.CheckNameAvailabilityResult - - - - - - - - - - - - - - --- Example 1: Check availability of a Storage account name --- - Get-AzStorageAccountNameAvailability -Name 'contosostorage03' - - This command checks the availability of the name ContosoStorage03. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountnameavailability - - - Azure Storage Manager Cmdlets - - - - - - - Get-AzStorageAccountNetworkRuleSet - Get - AzStorageAccountNetworkRuleSet - - Get the NetWorkRule property of a Storage account - - - - The Get-AzStorageAccountNetworkRuleSet cmdlet gets the NetworkRule property of a Storage account - - - - Get-AzStorageAccountNetworkRuleSet - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - - - - - - - - - - - - Example 1: Get NetworkRule property of a specified Storage account - Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "rg1" -Name "mystorageaccount" - - This command gets NetworkRule property of a specified Storage account - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountnetworkruleset - - - - - - Get-AzStorageBlobInventoryPolicy - Get - AzStorageBlobInventoryPolicy - - Gets blob inventory policy from a Storage account. - - - - The Get-AzStorageBlobInventoryPolicy cmdlet gets blob inventory policy from a Storage account. - - - - Get-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - Get-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - - - - - - - - - - - - - Example 1: Get blob inventory policy from a Storage account - - $policy = Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -$policy - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 11/4/2020 9:18:30 AM -Enabled : True -Rules : {Test1, Test2} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions BlobTypes PrefixMatch SchemaFields ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- --------- ----------- ------------ -Test1 False containername Container Csv Daily {aaa, bbb} {Name, Metadata, PublicAccess, Last-Modified...} -Test2 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {ccc, ddd} {Name, Creation-Time, Last-Modified, Content-Length...} - - This command gets blob inventory policy from a Storage account, and show its proeprties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobinventorypolicy - - - - - - Get-AzStorageBlobServiceProperty - Get - AzStorageBlobServiceProperty - - Gets service properties for Azure Storage Blob services. - - - - The Get-AzStorageBlobServiceProperty cmdlet gets the service properties for Azure Storage Blob services. - - - - Get-AzStorageBlobServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageBlobServiceProperty - - ResourceId - - Blob Service Properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageBlobServiceProperty - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Blob Service Properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Get Azure Storage Blob services property of a specified Storage Account - Get-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed : True -IsVersioningEnabled : True - - This command gets the Blob services property of a specified Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobserviceproperty - - - - - - Get-AzStorageEncryptionScope - Get - AzStorageEncryptionScope - - Get or list encryption scopes from a Storage account. - - - - The Get-AzStorageEncryptionScope cmdlet gets or lists encryption scopes from a Storage account. - - - - Get-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - Filter - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - Include - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - - All - Enabled - Disabled - - System.String - - System.String - - - None - - - MaxPageSize - - The maximum number of encryption scopes that will be included in the list response - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - Filter - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - Include - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - - All - Enabled - Disabled - - System.String - - System.String - - - None - - - MaxPageSize - - The maximum number of encryption scopes that will be included in the list response - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - Filter - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - Include - - The filter of encryption scope name. When specified, only encryption scope names starting with the filter will be listed. - - System.String - - System.String - - - None - - - MaxPageSize - - The maximum number of encryption scopes that will be included in the list response - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - - - - - - - - - - - - ----------- Example 1: Get a single encryption scope ----------- - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName $scopename - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -testscope Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname - - This command gets a single encryption scope. - - - - - - -- Example 2: List all encryption scopes of a Storage account -- - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -testscope Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname -scope2 Enabled Microsoft.Storage - - This command lists all encryption scopes of a Storage account. - - - - - - Example 3: List all enabled encryption scopes of a Storage account with a max page size of 10 for each request - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -MaxPageSize 10 -Include Enabled - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -scope1 Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname -scope2 Enabled Microsoft.Storage - - This command lists all enabled encryption scopes of a Storage account, with a max page size of 10 encryption scopes included in each list response. If there are more than 10 encryption scopes to be listed, the command will still list all the encryption scopes, but with multiple requests sent and responses received. - - - - - - Example 4: List all disabled encryption scopes with names starting with "test" of a Storage account - Get-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Include Disabled -Filter "startswith(name, test)" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri ----- ----- ------ -------------- -testscope1 Disabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname -testscope2 Disabled Microsoft.Storage - - This command lists all disabled encryption scopes with names starting with "test" of a Storage account. The parameter "Filter" specifies the prefix of the encryption scopes listed, and it should be in format of "startswith(name, {prefixValue})". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageencryptionscope - - - - - - Get-AzStorageFileServiceProperty - Get - AzStorageFileServiceProperty - - Gets service properties for Azure Storage File services. - - - - The Get-AzStorageFileServiceProperty cmdlet gets the service properties for Azure Storage File services. - - - - Get-AzStorageFileServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageFileServiceProperty - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageFileServiceProperty - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - - - - - - - - - - - - - Example 1: Get Azure Storage File services property of a specified Storage Account - Get-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 3 -ProtocolSettings.Smb.Multichannel.Enabled : False -ProtocolSettings.Smb.Versions : {SMB2.1, SMB3.0, SMB3.1.1} -ProtocolSettings.Smb.AuthenticationMethods : {Kerberos, NTLMv2} -ProtocolSettings.Smb.KerberosTicketEncryption : {RC4-HMAC, AES-256} -ProtocolSettings.Smb.ChannelEncryption : {AES-128-CCM, AES-128-GCM, AES-256-GCM} - - This command gets the File services property of a specified Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefileserviceproperty - - - - - - Get-AzStorageLocalUser - Get - AzStorageLocalUser - - Gets a specified local user or lists all local users in a storage account. - - - - The Get-AzStorageLocalUser cmdlet gets a specified local user or lists all local users in a storage account. - - - - Get-AzStorageLocalUser - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - - Get-AzStorageLocalUser - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - - - - - - - - - - - - ------------ Example 1: Get a specified local user ------------ - $localUser = Get-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - -$localUser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes ----- --- ------------- ------------ --------- -------------- ---------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1,...] - -$localUser.PermissionScopes - -Permissions Service ResourceName ------------ ------- ------------ -rw blob container1 -rw file share2 - - This command gets a specified local user, and show the properties of it. - - - - - - ----- Example 2: List all local users in a storage account ----- - Get-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes SshAuthorizedKeys ----- --- ------------- ------------ --------- -------------- ---------------- ----------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1,...] -testuser2 S-1-2-0-0000000000-000000000-0000000000-0002 /dir True True False - - This command lists all local users in a storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragelocaluser - - - - - - Get-AzStorageLocalUserKey - Get - AzStorageLocalUserKey - - Lists SSH authorized keys and shared key of a specified local user. - - - - The Get-AzStorageLocalUserKey cmdlet lists SSH authorized keys and shared key of a specified local user in a storage account. - - - - Get-AzStorageLocalUserKey - - InputObject - - Local User Object to get Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageLocalUserKey - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageLocalUserKey - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Local User Object to get Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUserKeys - - - - - - - - - - - - - - Example 1: List SSH authorized keys and shared key of a specified local user. - Get-AzStorageLocalUserKey -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - -SshAuthorizedKeys SharedKey ------------------ --------- -{ssh-rsa keykeykeykeykew=, ssh-rsa keykeykeykeykew=} <hidden> - - This command lists SSH authorized keys and shared key of a specified local user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragelocaluserkey - - - - - - Get-AzStorageObjectReplicationPolicy - Get - AzStorageObjectReplicationPolicy - - Gets or lists object replication policy of a Storage account. - - - - The Get-AzStorageObjectReplicationPolicy cmdlet gets or lists object replication policy of a Storage account. - - - - Get-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - - Get-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - - - - - Example 1: Get an object replication policy with specific policy Id and show its rules. - $policy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" -PolicyId 56bfa11c-81ef-4f8d-b307-5e5386e16fba - -$policy - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] - -$policy.Rules - -RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime ------- --------------- -------------------- ------------------- ----------------------- -d3d39a01-8d92-40e5-849f-e56209ae5cf5 src1 dest1 {} -2407de9a-3301-4656-858f-359d185565e0 src dest {a, abc, dd} 2019-01-01T16:00:00Z - - This command gets an object replication policy with specific policy Id and show its rules. - - - - - - Example 2:List object replication policy from a Storage account - $policies = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" - -$policies - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysrcaccount1 mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] -myresourcegroup mydestaccount 68434c7a-20d0-4282-b75c-43b5a243435e mysrcaccount2 mydestaccount [d3d39a01-8d92-40e5-849f-e56209ae5cf5,...] - - This command lists object replication policy from a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageobjectreplicationpolicy - - - - - - Get-AzStorageUsage - Get - AzStorageUsage - - Gets the Storage resource usage of the current subscription. - - - - The Get-AzStorageUsage cmdlet gets the resource usage for Azure Storage for the current subscription. - - - - Get-AzStorageUsage - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Location - - Indicate to get Storage resources usage on the specified location. If not specified, will get Storage resources usage on all locations under the subscription. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Location - - Indicate to get Storage resources usage on the specified location. If not specified, will get Storage resources usage on all locations under the subscription. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSUsage - - - - - - - - - - - - - - Example 1: Get the storage resources usage of specified location - Get-AzStorageUsage -Location 'West US' - -LocalizedName : Storage Accounts -Name : StorageAccounts -Unit : Count -CurrentValue : 18 -Limit : 250 - - This command gets the Storage resources usage of specified location under the current subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageusage - - - Azure Storage Manager Cmdlets - - - - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - Invoke - AzRmStorageContainerImmutableStorageWithVersioningMigration - - Migrate an existing Storage blob containers to enable immutable Storage with versioning. - - - - The Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration cmdlet migrates an existing Storage blob containers to enable immutable Storage with versioning. The cmdlet only works when the Storage account has already enabled blob versioning, and the containers already has ImmutabilityPolicy. - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Migrates an existing Storage blob containers to enable immutable Storage with versioning. - $t = Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration -ResourceGroupName "myResourceGroup" -AccountName "mystorageaccount" -Name testcontainer -asjob - -$t | Wait-Job - - This command migrates an existing Storage blob containers to enable immutable Storage with versioning. The command only works when the Storage account has already enabled blob versioning, and the containers already has ImmutabilityPolicy. Since the command ussually will run for a long time, you can run it asynchronously with '-Asjob'. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/invoke-azrmstoragecontainerimmutablestoragewithversioningmigration - - - - - - Invoke-AzStorageAccountFailover - Invoke - AzStorageAccountFailover - - Invokes failover of a Storage account. - - - - Invokes failover of a Storage account. Failover request can be triggered for a storage account in case of availability issues. The failover occurs from the storage account's primary cluster to secondary cluster for RA-GRS accounts. The secondary cluster will become primary after failover. Please understand the following impact to your storage account before you initiate the failover: 1.1. Please check the Last Sync Time using GET Blob Service Stats (https://learn.microsoft.com/rest/api/storageservices/get-blob-service-stats), GET Table Service Stats (https://learn.microsoft.com/rest/api/storageservices/get-table-service-stats) and GET Queue Service Stats (https://learn.microsoft.com/rest/api/storageservices/get-queue-service-stats) for your account. This is the data you may lose if you initiate the failover. 2.After the failover, your storage account type will be converted to locally redundant storage(LRS). You can convert your account to use geo-redundant storage(GRS). 3.Once you re-enable GRS for your storage account, Microsoft will replicate data to your new secondary region. Replication time is dependent on the amount of data to replicate. Please note that there are bandwidth charges for the bootstrap. https://azure.microsoft.com/en-us/pricing/details/bandwidth/ - - - - Invoke-AzStorageAccountFailover - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzStorageAccountFailover - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ------- Example 1: Invoke failover of a Storage account ------- - $account = Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -IncludeGeoReplicationStats -$account.GeoReplicationStats - -Status LastSyncTime ------- ------------ -Live 11/13/2018 2:44:22 AM - -$job = Invoke-AzStorageAccountFailover -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Force -AsJob -$job | Wait-Job - - This command check the last sync time of a Storage account then invokes failover of it, the secondary cluster will become primary after failover. Since failover takes a long time, suggest to run it in the backend with -Asjob parameter, and then wait for the job complete. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/invoke-Azstorageaccountfailover - - - - - - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - Invoke - AzStorageAccountHierarchicalNamespaceUpgrade - - Validates if a storage account can be upgraded to enable HierarchicalNamespace, or upgrades a Storage account to enabled HierarchicalNamespace. - - - - The Invoke-AzStorageAccountHierarchicalNamespaceUpgrade cmdlet can validate if a storage account can be upgraded to enable HierarchicalNamespace, or upgrades a Storage account to enabled HierarchicalNamespace. - - - - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - RequestType - - The HierarchicalNamespaceUpgrade requestType to run: - Validation: Validate if the account can be upgrade to enable HierarchicalNamespace. - - Upgrade: Upgrade the storage account to enable HierarchicalNamespace. - - - Validation - Upgrade - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - RequestType - - The HierarchicalNamespaceUpgrade requestType to run: - Validation: Validate if the account can be upgrade to enable HierarchicalNamespace. - - Upgrade: Upgrade the storage account to enable HierarchicalNamespace. - - - Validation - Upgrade - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - RequestType - - The HierarchicalNamespaceUpgrade requestType to run: - Validation: Validate if the account can be upgrade to enable HierarchicalNamespace. - - Upgrade: Upgrade the storage account to enable HierarchicalNamespace. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - Example 1: Validate a stroage account can be upgrade to enable HierarchicalNamespace, then upgrade it to enabled HierarchicalNamespace - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade -ResourceGroupName $rgname -Name $accountName -RequestType Validation -True - -$task = Invoke-AzStorageAccountHierarchicalNamespaceUpgrade -ResourceGroupName $rgname -Name $accountName -RequestType Upgrade -Force -AsJob - -$task | Wait-Job - - The first command validates if a stroage account can be upgrade to enable HierarchicalNamespace. The second command upgrade the storage account to enable HierarchicalNamespace. Since the upgrade will take time, use '-Asjob' to run it in backend, and return a task. Then wait for the task finish. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/invoke-azstorageaccounthierarchicalnamespaceupgrade - - - - - - Lock-AzRmStorageContainerImmutabilityPolicy - Lock - AzRmStorageContainerImmutabilityPolicy - - Locks ImmutabilityPolicy of a Storage blob containers - - - - The Lock-AzRmStorageContainerImmutabilityPolicy cmdlet locks ImmutabilityPolicy of a Storage blob containers. - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Lock-AzRmStorageContainerImmutabilityPolicy - - InputObject - - ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Force - - Force to remove the ImmutabilityPolicy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Lock ImmutabilityPolicy of a Storage blob container with Storage account name and container name - $policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Lock-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Etag $policy.Etag - - This command Locks ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Lock ImmutabilityPolicy of a Storage blob container, with Storage account object - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Lock-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Etag $policy.Etag -Force - - This command locks ImmutabilityPolicy of a Storage blob container, with Storage account object. - - - - - - Example 3: Lock ImmutabilityPolicyof a Storage blob container, with container object - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Lock-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Etag $policy.Etag -Force - - This command locks ImmutabilityPolicy of a Storage blob container with Storage container object. - - - - - - Example 4: Lock ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" | Lock-AzRmStorageContainerImmutabilityPolicy -Force - - This command locks ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/lock-azrmstoragecontainerimmutabilitypolicy - - - - - - New-AzRmStorageContainer - New - AzRmStorageContainer - - Creates a Storage blob container - - - - The New-AzRmStorageContainer cmdlet creates a Storage blob container - - - - New-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageContainer - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableImmutableStorageWithVersioning - - Enable immutable Storage with versioning at the container level. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - PublicAccess - - Container PublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Create a Storage blob container with Storage account name and container name, with metadata - New-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Metadata @{tag0="value0";tag1="value1";tag2="value2"} - - This command creates a Storage blob container with Storage account name and container name, with metadata. - - - - - - Example 2: Create a Storage blob container with Storage account object and container name, with public access as Blob - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -New-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" -PublicAccess Blob - - This command creates a Storage blob container with Storage account object and container name, with public access as Blob. - - - - - - Example 3: Create a storage container with EncryptionScope setting - $c = New-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "mystorageaccount" -Name testcontainer -DefaultEncryptionScope "testscope" -PreventEncryptionScopeOverride $true - -$c - - ResourceGroupName: myResourceGroup, StorageAccountName: mystorageaccount - -Name PublicAccess LastModified HasLegalHold HasImmutabilityPolicy ----- ------------ ------------ ------------ --------------------- -testcontainer False False - -$c.DefaultEncryptionScope -testscope - -$c.DenyEncryptionScopeOverride -True - - This command creates a storage container with a defalt encryptionScope, and blocks override of encryption scope from the container default. Then show the related container properties. - - - - - - - Example 4: Create an Azure storage container with RootSquash - - $container = New-AzRmStorageContainer -ResourceGroupName "myersourcegroup" -AccountName "mystorageaccount" -Name "mycontainer" -RootSquash AllSquash - -$container.EnableNfsV3AllSquash -True - -$container.EnableNfsV3RootSquash -False - - This command creates a storage container, with RootSquash property set as AllSquash. RootSquash only works on a storage account that enabled NfsV3. - - - - - - Example 5: Create a storage container and enable immutable Storage with versioning - $c = New-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "mystorageaccount" -Name testcontainer -EnableImmutableStorageWithVersioning - -$c - -ResourceGroupName: myResourceGroup, StorageAccountName: mystorageaccount - -Name PublicAccess LastModified HasLegalHold HasImmutabilityPolicy Deleted VersionId ImmutableStorageWithVersioning ----- ------------ ------------ ------------ --------------------- ------- --------- ------------------------------ -testcontainer None 2021-07-19 08:26:19Z False False False True - - This command creates a storage container and enable immutable Storage with versioning. The command only works when the Storage account has already enabled blob versioning. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azrmstoragecontainer - - - - - - New-AzRmStorageShare - New - AzRmStorageShare - - Creates a Storage file share. - - - - The New-AzRmStorageShare cmdlet creates a Storage file share. - - - - New-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledProtocol - - Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS' - - - NFS - SMB - - System.String - - System.String - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Azure File share name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Snapshot - - Create a snapshot of existing share with same name. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzRmStorageShare - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledProtocol - - Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS' - - - NFS - SMB - - System.String - - System.String - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Azure File share name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Snapshot - - Create a snapshot of existing share with same name. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnabledProtocol - - Sets protocols for file shares. It cannot be changed after file share creation. Possible values include: 'SMB', 'NFS' - - System.String - - System.String - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Azure File share name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - Snapshot - - Create a snapshot of existing share with same name. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - Example 1: Create a Storage file share with Storage account name and share name, with metadata and share quota as 100 GiB. - New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -QuotaGiB 100 -Metadata @{"tag1" = "value1"; "tag2" = "value2" } - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -myshare - - This command creates a Storage file share with metadata and share quota as 100 GiB. - - - - - - Example 2: Create a Storage file share with Storage account object - Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | New-AzRmStorageShare -Name "myshare" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -myshare - - This command creates a Storage file share with Storage account object and share name. - - - - - - Example 3: Create a Storage file share with accesstier as Hot - $share = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -AccessTier Hot - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare Hot - - This command creates a Storage file share with accesstier as Hot. - - - - - - Example 4: Create a Storage file share snapshot of an existing share - $shareSnapshot = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -Snapshot - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime ----- -------- ---------------- ---------- ------- ------- --------------- ------------ -myshare 2021-05-10T08:04:08 - - This command creates a Storage file share snapshot of an existing base file share. - - - - - - Example 5: Create a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash property as NoRootSquash - $share = New-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -EnabledProtocol NFS -RootSquash NoRootSquash - -$share - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare NFS - -$share.RootSquash -NoRootSquash - - This command creates a Storage file share with EnabledProtocol proeprty as NFS, and RootSquash proeprty as NoRootSquash. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azrmstorageshare - - - - - - New-AzStorageAccount - New - AzStorageAccount - - Creates a Storage account. - - - - The New-AzStorageAccount cmdlet creates an Azure Storage account. - - - - New-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Premium_ZRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - - Storage - StorageV2 - BlobStorage - BlockBlobStorage - FileStorage - - System.String - - System.String - - - StorageV2 - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - New-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Premium_ZRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - - Storage - StorageV2 - BlobStorage - BlockBlobStorage - FileStorage - - System.String - - System.String - - - StorageV2 - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - New-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Premium_ZRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - - System.Management.Automation.SwitchParameter - - - False - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Microsoft Entra Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - - Service - Account - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - - Storage - StorageV2 - BlobStorage - BlockBlobStorage - FileStorage - - System.String - - System.String - - - StorageV2 - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet creates. The acceptable values for this parameter are: Hot and Cool. If you specify a value of BlobStorage for the Kind parameter, you must specify a value for the AccessTier parameter. If you specify a value of Storage for this Kind parameter, do not specify the AccessTier parameter. - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow anonymous access to all blobs or containers in the storage account. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is false for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain of the Storage account. The default value is Storage. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - System.String - - System.String - - - None - - - DnsEndpointType - - Specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. Possible values include: 'Standard', 'AzureDnsZone'. - - System.String - - System.String - - - None - - - EdgeZone - - Set the extended location name for EdgeZone. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location - - System.String - - System.String - - - None - - - EnableAccountLevelImmutability - - Enables account-level immutability, then all the containers under this account will have object-level immutability enabled by default. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Microsoft Entra Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHierarchicalNamespace - - Indicates whether or not the Storage account enables Hierarchical Namespace. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableNfsV3 - - Enable NFS 3.0 protocol support if sets to true - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EncryptionKeyTypeForQueue - - Set the Encryption KeyType for Queue. The default value is Service. -Account: Queue will be encrypted with account-scoped encryption key. -Service: Queue will always be encrypted with Service-Managed keys. - - System.String - - System.String - - - None - - - EncryptionKeyTypeForTable - - Set the Encryption KeyType for Table. The default value is Service. - Account: Table will be encrypted with account-scoped encryption key. - - Service: Table will always be encrypted with Service-Managed keys. - - System.String - - System.String - - - None - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be only be specified with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. This property can only be specified with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - Storage Account encryption keySource KeyVault KeyName - - System.String - - System.String - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - Storage Account encryption keySource KeyVault KeyVaultUri - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - Storage Account encryption keySource KeyVault KeyVersion - - System.String - - System.String - - - None - - - Kind - - Specifies the kind of Storage account that this cmdlet creates. The acceptable values for this parameter are: - Storage. General purpose Storage account that supports storage of Blobs, Tables, Queues, Files and Disks. - - StorageV2. General Purpose Version 2 (GPv2) Storage account that supports Blobs, Tables, Queues, Files, and Disks, with advanced features like data tiering. - - BlobStorage. Blob Storage account which supports storage of Blobs only. - - BlockBlobStorage. Block Blob Storage account which supports storage of Block Blobs only. - - FileStorage. File Storage account which supports storage of Files only. - The default value is StorageV2. - - System.String - - System.String - - - StorageV2 - - - Location - - Specifies the location of the Storage account to create. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to create. - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RequireInfrastructureEncryption - - The service will apply a secondary layer of encryption with platform managed keys for data at rest. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Specifies the name of the resource group in which to add the Storage account. - - System.String - - System.String - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account that this cmdlet creates. The acceptable values for this parameter are: - Standard_LRS. Locally-redundant storage. - - Standard_ZRS. Zone-redundant storage. - - Standard_GRS. Geo-redundant storage. - - Standard_RAGRS. Read access geo-redundant storage. - - Premium_LRS. Premium locally-redundant storage. - - Premium_ZRS. Premium zone-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UserAssignedIdentityId - - Set resource ids for the new Storage Account user assigned Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ------------- Example 1: Create a Storage account ------------- - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -SkuName Standard_GRS -MinimumTlsVersion TLS1_2 - - This command creates a Storage account for the resource group name MyResourceGroup. - - - - - - Example 2: Create a Blob Storage account with BlobStorage Kind and hot AccessTier - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -SkuName Standard_GRS -Kind BlobStorage -AccessTier Hot - - This command creates a Blob Storage account that with BlobStorage Kind and hot AccessTier - - - - - - Example 3: Create a Storage account with Kind StorageV2, and Generate and Assign an Identity for Azure KeyVault. - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -SkuName Standard_GRS -Kind StorageV2 -AssignIdentity - - This command creates a Storage account with Kind StorageV2. It also generates and assigns an identity that can be used to manage account keys through Azure KeyVault. - - - - - - Example 4: Create a Storage account with NetworkRuleSet from JSON - New-AzStorageAccount -ResourceGroupName MyResourceGroup -Name mystorageaccount -Location westus -Type Standard_LRS -NetworkRuleSet (@{bypass="Logging,Metrics"; - ipRules=(@{IPAddressOrRange="20.11.0.0/16";Action="allow"}, - @{IPAddressOrRange="10.0.0.0/7";Action="allow"}); - virtualNetworkRules=(@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}, - @{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2";Action="allow"}); - defaultAction="Deny"}) - - This command creates a Storage account that has NetworkRuleSet property from JSON - - - - - - Example 5: Create a Storage account with Hierarchical Namespace enabled, Sftp enabled, and localuser enabled. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -Location "US West" -SkuName "Standard_GRS" -Kind StorageV2 -EnableHierarchicalNamespace $true -EnableSftp $true -EnableLocalUser $true - - This command creates a Storage account with Hierarchical Namespace enabled, Sftp enabled, and localuser enabled. - - - - - - Example 6: Create a Storage account with Azure Files Microsoft Entra Domain Services Authentication, and enable large file share. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableAzureActiveDirectoryDomainServicesForFile $true -EnableLargeFileShare - - This command creates a Storage account with Azure Files Microsoft Entra Domain Services Authentication, and enable large file share. - - - - - - Example 7: Create a Storage account with enable Files Active Directory Domain Service Authentication and DefaultSharePermission. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableActiveDirectoryDomainServicesForFile $true ` - -ActiveDirectoryDomainName "mydomain.com" ` - -ActiveDirectoryNetBiosDomainName "mydomain.com" ` - -ActiveDirectoryForestName "mydomain.com" ` - -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" ` - -ActiveDirectoryDomainSid "S-1-5-21-1234567890-1234567890-1234567890" ` - -ActiveDirectoryAzureStorageSid "S-1-5-21-1234567890-1234567890-1234567890-1234" ` - -ActiveDirectorySamAccountName "samaccountname" ` - -ActiveDirectoryAccountType User ` - -DefaultSharePermission StorageFileDataSmbShareElevatedContributor - - This command creates a Storage account withenable Files Active Directory Domain Service Authentication and DefaultSharePermission. - - - - - - Example 8: Create a Storage account with Queue and Table Service use account-scoped encryption key, and Require Infrastructure Encryption. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EncryptionKeyTypeForTable Account -EncryptionKeyTypeForQueue Account -RequireInfrastructureEncryption - -$account = Get-AzStorageAccount -ResourceGroupName $rgname -Name $accountName - -$account.Encryption.Services.Queue - -Enabled LastEnabledTime KeyType -------- --------------- ------- - True 1/9/2020 6:09:11 AM Account - -$account.Encryption.Services.Table - -Enabled LastEnabledTime KeyType -------- --------------- ------- - True 1/9/2020 6:09:11 AM Account - -$account.Encryption.RequireInfrastructureEncryption -True - - This command creates a Storage account with Queue and Table Service use account-scoped encryption key and Require Infrastructure Encryption, so Queue and Table will use same encryption key with Blob and File service, and the service will apply a secondary layer of encryption with platform managed keys for data at rest. Then get the Storage account properties, and view the encryption keytype of Queue and Table Service, and RequireInfrastructureEncryption value. - - - - - - Example 9: Create account MinimumTlsVersion and AllowBlobPublicAccess, and disable SharedKey Access - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -MinimumTlsVersion TLS1_2 -AllowBlobPublicAccess $false -AllowSharedKeyAccess $false - -$account.MinimumTlsVersion -TLS1_2 - -$account.AllowBlobPublicAccess -False - -$a.AllowSharedKeyAccess -False - - The command create account with MinimumTlsVersion, AllowBlobPublicAccess, and disable SharedKey access to the account, and then show the 3 properties of the created account - - - - - - Example 10: Create a Storage account with RoutingPreference setting - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -PublishMicrosoftEndpoint $true -PublishInternetEndpoint $true -RoutingChoice MicrosoftRouting - -$account.RoutingPreference - -RoutingChoice PublishMicrosoftEndpoints PublishInternetEndpoints -------------- ------------------------- ------------------------ -MicrosoftRouting True True - -$account.PrimaryEndpoints - -Blob : https://mystorageaccount.blob.core.windows.net/ -Queue : https://mystorageaccount.queue.core.windows.net/ -Table : https://mystorageaccount.table.core.windows.net/ -File : https://mystorageaccount.file.core.windows.net/ -Web : https://mystorageaccount.z2.web.core.windows.net/ -Dfs : https://mystorageaccount.dfs.core.windows.net/ -MicrosoftEndpoints : {"Blob":"https://mystorageaccount-microsoftrouting.blob.core.windows.net/","Queue":"https://mystorageaccount-microsoftrouting.queue.core.windows.net/","Table":"https://mystorageaccount-microsoftrouting.table.core.windows.net/","File":"ht - tps://mystorageaccount-microsoftrouting.file.core.windows.net/","Web":"https://mystorageaccount-microsoftrouting.z2.web.core.windows.net/","Dfs":"https://mystorageaccount-microsoftrouting.dfs.core.windows.net/"} -InternetEndpoints : {"Blob":"https://mystorageaccount-internetrouting.blob.core.windows.net/","File":"https://mystorageaccount-internetrouting.file.core.windows.net/","Web":"https://mystorageaccount-internetrouting.z2.web.core.windows.net/","Dfs":"https://w - eirp3-internetrouting.dfs.core.windows.net/"} - - This command creates a Storage account with RoutingPreference setting: PublishMicrosoftEndpoint and PublishInternetEndpoint as true, and RoutingChoice as MicrosoftRouting. - - - - - - Example 11: Create a Storage account with EdgeZone and AllowCrossTenantReplication - $account = New-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -SkuName Premium_LRS -Location westus -EdgeZone "microsoftlosangeles1" -AllowCrossTenantReplication $false - -$account.ExtendedLocation - -Name Type ----- ---- -microsoftlosangeles1 EdgeZone - -$account.AllowCrossTenantReplication -False - - This command creates a Storage account with EdgeZone as "microsoftlosangeles1" and AllowCrossTenantReplication as false, then show the created account related properties. - - - - - - Example 12: Create a Storage account with KeyExpirationPeriod and SasExpirationPeriod - $account = New-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -SkuName Premium_LRS -Location eastus -KeyExpirationPeriodInDay 5 -SasExpirationPeriod "1.12:05:06" - -$account.KeyPolicy.KeyExpirationPeriodInDays -5 - -$account.SasPolicy.SasExpirationPeriod -1.12:05:06 - - This command creates a Storage account with KeyExpirationPeriod and SasExpirationPeriod, then show the created account related properties. - - - - - - Example 12: Create a Storage account with Keyvault encryption (access Keyvault with user assigned identity) - # Create KeyVault (no need if using exist keyvault) -$keyVault = New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location eastus2euap -EnablePurgeProtection -$key = Add-AzKeyVaultKey -VaultName $keyvaultName -Name $keyname -Destination 'Software' - -# create user assigned identity and grant access to keyvault (no need if using exist user assigned identity) -$userId = New-AzUserAssignedIdentity -ResourceGroupName $resourceGroupName -Name $userIdName -Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $userId.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation -$useridentityId= $userId.Id - -# create Storage account with Keyvault encryption (access Keyvault with user assigned identity), then show properties -$account = New-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -Kind StorageV2 -SkuName Standard_LRS -Location eastus2euap ` - -IdentityType SystemAssignedUserAssigned -UserAssignedIdentityId $useridentityId ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId - -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity ------------------------------- -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 4/12/2021 8:17:57 AM - - This command first create a keyvault and a user assigned identity, then create a storage account with keyvault encryption (the storage access access keyvault with the user assigned identity). - - - - - - --------- Example 13: Create account with EnableNfsV3 --------- - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -EnableNfsV3 $true -EnableHierarchicalNamespace $true -EnableHttpsTrafficOnly $false -NetworkRuleSet (@{bypass="Logging,Metrics"; - virtualNetworkRules=(@{VirtualNetworkResourceId="$vnet1";Action="allow"}); - defaultAction="deny"}) -$account.EnableNfsV3 - -True - - The command create account with EnableNfsV3 as true, and then show the EnableNfsV3 property of the created account - - - - - - - Example 14: Create account with disable PublicNetworkAccess - - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -PublicNetworkAccess Disabled - -$account.PublicNetworkAccess - -Disabled - - The command creates account with disable PublicNetworkAccess of the account. - - - - - - Example 15: Create account with account level Immutability policy - $account = New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -EnableAccountLevelImmutability -ImmutabilityPeriod 1 -ImmutabilityPolicyState Unlocked - -$account.ImmutableStorageWithVersioning.Enabled -True - -$account.ImmutableStorageWithVersioning.ImmutabilityPolicy - -ImmutabilityPeriodSinceCreationInDays State -------------------------------------- ----- - 1 Unlocked - - The command creates an account and enable account level immutability with versioning by '-EnableAccountLevelImmutability', then all the containers under this account will have object-level immutability enabled by default. The account is also created with a default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. - - - - - - Example 16: Create a Storage account with enable Azure Files Active Directory Domain Service Kerberos Authentication. - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -Location "eastus2euap" -SkuName "Standard_LRS" -Kind StorageV2 -EnableAzureActiveDirectoryKerberosForFile $true ` - -ActiveDirectoryDomainName "mydomain.com" ` - -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" - - This command creates a Storage account with enable Azure Files Active Directory Domain Service Kerberos Authentication. - - - - - - Example 17: Create a Storage account with Keyvault from another tenant (access Keyvault with FederatedClientId) - # create Storage account with Keyvault encryption (access Keyvault with FederatedClientId), then show properties -$account = New-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -Kind StorageV2 -SkuName Standard_LRS -Location eastus2euap ` - -IdentityType SystemAssignedUserAssigned -UserAssignedIdentityId $useridentityId ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId -KeyVaultFederatedClientId $federatedClientId - -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity EncryptionFederatedIdentityClientId ------------------------------- ----------------------------------- -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid ********-****-****-****-************ - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 3/3/2022 2:07:34 AM - - This command creates a storage account with Keyvault from another tenant (access Keyvault with FederatedClientId). - - - - - - Example 18: Create account with DnsEndpointType as AzureDnsZone - New-AzStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -DnsEndpointType AzureDnsZone - - The command creates a storage account with DnsEndpointType as AzureDnsZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageaccount - - - Get-AzStorageAccount - - - - Remove-AzStorageAccount - - - - Set-AzStorageAccount - - - - - - - New-AzStorageAccountKey - New - AzStorageAccountKey - - Regenerates a storage key for an Azure Storage account. - - - - The New-AzStorageAccountKey cmdlet regenerates a storage key for an Azure Storage account. - - - - New-AzStorageAccountKey - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account for which to regenerate a storage key. - - System.String - - System.String - - - None - - - KeyName - - Specifies which key to regenerate. The acceptable values for this parameter are: - key1 - - key2 - - kerb1 - - kerb2 - - - key1 - key2 - kerb1 - kerb2 - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - KeyName - - Specifies which key to regenerate. The acceptable values for this parameter are: - key1 - - key2 - - kerb1 - - kerb2 - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account for which to regenerate a storage key. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Management.Storage.Models.StorageAccountListKeysResult - - - - - - - - - - - - - - ------------- Example 1: Regenerate a storage key ------------- - New-AzStorageAccountKey -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyName "key1" - - This command regenerates a storage key for the specified Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageaccountkey - - - Get-AzStorageAccountKey - - - - - - - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - New - AzStorageAccountManagementPolicyBlobIndexMatchObject - - Creates a ManagementPolicy BlobIndexMatch object, which can be used in New-AzStorageAccountManagementPolicyFilter. - - - - The New-AzStorageAccountManagementPolicyBlobIndexMatchObject cmdlet creates a ManagementPolicy BlobIndexMatch object, which can be used in New-AzStorageAccountManagementPolicyFilter. - - - - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Gets or sets this is the filter tag name, it can have 1 - 128 characters - - System.String - - System.String - - - None - - - Value - - Gets or sets this is the filter tag value field used for tag based filtering, it can have 0 - 256 characters. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Gets or sets this is the filter tag name, it can have 1 - 128 characters - - System.String - - System.String - - - None - - - Value - - Gets or sets this is the filter tag value field used for tag based filtering, it can have 0 - 256 characters. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter - - - - - - - - - - - - - - Example 1: Creates 2 ManagementPolicy BlobIndexMatch object3, then add them to a management policy rule filter - $blobindexmatch1 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag1" -Value "value1" -$blobindexmatch1 - -Name Op Value ----- -- ----- -tag1 == value1 - -$blobindexmatch2 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag2" -Value "value2" - -New-AzStorageAccountManagementPolicyFilter -PrefixMatch prefix1,prefix2 -BlobType blockBlob ` - -BlobIndexMatch $blobindexmatch1,$blobindexmatch2 - -PrefixMatch BlobTypes BlobIndexMatch ------------ --------- -------------- -{prefix1, prefix2} {blockBlob} {tag1, tag2} - - This command creates 2 ManagementPolicy BlobIndexMatch objects, then add themto a management policy rule filter. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-Azstorageaccountmanagementpolicyblobindexmatchobject - - - - - - New-AzStorageAccountManagementPolicyFilter - New - AzStorageAccountManagementPolicyFilter - - Creates a ManagementPolicy rule filter object, which can be used in New-AzStorageAccountManagementPolicyRule. - - - - The New-AzStorageAccountManagementPolicyFilter cmdlet creates a ManagementPolicy rule filter object, which can be used in New-AzStorageAccountManagementPolicyRule. - - - - New-AzStorageAccountManagementPolicyFilter - - BlobIndexMatch - - An array of blob index tag based filters, there can be at most 10 tag filters. - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - - None - - - BlobType - - An array of strings for blobtypes to be match. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. - - - blockBlob - appendBlob - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PrefixMatch - - An array of strings for prefixes to be match. A prefix string must start with a container name. - - System.String[] - - System.String[] - - - None - - - - - - BlobIndexMatch - - An array of blob index tag based filters, there can be at most 10 tag filters. - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSTagFilter[] - - - None - - - BlobType - - An array of strings for blobtypes to be match. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PrefixMatch - - An array of strings for prefixes to be match. A prefix string must start with a container name. - - System.String[] - - System.String[] - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - - - - - - - - - - - - - Example 1: Creates a ManagementPolicy rule filter object, then add it to a management policy rule and set to a Storage account - $blobindexmatch1 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag1" -Value "value1" -$blobindexmatch2 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag2" -Value "value2" -$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch blobprefix1,blobprefix2 -BlobType appendBlob,blockBlob -BlobIndexMatch $blobindexmatch1,$blobindexmatch2 -$filter - -PrefixMatch BlobTypes BlobIndexMatch ------------ --------- -------------- -{blobprefix1, blobprefix2} {appendBlob, blockBlob} {tag1, tag2} - -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 100 -$rule = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - This command create a ManagementPolicy rule filter object. Then add it to a management policy rule and set to a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-Azstorageaccountmanagementpolicyfilter - - - - - - New-AzStorageAccountManagementPolicyRule - New - AzStorageAccountManagementPolicyRule - - Creates a ManagementPolicy rule object, which can be used in Set-AzStorageAccountManagementPolicy. - - - - The New-AzStorageAccountManagementPolicyRule cmdlet creates a ManagementPolicy rule object, which can be used in Set-AzStorageAccountManagementPolicy. - - - - New-AzStorageAccountManagementPolicyRule - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - Action - - An object that defines the action set. Get the Object with cmdlet Add-AzureStorageAccountManagementPolicyAction - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - Filter - - An object that defines the filter set. Get the Object with cmdlet New-AzureStorageAccountManagementPolicyFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - - None - - - - - - Action - - An object that defines the action set. Get the Object with cmdlet Add-AzureStorageAccountManagementPolicyAction - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Filter - - An object that defines the filter set. Get the Object with cmdlet New-AzureStorageAccountManagementPolicyFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRuleFilter - - - None - - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule - - - - - - - - - - - - - - Example 1: Creates a ManagementPolicy rule object, then set to a Storage Account - $action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 100 -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 50 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCool -daysAfterModificationGreaterThan 30 -InputObject $action -$action = Add-AzStorageAccountManagementPolicyAction -SnapshotAction Delete -daysAfterCreationGreaterThan 100 -InputObject $action - -$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch blobprefix1,blobprefix2 - -$rule = New-AzStorageAccountManagementPolicyRule -Name rule1 -Action $action -Filter $filter -$rule - -Enabled : True -Name : rule1 -Definition : { - "Actions": { - "BaseBlob": { - "TierToCool": { - "DaysAfterModificationGreaterThan": 30 - }, - "TierToArchive": { - "DaysAfterModificationGreaterThan": 50 - }, - "Delete": { - "DaysAfterModificationGreaterThan": 100 - } - }, - "Snapshot": { - "Delete": { - "DaysAfterCreationGreaterThan": 100 - } - } - }, - "Filters": { - "PrefixMatch": [ - "blobprefix1", - "blobprefix2" - ], - "BlobTypes": [ - "blockBlob" - ] - } - } - -$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule - - This command create a ManagementPolicy rule object, with a ManagementPolicy action group object contains 4 actions, a ManagementPolicy rule filter object, then set the rule to a Storage Account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-Azstorageaccountmanagementpolicyrule - - - - - - New-AzStorageBlobInventoryPolicyRule - New - AzStorageBlobInventoryPolicyRule - - Creates a blob inventory policy rule object, which can be used in Set-AzStorageBlobInventoryPolicy. - - - - The New-AzStorageBlobInventoryPolicyRule cmdlet creates a blob inventory policy rule object, which can be used in Set-AzStorageBlobInventoryPolicy. - - - - New-AzStorageBlobInventoryPolicyRule - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - BlobSchemaField - - Specifies the fields and properties of the Blob object to be included in the inventory. Valid values include: Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Metadata, LastAccessTime, AccessTierInferred, Tags. 'Name' is a required schemafield. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl' are valid only for HierarchicalNamespace enabled accounts.'Tags' field is only valid for non HierarchicalNamespace accounts. If specify '-IncludeSnapshot', will include 'Snapshot' in the inventory. If specify '-IncludeBlobVersion', will include 'VersionId, 'IsCurrentVersion' in the inventory. - - - Name - Creation-Time - Last-Modified - Content-Length - Content-MD5 - BlobType - AccessTier - AccessTierChangeTime - Expiry-Time - hdi_isfolder - Owner - Group - Permissions - Acl - Metadata - LastAccessTime - AccessTierInferred - Tags - Etag - Content-Type - Content-Encoding - Content-Language - Content-CRC64 - Cache-Control - Content-Disposition - LeaseStatus - LeaseState - LeaseDuration - ServerEncrypted - Deleted - RemainingRetentionDays - ImmutabilityPolicyUntilDate - ImmutabilityPolicyMode - LegalHold - CopyId - CopyStatus - CopySource - CopyProgress - CopyCompletionTime - CopyStatusDescription - CustomerProvidedKeySha256 - RehydratePriority - ArchiveStatus - x-ms-blob-sequence-number - EncryptionScope - IncrementalCopy - DeletionId - DeletedTime - TagCount - - System.String[] - - System.String[] - - - None - - - BlobType - - Sets the blob types for the blob inventory policy rule. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. - - - blockBlob - pageBlob - appendBlob - - System.String[] - - System.String[] - - - None - - - CreationTimeLastNDay - - Filter the objects which has creation time in last N days. The valid value is between 1 to 36500. Inventory schema 'Creation-Time' is mandatory with this filter. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - The container name where blob inventory files are stored. Must be pre-created. - - System.String - - System.String - - - None - - - Disabled - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - ExcludePrefix - - Sets an array of strings with maximum 10 blob prefixes to be excluded from the inventory. - - System.String[] - - System.String[] - - - None - - - Format - - Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet' - - - Csv - Parquet - - System.String - - System.String - - - None - - - IncludeBlobVersion - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeDeleted - - Includes deleted blob in blob inventory. When include delete blob, for ContainerSchemaFields, must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For BlobSchemaFields, on HNS enabled storage accounts, must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays', and on Hns disabled accounts must include 'Deleted and RemainingRetentionDays', else they must be excluded. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - PrefixMatch - - Sets an array of strings for blob prefixes to be matched.. - - System.String[] - - System.String[] - - - None - - - Schedule - - This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly' - - - Daily - Weekly - - System.String - - System.String - - - None - - - - New-AzStorageBlobInventoryPolicyRule - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - ContainerSchemaField - - Specifies the fields and properties of the container object to be included in the inventory. Valid values include: Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold. 'Name' is a required schemafield. - - - Name - Last-Modified - Metadata - LeaseStatus - LeaseState - LeaseDuration - PublicAccess - HasImmutabilityPolicy - HasLegalHold - Etag - DefaultEncryptionScope - DenyEncryptionScopeOverride - ImmutableStorageWithVersioningEnabled - Deleted - Version - DeletedTime - RemainingRetentionDays - - System.String[] - - System.String[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - The container name where blob inventory files are stored. Must be pre-created. - - System.String - - System.String - - - None - - - Disabled - - The rule is disabled if set it. - - - System.Management.Automation.SwitchParameter - - - False - - - ExcludePrefix - - Sets an array of strings with maximum 10 blob prefixes to be excluded from the inventory. - - System.String[] - - System.String[] - - - None - - - Format - - Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet' - - - Csv - Parquet - - System.String - - System.String - - - None - - - PrefixMatch - - Sets an array of strings for blob prefixes to be matched.. - - System.String[] - - System.String[] - - - None - - - Schedule - - This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly' - - - Daily - Weekly - - System.String - - System.String - - - None - - - - - - BlobSchemaField - - Specifies the fields and properties of the Blob object to be included in the inventory. Valid values include: Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Metadata, LastAccessTime, AccessTierInferred, Tags. 'Name' is a required schemafield. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl' are valid only for HierarchicalNamespace enabled accounts.'Tags' field is only valid for non HierarchicalNamespace accounts. If specify '-IncludeSnapshot', will include 'Snapshot' in the inventory. If specify '-IncludeBlobVersion', will include 'VersionId, 'IsCurrentVersion' in the inventory. - - System.String[] - - System.String[] - - - None - - - BlobType - - Sets the blob types for the blob inventory policy rule. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. - - System.String[] - - System.String[] - - - None - - - ContainerSchemaField - - Specifies the fields and properties of the container object to be included in the inventory. Valid values include: Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold. 'Name' is a required schemafield. - - System.String[] - - System.String[] - - - None - - - CreationTimeLastNDay - - Filter the objects which has creation time in last N days. The valid value is between 1 to 36500. Inventory schema 'Creation-Time' is mandatory with this filter. - - System.Int32 - - System.Int32 - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - The container name where blob inventory files are stored. Must be pre-created. - - System.String - - System.String - - - None - - - Disabled - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ExcludePrefix - - Sets an array of strings with maximum 10 blob prefixes to be excluded from the inventory. - - System.String[] - - System.String[] - - - None - - - Format - - Specifies the format for the inventory files. Possible values include: 'Csv', 'Parquet' - - System.String - - System.String - - - None - - - IncludeBlobVersion - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeDeleted - - Includes deleted blob in blob inventory. When include delete blob, for ContainerSchemaFields, must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For BlobSchemaFields, on HNS enabled storage accounts, must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays', and on Hns disabled accounts must include 'Deleted and RemainingRetentionDays', else they must be excluded. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeSnapshot - - The rule is disabled if set it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - - System.String - - System.String - - - None - - - PrefixMatch - - Sets an array of strings for blob prefixes to be matched.. - - System.String[] - - System.String[] - - - None - - - Schedule - - This field is used to schedule an inventory formation. Possible values include: 'Daily', 'Weekly' - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule - - - - - - - - - - - - - - Example 1: Create blob inventory policy rule objects, then sets blob inventory policy with the rule objects. - $rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2 - -$rule2 = New-AzStorageBlobInventoryPolicyRule -Name Test2 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata -CreationTimeLastNDay 30 -$rule3 = New-AzStorageBlobInventoryPolicyRule -Name Test3 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeSnapshot -IncludeDeleted -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -ExcludePrefix ccc,ddd -BlobSchemaField name,Last-Modified,BlobType,AccessTier,AccessTierChangeTime,Content-Type,Content-CRC64,CopyId,DeletionId,Deleted,DeletedTime,RemainingRetentionDays - -$policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Disabled -Rule $rule1,$rule2 - -$policy - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 5/12/2021 8:53:38 AM -Enabled : False -Rules : {Test1, Test2, Test3} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions IncludeDeleted BlobTypes PrefixMatch ExcludePrefix SchemaFields CreationTime ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- -------------- --------- ----------- ------------- ------------ ------------ -Test1 False containername Container Csv Daily {con1, con2} {Name, Metadata, PublicAccess, Last-Modified...} -Test2 True containername Blob Parquet Weekly True {blockBlob, appendBlob} {aaa, bbb} {Name, Creation-Time, Last-Modified, Content-Length...} LastNDays=30 -Test3 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {aaa, bbb} {ccc, ddd} {Name, Last-Modified, BlobType, AccessTier...} - - This first 3 commands create 3 BlobInventoryPolicy rule objects: rule "Test1" for contaienr inventory; rule "Test2" for blob inventory; rule "Test3" for blob inventory with more schema fields, excludePrefix specified, and IncludeDeleted enabled. The following command sets blob inventory policy to a Storage account with the 3 rule objects, then show the updated policy and rules properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageblobinventorypolicyrule - - - - - - New-AzStorageBlobRangeToRestore - New - AzStorageBlobRangeToRestore - - Creates a Blob Range object to restores a Storage account. - - - - The New-AzStorageBlobRangeToRestore cmdlet creates a Blob range object, which can be used in Restore-AzStorageBlobRange. - - - - New-AzStorageBlobRangeToRestore - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndRange - - Specify the blob restore End range. End range will be excluded in restore blobs. Set it as empty strng to restore to the end. - - System.String - - System.String - - - None - - - StartRange - - Specify the blob restore start range. Start range will be included in restore blobs. Set it as empty string to restore from begining. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndRange - - Specify the blob restore End range. End range will be excluded in restore blobs. Set it as empty strng to restore to the end. - - System.String - - System.String - - - None - - - StartRange - - Specify the blob restore start range. Start range will be included in restore blobs. Set it as empty string to restore from begining. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange - - - - - - - - - - - - - - ---------- Example 1: Creates a blob range to restore ---------- - $range = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange container2/blob2 - - This command creates a blob range to restore, which starts at container1/blob1 (include), and ends at container2/blob2 (exclude). - - - - - - Example 2: Creates a blob range which will restore from first blob in alphabetical order, to a specific blob (exclude) - $range = New-AzStorageBlobRangeToRestore -StartRange "" -EndRange container2/blob2 - - This command creates a blob range which will restore from first blob of alphabetical order, to a specific blob container2/blob2 (exclude) - - - - - - Example 3: Creates a blob range which will restore from a specific blob (include), to the last blob in alphabetical order - $range = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange "" - - This command creates a blob range which will restore from a specific blob container1/blob1 (include), to the last blob in alphabetical order. - - - - - - - Example 4: Creates a blob range which will restore all blobs - - $range = New-AzStorageBlobRangeToRestore -StartRange "" -EndRange "" - - This command creates a blob range which will restore all blobs. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageblobrangetorestore - - - - - - New-AzStorageEncryptionScope - New - AzStorageEncryptionScope - - Creates an encryption scope for a Storage account. - - - - The New-AzStorageEncryptionScope cmdlet creates an encryption scope for a Storage account. - - - - New-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RequireInfrastructureEncryption - - The encryption scope will apply a secondary layer of encryption with platform managed keys for data at rest. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - - - - - - - - - - - - Example 1: Create an encryption scope with Storage Encryption - New-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -StorageEncryption - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Storage - - This command creates an encryption scope with Storage Encryption. - - - - - - Example 2: Create an encryption scope with Keyvault Encryption, and RequireInfrastructureEncryption - New-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" ` - -EncryptionScopeName testscope -KeyvaultEncryption -KeyUri "https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57" ` - -RequireInfrastructureEncryption - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57 True - - This command creates an encryption scope with Keyvault Encryption and RequireInfrastructureEncryption. The Storage account Identity need have get,wrapkey,unwrapkey permissions to the keyvault key. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageencryptionscope - - - - - - New-AzStorageLocalUserPermissionScope - New - AzStorageLocalUserPermissionScope - - Creates a permission scope object, which can be used in Set-AzStorageLocalUser. - - - - The New-AzStorageLocalUserPermissionScope cmdlet creates a permission scope object, which can be used in Set-AzStorageLocalUser. - - - - New-AzStorageLocalUserPermissionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Permission - - Specify the permissions for the local user. Possible values include: Read(r), Write (w), Delete (d), List (l), and Create (c). - - System.String - - System.String - - - None - - - ResourceName - - Specify the name of resource, normally the container name or the file share name, used by the local user. - - System.String - - System.String - - - None - - - Service - - Specify the service used by the local user, e.g. blob, file. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Permission - - Specify the permissions for the local user. Possible values include: Read(r), Write (w), Delete (d), List (l), and Create (c). - - System.String - - System.String - - - None - - - ResourceName - - Specify the name of resource, normally the container name or the file share name, used by the local user. - - System.String - - System.String - - - None - - - Service - - Specify the service used by the local user, e.g. blob, file. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope - - - - - - - - - - - - - - Example 1: Create permission scope objects, then create or update local user with the permission scope objects. - $permissionScope1 = New-AzStorageLocalUserPermissionScope -Permission rw -Service blob -ResourceName container1 - -$permissionScope2 = New-AzStorageLocalUserPermissionScope -Permission rwd -Service file -ResourceName share2 - -$localuser = Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -PermissionScope $permissionScope1,$permissionScope2 - -$localuser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes SshAuthorizedKeys ----- --- ------------- ------------ --------- -------------- ---------------- ----------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / [container1,...] - -$localuser.PermissionScopes - -Permissions Service ResourceName ------------ ------- ------------ -rw blob container1 -rwd file share2 - - This first 2 commands create 2 permission scope objects. The following commands create or update a local user with the permission scope objects, then show the updated local user properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragelocaluserpermissionscope - - - - - - New-AzStorageLocalUserSshPassword - New - AzStorageLocalUserSshPassword - - Regenerate SSH password of a specified local user in a storage account. - - - - The New-AzStorageLocalUserSshPassword cmdlet regenerates SSH password of a specified local user in a storage account. - - - - New-AzStorageLocalUserSshPassword - - InputObject - - Local User Object to Regenerate Password Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageLocalUserSshPassword - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageLocalUserSshPassword - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Local User Object to Regenerate Password Keys. - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUserKeys - - - - - - - - - - - - - - - Example 1: Regenerate SSH password of a specified local user - - New-AzStorageLocalUserSshPassword -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - -SshPassword ------------ -<hidden> - - This command regenerates SSH password of a specified local user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragelocalusersshpassword - - - - - - New-AzStorageLocalUserSshPublicKey - New - AzStorageLocalUserSshPublicKey - - Creates a SSH public key object, which can be used in Set-AzStorageLocalUser. - - - - The New-AzStorageLocalUserSshPublicKey cmdlet creates a SSH public key object, which can be used in Set-AzStorageLocalUser. - - - - New-AzStorageLocalUserSshPublicKey - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Description - - The description of the key. It is used to store the function/usage of the key. - - System.String - - System.String - - - None - - - Key - - Specify ssh public key, the key data is base64 encoded. The format should be: '<keyType> <keyData>', e.g. ssh-rsa AAAABBBB - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Description - - The description of the key. It is used to store the function/usage of the key. - - System.String - - System.String - - - None - - - Key - - Specify ssh public key, the key data is base64 encoded. The format should be: '<keyType> <keyData>', e.g. ssh-rsa AAAABBBB - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey - - - - - - - - - - - - - - Example 1: Create SSH public key objects, then create or update local user with the SSH public key objects. - $sshkey1 = New-AzStorageLocalUserSshPublicKey -Key "ssh-rsa keykeykeykeykey=" -Description "sshpulickey name1" - -$sshkey2 = New-AzStorageLocalUserSshPublicKey -Key "ssh-rsa keykeykeykeykew=" -Description "sshpulickey name2" - -$localuser = Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -SshAuthorizedKey $sshkey1,$sshkey2 - -$localuser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes SshAuthorizedKeys ----- --- ------------- ------------ --------- -------------- ---------------- ----------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / [ssh-rsa keykeykeykeykey=,...] - -$localuser.SshAuthorizedKeys - -Description Key ------------ --- -sshpulickey name1 ssh-rsa keykeykeykeykey= -sshpulickey name2 ssh-rsa keykeykeykeykew= - - This first 2 commands create 2 SSH public key objects. The following commands create or update a local user with the SSH public key objects, then show the updated local user properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragelocalusersshpublickey - - - - - - New-AzStorageObjectReplicationPolicyRule - New - AzStorageObjectReplicationPolicyRule - - Creates an object replication policy rule. - - - - The Get-AzStorageObjectReplicationPolicy cmdlet creates an object replication policy rule, which will be used in Set-AzStorageObjectReplicationPolicy cmdlet. - - - - New-AzStorageObjectReplicationPolicyRule - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationContainer - - The Destination Container name to replicate to. - - System.String - - System.String - - - None - - - MinCreationTime - - Blobs created after the time will be replicated to the destination.. - - System.DateTime - - System.DateTime - - - None - - - PrefixMatch - - Filters the results to replicate only blobs whose names begin with the specified prefix. - - System.String[] - - System.String[] - - - None - - - RuleId - - Object Replication Rule Id. - - System.String - - System.String - - - None - - - SourceContainer - - The Source Container name to replicate from. - - System.String - - System.String - - - None - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationContainer - - The Destination Container name to replicate to. - - System.String - - System.String - - - None - - - MinCreationTime - - Blobs created after the time will be replicated to the destination.. - - System.DateTime - - System.DateTime - - - None - - - PrefixMatch - - Filters the results to replicate only blobs whose names begin with the specified prefix. - - System.String[] - - System.String[] - - - None - - - RuleId - - Object Replication Rule Id. - - System.String - - System.String - - - None - - - SourceContainer - - The Source Container name to replicate from. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule - - - - - - - - - - - - - - Example 1: Create an object replication policy rule with only source and destination account, and show its properties - $rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1 - -$rule1 - -RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime ------- --------------- -------------------- ------------------- ----------------------- - src1 dest1 {} - - This command creates an object replication policy rule with only source and destination account, and show its properties. - - - - - - Example 2: Create an object replication policy rule with all properties, and show its properties - $rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime 2019-01-01T16:00:00Z -PrefixMatch a,abc,dd - -$rule2 - -RuleId SourceContainer DestinationContainer Filters.PrefixMatch Filters.MinCreationTime ------- --------------- -------------------- ------------------- ----------------------- - src dest {a, abc, dd} 2019-01-01T16:00:00Z - - This command an object replication policy rule with all properties, and show its properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/New-azstorageobjectreplicationpolicyrule - - - - - - Remove-AzRmStorageContainer - Remove - AzRmStorageContainer - - Removes a Storage blob container - - - - The Remove-AzRmStorageContainer cmdlet removes a Storage blob container - - - - Remove-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Container Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the container and all content in it - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a Storage blob container with Storage account name and container name - Remove-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" - - This command removes a Storage blob container with Storage account name and container name. - - - - - - Example 2: Remove a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Remove-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" - - This command removes a Storage blob container with Storage account object and container name. - - - - - - Example 3: Remove all Storage blob containers in a Storage account with pipeline - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Remove-AzRmStorageContainer -Force - - This command removes all Storage blob containers in a Storage account with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstoragecontainer - - - - - - Remove-AzRmStorageContainerImmutabilityPolicy - Remove - AzRmStorageContainerImmutabilityPolicy - - Removes ImmutabilityPolicy of a Storage blob container with an unlocked policy - - - - The Remove-AzRmStorageContainerImmutabilityPolicy cmdlet removes ImmutabilityPolicy of a Storage blob container with an unlocked policy. - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerImmutabilityPolicy - - InputObject - - Unlocked ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. - - System.String - - System.String - - - None - - - InputObject - - Unlocked ImmutabilityPolicy Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Remove unlocked ImmutabilityPolicy of a Storage blob container with Storage account name and container name - $policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Remove-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Etag $policy.Etag - - This command removes unlocked ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Remove unlocked ImmutabilityPolicy of a Storage blob container, with Storage account object - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Remove-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Etag $policy.Etag - - This command removes unlocked ImmutabilityPolicy of a Storage blob container, with Storage account object. - - - - - - Example 3: Remove unlocked ImmutabilityPolicy of a Storage blob container, with container object - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Remove-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -Etag $policy.Etag - - This command removes unlocked ImmutabilityPolicy of a Storage blob container with Storage container object. - - - - - - Example 4: Remove unlocked ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" | Remove-AzRmStorageContainerImmutabilityPolicy - - This command removes unlocked ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstoragecontainerimmutabilitypolicy - - - - - - Remove-AzRmStorageContainerLegalHold - Remove - AzRmStorageContainerLegalHold - - Removes legal hold tags from a Storage blob container - - - - The Remove-AzRmStorageContainerLegalHold cmdlet removes legal hold tags from a Storage blob container - - - - Remove-AzRmStorageContainerLegalHold - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerLegalHold - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageContainerLegalHold - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Tag - - Container LegalHold Tags - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLegalHold - - - - - - - - - - - - - - Example 1: Remove legal hold tags from a Storage blob container with Storage account name and container name - Remove-AzRmStorageContainerLegalHold -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -Tag tag1 - - This command removes legal hold tags from a Storage blob container with Storage account name and container name. - - - - - - Example 2: Remove legal hold tags from a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Remove-AzRmStorageContainerLegalHold -StorageAccount $accountObject -ContainerName "myContainer" -Tag tag1,tag2 - - This command removes legal hold tags from a Storage blob container with Storage account object and container name. - - - - - - Example 3: Remove legal hold tags from all Storage blob containers in a Storage account with pipeline - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Remove-AzRmStorageContainerLegalHold -Tag tag1 - - This command removes legal hold tags from all Storage blob containers in a Storage account with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstoragecontainerlegalhold - - - - - - Remove-AzRmStorageShare - Remove - AzRmStorageShare - - Removes a Storage file share. - - - - The New-AzRmStorageShare cmdlet removes a Storage file share. - - - - Remove-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - - None - Snapshots - Leased-Snapshots - - System.String - - System.String - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Share(snapshot) and all content in it - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Include - - Valid values are: snapshots, leased-snapshots, none. The default value is none. For 'none', the file share is deleted if it has no share snapshots.If the file share contains any snapshots(leased or unleased), the deletion fails. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased / unleased). - - System.String - - System.String - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - SnapshotTime - - Share SnapshotTime - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a Storage file share with Storage account name and share name - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" - - This command removes a Storage file share with Storage account name and share name. - - - - - - Example 2: Remove a Storage file share with Storage account object and share name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Remove-AzRmStorageShare -StorageAccount $accountObject -Name "myshare" - - This command removes a Storage file share with Storage account object and share name. - - - - - - Example 3: Remove all Storage file shares in a Storage account with pipeline - Get-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" | Remove-AzRmStorageShare -Force - - This command removes all Storage file shares in a Storage account with pipeline. - - - - - - ---- Example 4: Remove a single Storage file share snapshot ---- - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -SnapshotTime "2021-05-10T08:04:08Z" - - This command removes a single Storage file share snapshot with the specific share name and snapshot time - - - - - - -- Example 5: Remove a Storage file share and it's snapshots -- - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -Include Snapshots - - This command removes a Storage file share and it's snapshots By default, the cmdlet will fail if the file share has snapshots without "-include" parameter. - - - - - - Example 6: Remove a Storage file share and all it's snapshots (include leased snapshots) - Remove-AzRmStorageShare -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -Name "myshare" -Include Leased-Snapshots - - This command removes a Storage file share and all it's snapshots, include leased and not leased snapshots. By default, the cmdlet will fail if the file share has snapshots without "-include" parameter. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azrmstorageshare - - - - - - Remove-AzStorageAccount - Remove - AzStorageAccount - - Removes a Storage account from Azure. - - - - The Remove-AzStorageAccount cmdlet removes a Storage account from Azure. - - - - Remove-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to remove. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to remove. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the Storage account to remove. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the name of the resource group that contains the Storage account to remove. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Void - - - - - - - - - - - - - - ------------- Example 1: Remove a Storage account ------------- - Remove-AzStorageAccount -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command removes the specified Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageaccount - - - Get-AzStorageAccount - - - - New-AzStorageAccount - - - - Set-AzStorageAccount - - - - - - - Remove-AzStorageAccountManagementPolicy - Remove - AzStorageAccountManagementPolicy - - Removes the management policy of an Azure Storage account. - - - - The Remove-AzStorageAccountManagementPolicy cmdlet removes the management policy of an Azure Storage account. - - - - Remove-AzStorageAccountManagementPolicy - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountManagementPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountManagementPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountManagementPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove the management policy of a Storage account. - Remove-AzStorageAccountManagementPolicy -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" - - This command removes the management policy of a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/remove-Azstorageaccountmanagementpolicy - - - - - - Remove-AzStorageAccountNetworkRule - Remove - AzStorageAccountNetworkRule - - Remove IpRules or VirtualNetworkRules from the NetWorkRule property of a Storage account - - - - The Remove-AzStorageAccountNetworkRule cmdlet removes IpRules or VirtualNetworkRules from the NetWorkRule property of a Storage account - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, will remove IpRule with same IpAddressOrRange from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will remove VirtualNetworkRule with same VirtualNetworkResourceId from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageAccountNetworkRule - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPAddressOrRange - - The Array of IpAddressOrRange, will remove IpRule with same IpAddressOrRange from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - IPRule - - The Array of IpRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account ResourceAccessRule ResourceId in string. - - System.String - - System.String - - - None - - - TenantId - - Storage Account ResourceAccessRule TenantId in string. - - System.String - - System.String - - - None - - - VirtualNetworkResourceId - - The Array of VirtualNetworkResourceId, will remove VirtualNetworkRule with same VirtualNetworkResourceId from the NetWorkRule Property. - - System.String[] - - System.String[] - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to remove from the NetWorkRule Property. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule - - - - - - - - - - - - - - --- Example 1: Remove several IpRules with IPAddressOrRange --- - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IPAddressOrRange "10.0.0.0/7,28.1.0.0/16" - - This command remove several IpRules with IPAddressOrRange. - - - - - - Example 2: Remove a VirtualNetworkRule with VirtualNetworkRule Object input with JSON - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -VirtualNetworkRule (@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}) - - This command remove a VirtualNetworkRule with VirtualNetworkRule Object input with JSON. - - - - - - --------- Example 3: Remove first IpRule with pipeline --------- - (Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount").IpRules[0] | Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "myStorageAccount" - - This command remove first IpRule with pipeline. - - - - - - Example 4: Remove several VirtualNetworkRules with VirtualNetworkResourceID - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -VirtualNetworkResourceId "/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1","/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2" - - This command remove several VirtualNetworkRules with VirtualNetworkResourceID. - - - - - - Example 5: Remove a resource access rule with TenantId and ResourceId. - Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -TenantId $tenantId -ResourceId $ResourceId - - This command removes a resource access rule with TenantId and ResourceId. - - - - - - Example 6: Remove the first 3 resource access rules from a storage account - (Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount").ResourceAccessRules | Select-Object -First 3 | Remove-AzStorageAccountNetworkRule -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" - - This command removes the first 3 resource access rules from a storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageaccountnetworkrule - - - - - - Remove-AzStorageBlobInventoryPolicy - Remove - AzStorageBlobInventoryPolicy - - Removes blob inventory policy from a Storage account. - - - - The Remove-AzStorageBlobInventoryPolicy cmdlet removes blob inventory policy from a Storage account. - - - - Remove-AzStorageBlobInventoryPolicy - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Management Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove blob inventory policy from a Storage account - Remove-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - This command removes blob inventory policy from a Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageblobinventorypolicy - - - - - - Remove-AzStorageLocalUser - Remove - AzStorageLocalUser - - Removes a specified local user in a storage account. - - - - The Remove-AzStorageLocalUser cmdlet removes a specified local user from a storage account. - - - - Remove-AzStorageLocalUser - - InputObject - - Local User Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageLocalUser - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - System.Management.Automation.SwitchParameter - - - False - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageLocalUser - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - System.Management.Automation.SwitchParameter - - - False - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Local User Object to Remove - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - None - - - PassThru - - {{ Fill PassThru Description }} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ----------- Example 1: Remove a specified local user ----------- - Remove-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 - - This command removes a specified local user. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragelocaluser - - - - - - Remove-AzStorageObjectReplicationPolicy - Remove - AzStorageObjectReplicationPolicy - - Removes the specified object replication policy from a Storage account. - - - - The Remove-AzStorageObjectReplicationPolicy cmdlet removes the specified object replication policy from a Storage account. - - - - Remove-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object Replication Policy object to Delete. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object Replication Policy object to Delete. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PolicyId - - Object Replication Policy Id. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove an object replication policy with specific policyId from a storage account. - Remove-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -PolicyId $policyId - - This command removes an object replication policy with specific policyId from a storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageobjectreplicationpolicy - - - - - - Restore-AzRmStorageShare - Restore - AzRmStorageShare - - Restores a deleted file share. - - - - The Restore-AzRmStorageShare cmdlet restores a deleted file share within a valid retention days if share soft delete is enabled. - - - - Restore-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletedShareVersion - - Deleted Share Version, which will be restored from. - - System.String - - System.String - - - None - - - Name - - Deleted Share Name, which will be restored. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletedShareVersion - - Deleted Share Version, which will be restored from. - - System.String - - System.String - - - None - - - Name - - Deleted Share Name, which will be restored. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzRmStorageShare - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Deleted Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletedShareVersion - - Deleted Share Version, which will be restored from. - - System.String - - System.String - - - None - - - InputObject - - Deleted Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Name - - Deleted Share Name, which will be restored. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - ------------ Example 1: Remove and restore a share ------------ - Remove-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Name $shareName -Force - -Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -IncludeDeleted - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -test 100 TransactionOptimized -share1 100 TransactionOptimized True 01D61FD1FC5498B6 - -Restore-AzRmStorageShare -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Name $shareName -DeletedShareVersion 01D61FD1FC5498B6 - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocol AccessTier Deleted Version ShareUsageBytes ----- -------- --------------- ---------- ------- ------- --------------- -share1 100 - - This command first delete a file share, and then list shares and see the deleted share version, finally restore it back to a normal share. Need enabled share soft delete with Update-AzStorageFileServiceProperty, before delete the share. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azrmstorageshare - - - - - - Restore-AzStorageBlobRange - Restore - AzStorageBlobRange - - Restores a Storage account for specific blob ranges. - - - - The Restore-AzStorageBlobRange cmdlet restores blobs in a Storage account for specific blob ranges. The start range is included, and the end range is excluded in blob restore. - - - - Restore-AzStorageBlobRange - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzStorageBlobRange - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzStorageBlobRange - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BlobRestoreRange - - The blob range to Restore. If not specify this parameter, will restore all blobs. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreRange[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - TimeToRestore - - The Time to Restore Blob. - - System.DateTime - - System.DateTime - - - None - - - WaitForComplete - - Wait for Restore task complete - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus - - - - - - - - - - - - - - Example 1: Start restores blobs in a Storage account with specific blob ranges - $range1 = New-AzStorageBlobRangeToRestore -StartRange container1/blob1 -EndRange container2/blob2 -$range2 = New-AzStorageBlobRangeToRestore -StartRange container3/blob3 -EndRange container4/blob4 -Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -TimeToRestore (Get-Date).AddDays(-1) -BlobRestoreRange $range1,$range2 - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -InProgress 6ca55a8b-fca0-461a-8e4c-13927a9707e6 2020-02-10T13:58:44.6841810Z ["container1/blob1" -> "container2/blob2",...] - -(Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountName -IncludeBlobRestoreStatus).BlobRestoreStatus - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -Complete 6ca55a8b-fca0-461a-8e4c-13927a9707e6 2020-02-10T13:58:44.6841810Z ["container1/blob1" -> "container2/blob2",...] - - This command first creates 2 blob ranges, then start restores blobs in a Storage account with the 2 blob ranges from 1 day ago. User can use Get-AzStorageAccount to trace the restore status later. - - - - - - Example 2: Restores all blobs in a Storage account in the backend - $job = Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -TimeToRestore (Get-Date).AddMinutes(-30) -WaitForComplete -asjob - -$job | Wait-Job - -$job.Output - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -Complete 0387953a-bbe6-4602-818d-e661581ee44b 2020-08-28T07:11:33.9843100Z ["" -> ""] - - This command restores all blobs in a Storage account from 30 minutes ago, and wait for the restore complete. Since restore blobs might take a long time, run it in the backend with -Asjob parameter, and then wait for the job complete and show the result. - - - - - - Example 3: Restores blobs by input blob ranges directly, and wait for complete - Restore-AzStorageBlobRange -ResourceGroupName "myresourcegoup" -StorageAccountName "mystorageaccount" -WaitForComplete ` - -TimeToRestore (Get-Date).AddSeconds(-1) ` - -BlobRestoreRange @{StartRange="aaa/abc";EndRange="bbb/abc"},@{StartRange="bbb/acc";EndRange=""} - -WARNING: Restore blob rang with Id 'd66d1d02-6e48-47ef-b516-0155dd8319c6' started. Restore blob ranges time to complete is dependent on the size of the restore. - -Status RestoreId FailureReason Parameters.TimeToRestore Parameters.BlobRanges ------- --------- ------------- ------------------------ --------------------- -Complete d66d1d02-6e48-47ef-b516-0155dd8319c6 2020-02-10T14:17:46.8189116Z ["aaa/abc" -> "bbb/abc",...] - - This command restores blobs in a Storage account from 1 day ago, by input 2 blob ranges directly to the Restore-AzStorageBlobRange cmdlet. This command will wait for the restore complete. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azstorageblobrange - - - - - - Revoke-AzStorageAccountUserDelegationKeys - Revoke - AzStorageAccountUserDelegationKeys - - Revoke all User Delegation keys of a Storage account. - - - - The Revoke-AzStorageAccountUserDelegationKeys cmdlet revokes all User Delegation keys of a Storage account, so all Identity SAS token of the Storage account will also be revoked. - - - - Revoke-AzStorageAccountUserDelegationKeys - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A storage account object, returned by Get_AzStorageAccount, New-AzStorageAccount. - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Revoke-AzStorageAccountUserDelegationKeys - - ResourceGroupName - - The resource group name containing the storage account resource. - - System.String - - System.String - - - None - - - StorageAccountName - - The name of the storage account resource. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Revoke-AzStorageAccountUserDelegationKeys - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - A storage account object, returned by Get_AzStorageAccount, New-AzStorageAccount. - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - PassThru - - Normally this cmdlet returns no output on successful completion, this parameter forces the cmdlet to return a value ($true) on successful completion. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - The resource group name containing the storage account resource. - - System.String - - System.String - - - None - - - ResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - StorageAccountName - - The name of the storage account resource. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Revoke all User Delegation keys of a Storage account - Revoke-AzStorageAccountUserDelegationKeys -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" - - This example revokes all User Delegation keys of a Storage account, so all Identity SAS token generated from the User Delegation keys will also be revoked. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/revoke-azstorageaccountuserdelegationkeys - - - - - - Set-AzCurrentStorageAccount - Set - AzCurrentStorageAccount - - Modifies the current Storage account of the specified subscription. - - - - The Set-AzCurrentStorageAccount cmdlet modifies the current Azure Storage account of the specified Azure subscription in Azure PowerShell. The current Storage account is used as the default when you access Storage without specifying a Storage account name. - - - - Set-AzCurrentStorageAccount - - Context - - Specifies an AzureStorageContext object for the current Storage account. To obtain a storage context object, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Set-AzCurrentStorageAccount - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account that this cmdlet modifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the resource group that contains the Storage account to modify. - - System.String - - System.String - - - None - - - - - - Context - - Specifies an AzureStorageContext object for the current Storage account. To obtain a storage context object, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of the Storage account that this cmdlet modifies. - - System.String - - System.String - - - None - - - ResourceGroupName - - Specifies the resource group that contains the Storage account to modify. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - System.String - - - - - - - - - - System.String - - - - - - - - - - - - - - ---------- Example 1: Set the current Storage account ---------- - Set-AzCurrentStorageAccount -ResourceGroupName "RG01" -Name "mystorageaccount" - - This command sets the default Storage account for the specified subscription. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azcurrentstorageaccount - - - Set-AzStorageAccount - - - - - - - Set-AzRmStorageContainerImmutabilityPolicy - Set - AzRmStorageContainerImmutabilityPolicy - - Creates or updates ImmutabilityPolicy of a Storage blob containers - - - - The Set-AzRmStorageContainerImmutabilityPolicy cmdlet creates or updates ImmutabilityPolicy of a Storage blob containers - - - - Set-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - InputObject - - Container Name - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzRmStorageContainerImmutabilityPolicy - - InputObject - - Container Name - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AllowProtectedAppendWrite - - This property can only be changed for unlocked time-based retention policies. With this property enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - AllowProtectedAppendWriteAll - - This property can only be changed for unlocked policies. When enabled, new blocks can be written to both 'Appened and Block Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. '-AllowProtectedAppendWrites' and '-AllowProtectedAppendWritesAll' are mutually exclusive. - - System.Boolean - - System.Boolean - - - None - - - Container - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - ContainerName - - Container Name - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Etag - - Immutability policy etag. If -ExtendPolicy is not specified, Etag is optional; else Etag is required. - - System.String - - System.String - - - None - - - ExtendPolicy - - Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy. After ImmutabilityPolicy is locked, it can only be extend. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ImmutabilityPeriod - - Immutability period since creation in days. - - System.Int32 - - System.Int32 - - - None - - - InputObject - - Container Name - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSImmutabilityPolicy - - - - - - - - - - - - - - Example 1: Create or update ImmutabilityPolicy of a Storage blob container with Storage account name and container name - Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -ImmutabilityPeriod 10 - - This command creates or updates ImmutabilityPolicy of a Storage blob container with Storage account name and container name. - - - - - - Example 2: Extend ImmutabilityPolicy of a Storage blob container, with Storage account object - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -$policy = Get-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -Set-AzRmStorageContainerImmutabilityPolicy -StorageAccount $accountObject -ContainerName "myContainer" -ImmutabilityPeriod 20 -Etag $policy.Etag -ExtendPolicy - - This command extend ImmutabilityPolicy of a Storage blob container, with Storage account object. Extend ImmutabilityPolicy can only run after ImmutabilityPolicy is locked. - - - - - - Example 3: Update ImmutabilityPolicy of a Storage blob container - $containerObject = Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Name "myContainer" -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -ImmutabilityPeriod 12 -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -ImmutabilityPeriod 9 -Etag $policy.Etag -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -AllowProtectedAppendWrite $true -$policy = Set-AzRmStorageContainerImmutabilityPolicy -Container $containerObject -AllowProtectedAppendWrite $false -AllowProtectedAppendWriteAll $true - - This command updates ImmutabilityPolicy of a Storage blob container with Storage container object 3 times: First to ImmutabilityPeriod 12 days without etag, then to ImmutabilityPeriod 9 days with etag, then enabled AllowProtectedAppendWrite, finally enabled AllowProtectedAppendWriteAll. - - - - - - Example 4: Extend ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object - Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" | Set-AzRmStorageContainerImmutabilityPolicy -ImmutabilityPeriod 15 -ExtendPolicy - - This command extend ImmutabilityPolicy of a Storage blob container, with ImmutabilityPolicy object. Extend ImmutabilityPolicy can only run after ImmutabilityPolicy is locked. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azrmstoragecontainerimmutabilitypolicy - - - - - - Set-AzStorageAccount - Set - AzStorageAccount - - Modifies a Storage account. - - - - The Set-AzStorageAccount cmdlet modifies an Azure Storage account. You can use this cmdlet to modify the account type, update a customer domain, or set tags on a Storage account. - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - StorageEncryption - - Indicates whether or not to set the Storage account encryption to use Microsoft-managed keys. - - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageAccount - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - - Hot - Cool - Cold - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - - None - StorageFileDataSmbShareContributor - StorageFileDataSmbShareReader - StorageFileDataSmbShareElevatedContributor - - System.String - - System.String - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - - SystemAssigned - UserAssigned - SystemAssignedUserAssigned - None - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - If using -KeyvaultEncryption to enable encryption with Key Vault, specify the Keyname property with this option. - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Indicates whether or not to use Microsoft KeyVault for the encryption keys when using Storage Service Encryption. If KeyName, KeyVersion, and KeyVaultUri are all set, KeySource will be set to Microsoft.Keyvault whether this parameter is set or not. - - - System.Management.Automation.SwitchParameter - - - False - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Vault. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Version. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - - TLS1_0 - TLS1_1 - TLS1_2 - TLS1_3 - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - - MicrosoftRouting - InternetRouting - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - - Standard_LRS - Standard_ZRS - Standard_GRS - Standard_RAGRS - Premium_LRS - Standard_GZRS - Standard_RAGZRS - - System.String - - System.String - - - None - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessTier - - Specifies the access tier of the Storage account that this cmdlet modifies. The acceptable values for this parameter are: Hot and Cool. If you change the access tier, it may result in additional charges. For more information, see Azure Blob Storage: Hot and cool storage tiers (http://go.microsoft.com/fwlink/?LinkId=786482). If the Storage account has Kind as StorageV2 or BlobStorage, you can specify the AccessTier parameter. If the Storage account has Kind as Storage, do not specify the AccessTier parameter. - - System.String - - System.String - - - None - - - ActiveDirectoryAccountType - - Specifies the Active Directory account type for Azure Storage. Possible values include: 'User', 'Computer'. - - System.String - - System.String - - - None - - - ActiveDirectoryAzureStorageSid - - Specifies the security identifier (SID) for Azure Storage. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainGuid - - Specifies the domain GUID. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainName - - Specifies the primary domain that the AD DNS server is authoritative for. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryDomainSid - - Specifies the security identifier (SID). This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryForestName - - Specifies the Active Directory forest to get. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectoryNetBiosDomainName - - Specifies the NetBIOS domain name. This parameter must be set when -EnableActiveDirectoryDomainServicesForFile is set to true. - - System.String - - System.String - - - None - - - ActiveDirectorySamAccountName - - Specifies the Active Directory SAMAccountName for Azure Storage. - - System.String - - System.String - - - None - - - AllowBlobPublicAccess - - Allow or disallow anonymous access to all blobs or containers in the storage account. - - System.Boolean - - System.Boolean - - - None - - - AllowCrossTenantReplication - - Gets or sets allow or disallow cross Microsoft Entra tenant object replication. The default interpretation is true for this property. - - System.Boolean - - System.Boolean - - - None - - - AllowedCopyScope - - Set restrict copy to and from Storage Accounts within a Microsoft Entra tenant or with Private Links to the same VNet. Possible values include: 'PrivateLink', 'AAD' - - System.String - - System.String - - - None - - - AllowSharedKeyAccess - - Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true. - - System.Boolean - - System.Boolean - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AssignIdentity - - Generate and assign a new Storage account Identity for this Storage account for use with key management services like Azure KeyVault. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CustomDomainName - - Specifies the name of the custom domain. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultSharePermission - - Default share permission for users using Kerberos authentication if RBAC role is not assigned. - - System.String - - System.String - - - None - - - EnableActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryDomainServicesForFile - - Enable Azure Files Active Directory Domain Service Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableAzureActiveDirectoryKerberosForFile - - Enable Azure Files Active Directory Domain Service Kerberos Authentication for the storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableHttpsTrafficOnly - - Indicates whether or not the Storage account only enables HTTPS traffic. - - System.Boolean - - System.Boolean - - - None - - - EnableLargeFileShare - - Indicates whether or not the storage account can support large file shares with more than 5 TiB capacity. Once the account is enabled, the feature cannot be disabled. Currently only supported for LRS and ZRS replication types, hence account conversions to geo-redundant accounts would not be possible. Learn more in https://go.microsoft.com/fwlink/?linkid=2086047 - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLocalUser - - Enable local users feature for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - EnableSftp - - Enable Secure File Transfer Protocol for the Storage account. - - System.Boolean - - System.Boolean - - - None - - - Force - - Forces the change to be written to the Storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IdentityType - - Set the new Storage Account Identity type, the idenetity is for use with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - ImmutabilityPeriod - - The immutability period for the blobs in the container since the policy creation in days. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.Int32 - - System.Int32 - - - None - - - ImmutabilityPolicyState - - The mode of the policy. Possible values include: 'Unlocked', 'Locked', 'Disabled. Disabled state disablesthe policy. Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property. Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. This property can only be changed when account is created with '-EnableAccountLevelImmutability'. - - System.String - - System.String - - - None - - - KeyExpirationPeriodInDay - - The Key expiration period of this account, it is accurate to days. - - System.Int32 - - System.Int32 - - - None - - - KeyName - - If using -KeyvaultEncryption to enable encryption with Key Vault, specify the Keyname property with this option. - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Indicates whether or not to use Microsoft KeyVault for the encryption keys when using Storage Service Encryption. If KeyName, KeyVersion, and KeyVaultUri are all set, KeySource will be set to Microsoft.Keyvault whether this parameter is set or not. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - KeyVaultFederatedClientId - - Set ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. - - System.String - - System.String - - - None - - - KeyVaultUri - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Vault. - - System.String - - System.String - - - None - - - KeyVaultUserAssignedIdentityId - - Set resource id for user assigned Identity used to access Azure KeyVault of Storage Account Encryption, the id must in the storage account's UserAssignIdentityId. - - System.String - - System.String - - - None - - - KeyVersion - - When using Key Vault Encryption by specifying the -KeyvaultEncryption parameter, use this option to specify the URI to the Key Version. - - System.String - - System.String - - - None - - - MinimumTlsVersion - - The minimum TLS version to be permitted on requests to storage. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account to modify. - - System.String - - System.String - - - None - - - NetworkRuleSet - - NetworkRuleSet is used to define a set of configuration rules for firewalls and virtual networks, as well as to set values for network properties such as services allowed to bypass the rules and how to handle requests that don't match any of the defined rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - None - - - PublicNetworkAccess - - Allow or disallow public network access to Storage Account.Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - PublishInternetEndpoint - - Indicates whether internet routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - PublishMicrosoftEndpoint - - Indicates whether microsoft routing storage endpoints are to be published - - System.Boolean - - System.Boolean - - - None - - - ResourceGroupName - - Specifies the name of the resource group in which to modify the Storage account. - - System.String - - System.String - - - None - - - RoutingChoice - - Routing Choice defines the kind of network routing opted by the user. Possible values include: 'MicrosoftRouting', 'InternetRouting' - - System.String - - System.String - - - None - - - SasExpirationPeriod - - The SAS expiration period of this account, it is a timespan and accurate to seconds. - - System.TimeSpan - - System.TimeSpan - - - None - - - SkuName - - Specifies the SKU name of the Storage account. The acceptable values for this parameter are: - Standard_LRS - Locally-redundant storage. - - Standard_ZRS - Zone-redundant storage. - - Standard_GRS - Geo-redundant storage. - - Standard_RAGRS - Read access geo-redundant storage. - - Premium_LRS - Premium locally-redundant storage. - - Standard_GZRS - Geo-redundant zone-redundant storage. - - Standard_RAGZRS - Read access geo-redundant zone-redundant storage. - You cannot change Standard_ZRS and Premium_LRS types to other account types. You cannot change other account types to Standard_ZRS or Premium_LRS. - - System.String - - System.String - - - None - - - StorageEncryption - - Indicates whether or not to set the Storage account encryption to use Microsoft-managed keys. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Tag - - Key-value pairs in the form of a hash table set as tags on the server. For example: @{key0="value0";key1=$null;key2="value2"} - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - UpgradeToStorageV2 - - Upgrade Storage account Kind from Storage or BlobStorage to StorageV2. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - UserAssignedIdentityId - - Set resource ids for the the new Storage Account user assignedd Identity, the identity will be used with key management services like Azure KeyVault. - - System.String - - System.String - - - None - - - UseSubDomain - - Indicates whether to enable indirect CName validation. - - System.Nullable`1[System.Boolean] - - System.Nullable`1[System.Boolean] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Collections.Hashtable - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - - - - - ----------- Example 1: Set the Storage account type ----------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName "Standard_RAGRS" - - This command sets the Storage account type to Standard_RAGRS. - - - - - - ----- Example 2: Set a custom domain for a Storage account ----- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -CustomDomainName "www.contoso.com" -UseSubDomain $true - - This command sets a custom domain for a Storage account. - - - - - - ------------- Example 3: Set the access tier value ------------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -AccessTier Cool - - The command sets the Access Tier value to be cool. - - - - - - ---------- Example 4: Set the custom domain and tags ---------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -CustomDomainName "www.domainname.com" -UseSubDomain $true -Tag @{tag0="value0";tag1="value1";tag2="value2"} - - The command sets the custom domain and tags for a Storage account. - - - - - - ------- Example 5: Set Encryption KeySource to Keyvault ------- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -AssignIdentity -$account = Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" - -$keyVault = New-AzKeyVault -VaultName "MyKeyVault" -ResourceGroupName "MyResourceGroup" -Location "EastUS2" -$key = Add-AzKeyVaultKey -VaultName "MyKeyVault" -Name "MyKey" -Destination 'Software' -Set-AzKeyVaultAccessPolicy -VaultName "MyKeyVault" -ObjectId $account.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get - -# In case to enable key auto rotation, don't set KeyVersion -Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyvaultEncryption -KeyName $key.Name -KeyVersion $key.Version -KeyVaultUri $keyVault.VaultUri - -# In case to enable key auto rotation after set keyvault proeprites with KeyVersion, can update account by set KeyVersion to empty -Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyvaultEncryption -KeyName $key.Name -KeyVersion "" -KeyVaultUri $keyVault.VaultUri - - This command set Encryption KeySource with a new created Keyvault. If want to enable key auto rotation, don't set keyversion when set Keyvault properties for the first time, or clean up it by set keyvault properties again with keyversion as empty. - - - - - - -- Example 6: Set Encryption KeySource to "Microsoft.Storage" -- - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -StorageEncryption - - This command set Encryption KeySource to "Microsoft.Storage" - - - - - - Example 7: Set NetworkRuleSet property of a Storage account with JSON - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -NetworkRuleSet (@{bypass="Logging,Metrics"; - ipRules=(@{IPAddressOrRange="20.11.0.0/16";Action="allow"}, - @{IPAddressOrRange="10.0.0.0/7";Action="allow"}); - virtualNetworkRules=(@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}, - @{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2";Action="allow"}); - defaultAction="allow"}) - - This command sets NetworkRuleSet property of a Storage account with JSON - - - - - - Example 8: Get NetworkRuleSet property from a Storage account, and set it to another Storage account - $networkRuleSet = (Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount").NetworkRuleSet -Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount2" -NetworkRuleSet $networkRuleSet - - This first command gets NetworkRuleSet property from a Storage account, and the second command sets it to another Storage account - - - - - - Example 9: Upgrade a Storage account with Kind "Storage" or "BlobStorage" to "StorageV2" kind Storage account - Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -UpgradeToStorageV2 - - The command upgrade a Storage account with Kind "Storage" or "BlobStorage" to "StorageV2" kind Storage account. - - - - - - Example 10: Update a Storage account by enable Azure Files Microsoft Entra Domain Services Authentication and set DefaultSharePermission. - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -EnableAzureActiveDirectoryDomainServicesForFile $true -DefaultSharePermission StorageFileDataSmbShareContributor - -$account.AzureFilesIdentityBasedAuth - -DirectoryServiceOptions ActiveDirectoryProperties DefaultSharePermission ------------------------ ------------------------- ---------------------- -AADDS Microsoft.Azure.Commands.Management.Storage.Models.PSActiveDirectoryProperties StorageFileDataSmbShareContributor - - The command update a Storage account by enable Azure Files Microsoft Entra Domain Services Authentication. - - - - - - Example 11: Update a Storage account by enable Files Active Directory Domain Service Authentication, and then show the File Identity Based authentication setting - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -EnableActiveDirectoryDomainServicesForFile $true ` - -ActiveDirectoryDomainName "mydomain.com" ` - -ActiveDirectoryNetBiosDomainName "mydomain.com" ` - -ActiveDirectoryForestName "mydomain.com" ` - -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" ` - -ActiveDirectoryDomainSid "S-1-5-21-1234567890-1234567890-1234567890" ` - -ActiveDirectoryAzureStorageSid "S-1-5-21-1234567890-1234567890-1234567890-1234" ` - -ActiveDirectorySamAccountName "samaccountname" ` - -ActiveDirectoryAccountType Computer - -$account.AzureFilesIdentityBasedAuth.DirectoryServiceOptions -AD - -$account.AzureFilesIdentityBasedAuth.ActiveDirectoryProperties - -DomainName : mydomain.com -NetBiosDomainName : mydomain.com -ForestName : mydomain.com -DomainGuid : 12345678-1234-1234-1234-123456789012 -DomainSid : S-1-5-21-1234567890-1234567890-1234567890 -AzureStorageSid : S-1-5-21-1234567890-1234567890-1234567890-1234 -SamAccountName : samaccountname -AccountType : Computer - - The command updates a Storage account by enable Azure Files Active Directory Domain Service Authentication, and then shows the File Identity Based authentication setting - - - - - - Example 12: Set MinimumTlsVersion, AllowBlobPublicAccess and AllowSharedKeyAccess - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -MinimumTlsVersion TLS1_1 -AllowBlobPublicAccess $false -AllowSharedKeyAccess $true - -$account.MinimumTlsVersion -TLS1_1 - -$account.AllowBlobPublicAccess -False - -$a.AllowSharedKeyAccess -True - - The command sets MinimumTlsVersion, AllowBlobPublicAccess and AllowSharedKeyAccess, and then show the the 3 properties of the account - - - - - - Example 13: Update a Storage account with RoutingPreference setting - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -PublishMicrosoftEndpoint $false -PublishInternetEndpoint $true -RoutingChoice InternetRouting - -$account.RoutingPreference - -RoutingChoice PublishMicrosoftEndpoints PublishInternetEndpoints -------------- ------------------------- ------------------------ -InternetRouting False True - -$account.PrimaryEndpoints - -Blob : https://mystorageaccount.blob.core.windows.net/ -Queue : https://mystorageaccount.queue.core.windows.net/ -Table : https://mystorageaccount.table.core.windows.net/ -File : https://mystorageaccount.file.core.windows.net/ -Web : https://mystorageaccount.z2.web.core.windows.net/ -Dfs : https://mystorageaccount.dfs.core.windows.net/ -MicrosoftEndpoints : -InternetEndpoints : {"Blob":"https://mystorageaccount-internetrouting.blob.core.windows.net/","File":"https://mystorageaccount-internetrouting.file.core.windows.net/","Web":"https://mystorageaccount-internetrouting.z2.web.core.windows.net/","Dfs":"https://w - eirp3-internetrouting.dfs.core.windows.net/"} - - This command updates a Storage account with RoutingPreference setting: PublishMicrosoftEndpoint as false, PublishInternetEndpoint as true, and RoutingChoice as MicrosoftRouting. - - - - - - Example 14: Update a Storage account with KeyExpirationPeriod and SasExpirationPeriod - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -KeyExpirationPeriodInDay 5 -SasExpirationPeriod "1.12:05:06" -EnableHttpsTrafficOnly $true - -$account.KeyPolicy.KeyExpirationPeriodInDays -5 - -$account.SasPolicy.SasExpirationPeriod -1.12:05:06 - - This command updates a Storage account with KeyExpirationPeriod and SasExpirationPeriod, then show the updated account related properties. - - - - - - Example 15: Update a Storage account to Keyvault encryption, and access Keyvault with user assigned identity - # Create KeyVault (no need if using exist keyvault) -$keyVault = New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location eastus2euap -EnablePurgeProtection -$key = Add-AzKeyVaultKey -VaultName $keyvaultName -Name $keyname -Destination 'Software' - -# create user assigned identity and grant access to keyvault (no need if using exist user assigned identity) -$userId = New-AzUserAssignedIdentity -ResourceGroupName $resourceGroupName -Name $userIdName -Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $userId.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation -$useridentityId= $userId.Id - -# Update Storage account with Keyvault encryption and access Keyvault with user assigned identity, then show properties -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName ` - -IdentityType UserAssigned -UserAssignedIdentityId $useridentityId ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId - -$account.Encryption.EncryptionIdentity.EncryptionUserAssignedIdentity -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 4/12/2021 8:17:57 AM - - This command first creates a keyvault and a user assigned identity, then updates a storage account with keyvault encryption, the storage access access keyvault with the user assigned identity. - - - - - - Example 16: Update a Keyvault encrypted Storage account, from access Keyvault with user assigned identity, to access Keyvault with system assigned identity - # Assign System identity to the account, and give the system assigned identity acces to the keyvault -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $account.Identity.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation - -# Update account from access Keyvault with user assigned identity to access Keyvault with system assigned identity -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -KeyName $keyname -KeyVaultUri $keyvaultUri -KeyVaultUserAssignedIdentityId "" - -# EncryptionUserAssignedIdentity is empty, so the account access keyvault with system assigned identity -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity ------------------------------- - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 4/12/2021 8:17:57 AM - - This command first assigns System identity to the account, and give the system assigned identity access to the keyvault; then updates the Storage account to access Keyvault with system assigned identity. - - - - - - Example 17: Update both Keyvault and the user assigned identity to access keyvault - # Update to another user assigned identity -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -UserAssignedIdentityId $useridentity2 -KeyVaultUserAssignedIdentityId $useridentity2 - -# Update to encrypt with another keyvault -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -KeyVaultUri $keyvaultUri2 -KeyName $keyname2 -KeyVersion $keyversion2 - - This command first update the user assigned identity to access keyvault, then update the keyvault for encryption. To update both both Keyvault and the user assigned identity, we need update with the above 2 steps. - - - - - - Example 18: Update a Storage account with AllowCrossTenantReplication - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -AllowCrossTenantReplication $false -EnableHttpsTrafficOnly $true - -$account.AllowCrossTenantReplication - -False - - This command updates a Storage account by set AllowCrossTenantReplication to false, then show the updated account related properties. - - - - - - Example 18: Update a Storage account by enable PublicNetworkAccess - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -PublicNetworkAccess Enabled - -$account.PublicNetworkAccess - -Enabled - - This command updates a Storage account by set PublicNetworkAccess as enabled. - - - - - - ----- Example 19: Update account level immutability policy ----- - $account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -ImmutabilityPeriod 2 -ImmutabilityPolicyState Unlocked - -$account.ImmutableStorageWithVersioning.Enabled -True - -$account.ImmutableStorageWithVersioning.ImmutabilityPolicy - -ImmutabilityPeriodSinceCreationInDays State -------------------------------------- ----- - 2 Unlocked - - The command updates account-level immutability policy properties on an existing storage account, and show the result. The storage account must be created with enable account level immutability with versioning. The account-level immutability policy will be inherited and applied to objects that do not possess an explicit immutability policy at the object level. - - - - - - Example 20: Update a Storage account by enable Sftp and localuser - $account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableSftp $true -EnableLocalUser $true - -$account.EnableSftp -True - -$account.EnableLocalUser -True - - This command updates a Storage account by enable Sftp and localuser. To run the command succssfully, the Storage account should already enable Hierarchical Namespace. - - - - - - Example 21: Update a Storage account with Keyvault from another tenant (access Keyvault with FederatedClientId) - # create Storage account with Keyvault encryption (access Keyvault with FederatedClientId), then show properties -$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName ` - -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId -KeyVaultFederatedClientId $federatedClientId - -$account.Encryption.EncryptionIdentity - -EncryptionUserAssignedIdentity EncryptionFederatedIdentityClientId ------------------------------- ----------------------------------- -/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid ********-****-****-****-************ - -$account.Encryption.KeyVaultProperties - -KeyName : wrappingKey -KeyVersion : -KeyVaultUri : https://mykeyvault.vault.azure.net:443 -CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f -LastKeyRotationTimestamp : 3/3/2022 2:07:34 AM - - This command updates a storage account with Keyvault from another tenant (access Keyvault with FederatedClientId). - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageaccount - - - Get-AzStorageAccount - - - - New-AzStorageAccount - - - - Remove-AzStorageAccount - - - - - - - Set-AzStorageAccountManagementPolicy - Set - AzStorageAccountManagementPolicy - - Creates or modifies the management policy of an Azure Storage account. - - - - The Set-AzStorageAccountManagementPolicy cmdlet creates or modifies the management policy of an Azure Storage account. - - - - Set-AzStorageAccountManagementPolicy - - - - - - - - - - - Example 1: Create or update the management policy of a Storage account with ManagementPolicy rule objects. - $action1 = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -DaysAfterCreationGreaterThan 100 -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 50 -DaysAfterLastTierChangeGreaterThan 30 -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BaseBlobAction TierToCool -DaysAfterLastAccessTimeGreaterThan 30 -EnableAutoTierToHotFromCool -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -SnapshotAction Delete -daysAfterCreationGreaterThan 100 -$action1 = Add-AzStorageAccountManagementPolicyAction -InputObject $action1 -BlobVersionAction TierToArchive -daysAfterCreationGreaterThan 100 -DaysAfterLastTierChangeGreaterThan 14 -$filter1 = New-AzStorageAccountManagementPolicyFilter -PrefixMatch ab,cd -$rule1 = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action1 -Filter $filter1 - -$action2 = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterCreationGreaterThan 100 -$blobindexmatch1 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag1" -Value "value1" -$blobindexmatch2 = New-AzStorageAccountManagementPolicyBlobIndexMatchObject -Name "tag2" -Value "value2" -$filter2 = New-AzStorageAccountManagementPolicyFilter -BlobType appendBlob,blockBlob -BlobIndexMatch $blobindexmatch1,$blobindexmatch2 -$rule2 = New-AzStorageAccountManagementPolicyRule -Name Test2 -Action $action2 -Filter $filter2 - -Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Rule $rule1,$rule2 - -ResourceGroupName : myresourcegroup -StorageAccountName : mystorageaccount -Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default -Type : Microsoft.Storage/storageAccounts/managementPolicies -LastModifiedTime : 7/12/2022 8:32:09 AM -Rules : [ - { - "Enabled": true, - "Name": "Test", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": { - "DaysAfterModificationGreaterThan": null, - "DaysAfterLastAccessTimeGreaterThan": 30, - "DaysAfterCreationGreaterThan": null, - "DaysAfterLastTierChangeGreaterThan": null - }, - "TierToArchive": { - "DaysAfterModificationGreaterThan": 50, - "DaysAfterLastAccessTimeGreaterThan": null, - "DaysAfterCreationGreaterThan": null, - "DaysAfterLastTierChangeGreaterThan": 30 - }, - "Delete": { - "DaysAfterModificationGreaterThan": null, - "DaysAfterLastAccessTimeGreaterThan": null, - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": null - }, - "EnableAutoTierToHotFromCool": true - }, - "Snapshot": { - "Delete": { - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": null - }, - "TierToCool": null, - "TierToArchive": null - }, - "Version": { - "Delete": null, - "TierToCool": null, - "TierToArchive": { - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": 14 - } - } - }, - "Filters": { - "PrefixMatch": [ - "ab", - "cd" - ], - "BlobTypes": [ - "blockBlob" - ], - "BlobIndexMatch": null - } - } - }, - { - "Enabled": true, - "Name": "Test2", - "Definition": { - "Actions": { - "BaseBlob": { - "TierToCool": null, - "TierToArchive": null, - "Delete": { - "DaysAfterModificationGreaterThan": null, - "DaysAfterLastAccessTimeGreaterThan": null, - "DaysAfterCreationGreaterThan": 100, - "DaysAfterLastTierChangeGreaterThan": null - }, - "EnableAutoTierToHotFromCool": null - }, - "Snapshot": null, - "Version": null - }, - "Filters": { - "PrefixMatch": null, - "BlobTypes": [ - "appendBlob", - "blockBlob" - ], - "BlobIndexMatch": [ - { - "Name": "tag1", - "Op": "==", - "Value": "value1" - }, - { - "Name": "tag2", - "Op": "==", - "Value": "value2" - } - ] - } - } - } - ] - - This command first create 2 ManagementPolicy rule objects, then creates or updates the management policy of a Storage account with the 2 ManagementPolicy rule objects. - - - - - - Example 2: Create or update the management policy of a Storage account with a Json format policy. - Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Policy (@{ - Rules=(@{ - Enabled=$true; - Name="Test"; - Definition=(@{ - Actions=(@{ - BaseBlob=(@{ - TierToCool=@{DaysAfterLastAccessTimeGreaterThan=30}; - TierToArchive=@{DaysAfterModificationGreaterThan=50;DaysAfterLastTierChangeGreaterThan=30}; - Delete=@{DaysAfterCreationGreaterThan=100}; - EnableAutoTierToHotFromCool="true"; - }); - Snapshot=(@{ - Delete=@{DaysAfterCreationGreaterThan=100} - TierToArchive=@{DaysAfterCreationGreaterThan=50}; - TierToCool=@{DaysAfterCreationGreaterThan=60}; - }); - Version=(@{ - Delete=@{DaysAfterCreationGreaterThan=100}; - TierToArchive=@{DaysAfterCreationGreaterThan=50;DaysAfterLastTierChangeGreaterThan=20}; - TierToCool=@{DaysAfterCreationGreaterThan=60}; - }); - }); - Filters=(@{ - BlobTypes=@("blockBlob"); - PrefixMatch=@("prefix1","prefix2"); - }) - }) - }, - @{ - Enabled=$false; - Name="Test2"; - Definition=(@{ - Actions=(@{ - BaseBlob=(@{ - Delete=@{DaysAfterCreationGreaterThan=100}; - }); - }); - Filters=(@{ - BlobTypes=@("blockBlob","appendBlob"); - BlobIndexMatch=(@{Name="tag1";Op="==";Value ="value1"},@{Name="tag2";Op="==";Value="value2"}) - }) - }) - }) -}) - - ```output ResourceGroupName : myresourcegroup StorageAccountName : mystorageaccount Id : /subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/managementPolicies/default Type : Microsoft.Storage/storageAccounts/managementPolicies LastModifiedTime : 7/12/2022 8:34:05 AM Rules : [ { "Enabled": true, "Name": "Test", "Definition": { "Actions": { "BaseBlob": { "TierToCool": { "DaysAfterModificationGreaterThan": null, "DaysAfterLastAccessTimeGreaterThan": 30, "DaysAfterCreationGreaterThan": null, "DaysAfterLastTierChangeGreaterThan": null }, "TierToArchive": { "DaysAfterModificationGreaterThan": 50, "DaysAfterLastAccessTimeGreaterThan": null, "DaysAfterCreationGreaterThan": null, "DaysAfterLastTierChangeGreaterThan": 30 }, "Delete": { "DaysAfterModificationGreaterThan": null, "DaysAfterLastAccessTimeGreaterThan": null, "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "EnableAutoTierToHotFromCool": true }, "Snapshot": { "Delete": { "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "TierToCool": { "DaysAfterCreationGreaterThan": 60, "DaysAfterLastTierChangeGreaterThan": null }, "TierToArchive": { "DaysAfterCreationGreaterThan": 50, "DaysAfterLastTierChangeGreaterThan": null } }, "Version": { "Delete": { "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "TierToCool": { "DaysAfterCreationGreaterThan": 60, "DaysAfterLastTierChangeGreaterThan": null }, "TierToArchive": { "DaysAfterCreationGreaterThan": 50, "DaysAfterLastTierChangeGreaterThan": 20 } } }, "Filters": { "PrefixMatch": [ "prefix1", "prefix2" ], "BlobTypes": [ "blockBlob" ], "BlobIndexMatch": null } } }, { "Enabled": false, "Name": "Test2", "Definition": { "Actions": { "BaseBlob": { "TierToCool": null, "TierToArchive": null, "Delete": { "DaysAfterModificationGreaterThan": null, "DaysAfterLastAccessTimeGreaterThan": null, "DaysAfterCreationGreaterThan": 100, "DaysAfterLastTierChangeGreaterThan": null }, "EnableAutoTierToHotFromCool": null }, "Snapshot": null, "Version": null }, "Filters": { "PrefixMatch": null, "BlobTypes": [ "blockBlob", "appendBlob" ], "BlobIndexMatch": [ { "Name": "tag1", "Op": "==", "Value": "value1" }, { "Name": "tag2", "Op": "==", "Value": "value2" } ] } } } ] ``` - This command creates or updates the management policy of a Storage account with a json format policy. - ### Example 3: Get the management policy from a Storage account, then set it to another Storage account. ```powershell $outputPolicy = Get-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" | Set-AzStorageAccountManagementPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2" ``` - This command first gets the management policy from a Storage account, then set it to another Storage account. - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ### System.String - ## OUTPUTS - ### Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - ## PARAMETERS - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. - ```yaml Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer Parameter Sets: (All) Aliases: AzContext, AzureRmContext, AzureCredential - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Policy Management Policy Object to Set - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy Parameter Sets: AccountNamePolicyObject, AccountObjectPolicyObject, AccountResourceIdPolicyObject Aliases: ManagementPolicy - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -ResourceGroupName Resource Group Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -Rule The Management Policy rules. Get the object with New-AzStorageAccountManagementPolicyRule cmdlet. - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule[] Parameter Sets: AccountNamePolicyRule, AccountObjectPolicyRule, AccountResourceIdPolicyRule Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccount Storage account object - ```yaml Type: Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount Parameter Sets: AccountObjectPolicyRule, AccountObjectPolicyObject Aliases: - Required: True Position: Named Default value: None Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` - ### -StorageAccountName Storage Account Name. - ```yaml Type: System.String Parameter Sets: AccountNamePolicyRule, AccountNamePolicyObject Aliases: AccountName - Required: True Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -StorageAccountResourceId Storage Account Resource Id. - ```yaml Type: System.String Parameter Sets: AccountResourceIdPolicyRule, AccountResourceIdPolicyObject Aliases: - Required: True Position: 0 Default value: None Accept pipeline input: True (ByPropertyName) Accept wildcard characters: False ``` - ### -Confirm Prompts you for confirmation before running the cmdlet. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: cf - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### -WhatIf Shows what would happen if the cmdlet runs. The cmdlet is not run. - ```yaml Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: wi - Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` - ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - ## INPUTS - ## OUTPUTS - ## NOTES - ## RELATED LINKS - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/set-Azstorageaccountmanagementpolicy - - - - - - Set-AzStorageBlobInventoryPolicy - Set - AzStorageBlobInventoryPolicy - - Creates or updates blob inventory policy in a Storage account. - - - - The Set-AzStorageBlobInventoryPolicy cmdlet creates or updates blob inventory policy in a Storage account. - - - - Set-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - - System.Management.Automation.SwitchParameter - - - False - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - - System.Management.Automation.SwitchParameter - - - False - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - - System.Management.Automation.SwitchParameter - - - False - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobInventoryPolicy - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Disabled - - The Blob Inventory Policy is enabled by default, specify this parameter to disable it. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Blob Inventory Policy Object to Set - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Rule - - The Blob Inventory Policy rules. Get the object with New-AzStorageBlobInventoryPolicyRule cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageAccountResourceId - - Storage Account Resource Id. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicySchema - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - - - - - - - - - - - - Example 1: Create or update the blob inventory policy with BlobInventoryPolicy rule objects. - $rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2 - -$rule2 = New-AzStorageBlobInventoryPolicyRule -Name Test2 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata - -$rule3 = New-AzStorageBlobInventoryPolicyRule -Name Test3 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -IncludeDeleted -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb ` - -ExcludePrefix ccc,ddd -BlobSchemaField name,Last-Modified,BlobType,AccessTier,AccessTierChangeTime,Content-Type,Content-CRC64,CopyId,x-ms-blob-sequence-number,TagCount - -$policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -Disabled -Rule $rule1,$rule2,$rule3 - -$policy - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 5/12/2021 8:53:38 AM -Enabled : False -Rules : {Test1, Test2, Test3} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions IncludeDeleted BlobTypes PrefixMatch ExcludePrefix SchemaFields ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- -------------- --------- ----------- ------------- ------------ -Test1 False containername Container Csv Daily {con1, con2} {Name, Metadata, PublicAccess, Last-Modified...} -Test2 True containername Blob Parquet Weekly True True {blockBlob, appendBlob} {aaa, bbb} {Name, Creation-Time, Last-Modified, Content-Length...} -Test3 True containername Blob Parquet Weekly True True True {blockBlob, appendBlob} {aaa, bbb} {ccc, ddd} {Name, Content-Type, Content-CRC64, Last-Modified...} - - This first 2 commands create 3 BlobInventoryPolicy rule objects: rule "Test1" for contaienr inventory; rule "Test2" and "Test3" for blob inventory. The following command sets blob inventory policy to a Storage account with the 2 rule objects, then show the updated policy and rules properties. - - - - - - Example 2: Create or update the blob inventory policy of a Storage account with a Json format policy. - $policy = Set-AzStorageBlobInventoryPolicy -ResourceGroupName $resourceGroupName -StorageAccountName $accountName -Policy (@{ - Enabled=$true; - Rules=(@{ - Enabled=$true; - Name="Test1"; - Destination=$containerName; - Definition=(@{ - ObjectType="Blob"; - Format="Csv"; - Schedule="Weekly"; - SchemaFields=@("name","Content-Length","BlobType","Snapshot","VersionId","IsCurrentVersion"); - Filters=(@{ - BlobTypes=@("blockBlob","appendBlob"); - PrefixMatch=@("prefix1","prefix2"); - IncludeSnapshots=$true; - IncludeBlobVersions=$true; - }) - }) - }, - @{ - Enabled=$false; - Name="Test2"; - Destination=$containerName; - Definition=(@{ - ObjectType="Container"; - Format="Parquet"; - Schedule="Daily"; - SchemaFields=@("name","Metadata","PublicAccess","DefaultEncryptionScope","DenyEncryptionScopeOverride"); - Filters=(@{ - PrefixMatch=@("conpre1","conpre2"); - }) - }) - }, - @{ - Enabled=$false; - Name="Test3"; - Destination=$containerName; - Definition=(@{ - ObjectType="Blob"; - Format="Csv"; - Schedule="Weekly"; - SchemaFields=@("name","Deleted","RemainingRetentionDays","Content-Type","Content-Language","Cache-Control","Content-Disposition"); - Filters=(@{ - BlobTypes=@("blockBlob","appendBlob"); - PrefixMatch=@("conpre1","conpre2"); - ExcludePrefix=@("expre1","expre2"); - IncludeDeleted=$true - }) - }) - }) - }) - - -$policy - -StorageAccountName : weiadlscanary1 -ResourceGroupName : weitry -Name : DefaultInventoryPolicy -Id : /subscriptions/{subscription-Id}/resourceGroups/weitry/providers/Microsoft.Storage/storageAccounts/weiadlscanary1/inventoryPolicies/default -Type : Microsoft.Storage/storageAccounts/inventoryPolicies -LastModifiedTime : 5/12/2021 9:02:21 AM -Enabled : True -Rules : {Test1, Test2, Test3} - -$policy.Rules - -Name Enabled Destination ObjectType Format Schedule IncludeSnapshots IncludeBlobVersions IncludeDeleted BlobTypes PrefixMatch ExcludePrefix SchemaFields ----- ------- ----------- ---------- ------ -------- ---------------- ------------------- -------------- --------- ----------- ------------- ------------ -Test1 True containername Blob Csv Weekly True True {blockBlob, appendBlob} {prefix1, prefix2} {Name, Content-Length, BlobType, Snapshot...} -Test2 False containername Container Parquet Daily {conpre1, conpre2} {Name, Metadata, PublicAccess} -Test3 False containername Blob Csv Weekly True {blockBlob, appendBlob} {conpre1, conpre2} {expre1, expre2} {Name, Content-Type, Content-Cache, Content-Language...} {name, Metadata, PublicAccess} - - This command creates or updates the blob inventory policy of a Storage account with a json format policy. - - - - - - Example 3: Get the blob inventory policy from a Storage account, then set it to another Storage account. - $policy = Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" | Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2" - - This command first gets the blob inventory policy from a Storage account, then set it to another Storage account. The proeprties: Destination, Enabled, and Rules of the policy will be set to the destination account. - - - - - - Example 4: Get the blob inventory policy rules from a Storage account, then set it to another Storage account. - $policy = ,((Get-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount").Rules) | Set-AzStorageBlobInventoryPolicy -ResourceGroupName "myresourcegroup2" -AccountName "mystorageaccount2" -Disabled - - This command first gets the blob inventory policy from a Storage account, then set it's rules to another Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobinventorypolicy - - - - - - Set-AzStorageLocalUser - Set - AzStorageLocalUser - - Creates or updates a specified local user in a storage account. - - - - The Set-AzStorageLocalUser cmdlet creates or updates a specified local user in a storage account. To run this cmdlet, the storage account must has already set EnableLocalUser as true. - - - - Set-AzStorageLocalUser - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HasSharedKey - - Whether shared key exists. Set it to false to remove existing shared key. - - System.Boolean - - System.Boolean - - - None - - - HasSshKey - - Whether SSH key exists. Set it to false to remove existing SSH key. - - System.Boolean - - System.Boolean - - - None - - - HasSshPassword - - Whether SSH password exists. Set it to false to remove existing SSH password. - - System.Boolean - - System.Boolean - - - None - - - HomeDirectory - - Local user home directory - - System.String - - System.String - - - None - - - PermissionScope - - The permission scopes of the local user. Get the object with New-AzStorageLocalUserPermissionScope cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - - None - - - SshAuthorizedKey - - Local user ssh authorized keys for SFTP. Get the object with New-AzStorageLocalUserSshPublicKey cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageLocalUser - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HasSharedKey - - Whether shared key exists. Set it to false to remove existing shared key. - - System.Boolean - - System.Boolean - - - None - - - HasSshKey - - Whether SSH key exists. Set it to false to remove existing SSH key. - - System.Boolean - - System.Boolean - - - None - - - HasSshPassword - - Whether SSH password exists. Set it to false to remove existing SSH password. - - System.Boolean - - System.Boolean - - - None - - - HomeDirectory - - Local user home directory - - System.String - - System.String - - - None - - - PermissionScope - - The permission scopes of the local user. Get the object with New-AzStorageLocalUserPermissionScope cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - - None - - - SshAuthorizedKey - - Local user ssh authorized keys for SFTP. Get the object with New-AzStorageLocalUserSshPublicKey cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - HasSharedKey - - Whether shared key exists. Set it to false to remove existing shared key. - - System.Boolean - - System.Boolean - - - None - - - HasSshKey - - Whether SSH key exists. Set it to false to remove existing SSH key. - - System.Boolean - - System.Boolean - - - None - - - HasSshPassword - - Whether SSH password exists. Set it to false to remove existing SSH password. - - System.Boolean - - System.Boolean - - - None - - - HomeDirectory - - Local user home directory - - System.String - - System.String - - - None - - - PermissionScope - - The permission scopes of the local user. Get the object with New-AzStorageLocalUserPermissionScope cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSPermissionScope[] - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - SshAuthorizedKey - - Local user ssh authorized keys for SFTP. Get the object with New-AzStorageLocalUserSshPublicKey cmdlet. - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSSshPublicKey[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - UserName - - The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - - - - - - - - - - - - ----------- Example 1: Create or update a local user ----------- - $sshkey1 = New-AzStorageLocalUserSshPublicKey -Key "ssh-rsa base64encodedkey=" -Description "sshpublickey name1" - -$permissionScope1 = New-AzStorageLocalUserPermissionScope -Permission rw -Service blob -ResourceName container1 - -$localuser = Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -SshAuthorizedKey $sshkey1 -PermissionScope $permissionScope1 -HasSharedKey $true -HasSshKey $true -HasSshPassword $true - -$localuser - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes ----- --- ------------- ------------ --------- -------------- ---------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1] - -$localuser.SshAuthorizedKeys - -Description Key ------------ --- -sshpublickey name1 ssh-rsa base64encodedkey= - -$localuser.PermissionScopes - -Permissions Service ResourceName ------------ ------- ------------ -rw blob container1 - - The first command creates a local SSH public key object. Note that the key follows the format of `<algorithm> <data>` where data is the base64 encoded contents of the public key. The second command creates a local permission scope object that defines the container level access for the local user. The third command creates or updates the local user, using the local objects from the first 2 commands. The final command shows the local user properties. - - - - - - Example 2: Create or update a local user by input permission scope and ssh key with json - Set-AzStorageLocalUser -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -UserName testuser1 -HomeDirectory "/" -HasSharedKey $true -HasSshKey $true -HasSshPassword $true ` - -SshAuthorizedKey (@{ - Description="sshpulickey name1"; - Key="ssh-rsa base64encodedkey="; - }, - @{ - Description="sshpulickey name2"; - Key="ssh-rsa otherbase64encodedkey="; - }) ` - -PermissionScope (@{ - Permissions="rw"; - Service="blob"; - ResourceName="container1"; - }, - @{ - Permissions="rwd"; - Service="share"; - ResourceName="share1"; - }) - -ResourceGroupName: weitry, StorageAccountName: weisftp3 - -Name Sid HomeDirectory HasSharedKey HasSshKey HasSshPassword PermissionScopes ----- --- ------------- ------------ --------- -------------- ---------------- -testuser1 S-1-2-0-0000000000-000000000-0000000000-0000 / True True True [container1,...] - - This command creates or updates a local user by input permission scope and ssh key with json. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragelocaluser - - - - - - Set-AzStorageObjectReplicationPolicy - Set - AzStorageObjectReplicationPolicy - - Creates or updates the specified object replication policy in a Storage account. - - - - The Set-AzStorageObjectReplicationPolicy cmdlet creates or updates the specified object replication policy in a Storage account. - - - - Set-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationAccount - - Object Replication Policy DestinationAccount, if SourceAccount is account name it should be account name, else should be account resource id. Default value will be the input StorageAccountName, or the resouceID of the account. - - System.String - - System.String - - - None - - - PolicyId - - Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy. - - System.String - - System.String - - - None - - - Rule - - Object Replication Policy Rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - - None - - - SourceAccount - - Object Replication Policy SourceAccount. It should be resource id if allowCrossTenantReplication is false.. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageObjectReplicationPolicy - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationAccount - - Object Replication Policy DestinationAccount, if SourceAccount is account name it should be account name, else should be account resource id. Default value will be the input StorageAccountName, or the resouceID of the account. - - System.String - - System.String - - - None - - - PolicyId - - Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy. - - System.String - - System.String - - - None - - - Rule - - Object Replication Policy Rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - - None - - - SourceAccount - - Object Replication Policy SourceAccount. It should be resource id if allowCrossTenantReplication is false.. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageObjectReplicationPolicy - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Object Replication Policy Object to Set to the specified Account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationAccount - - Object Replication Policy DestinationAccount, if SourceAccount is account name it should be account name, else should be account resource id. Default value will be the input StorageAccountName, or the resouceID of the account. - - System.String - - System.String - - - None - - - InputObject - - Object Replication Policy Object to Set to the specified Account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - None - - - PolicyId - - Object Replication Policy Id. It should be a GUID or 'default'. If not input the PolicyId, will use 'default', which means to create a new policy and the Id of the new policy will be returned in the created policy. - - System.String - - System.String - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Rule - - Object Replication Policy Rules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule[] - - - None - - - SourceAccount - - Object Replication Policy SourceAccount. It should be resource id if allowCrossTenantReplication is false.. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - - - - - - - - - - Example 1: Set object replication policy to both destination and source account. - $rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src1 -DestinationContainer dest1 - -$rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer src -DestinationContainer dest -MinCreationTime 2019-01-01T16:00:00Z -PrefixMatch a,abc,dd - -$srcAccount = Get-AzStorageAccount -ResourceGroupName "myresourcegroup" -AccountName "mysourceaccount" - -Set-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" -PolicyId default -SourceAccount $srcAccount.Id -Rule $rule1,$rule2 - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mydestaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] - -$destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mydestaccount" - -Set-AzStorageObjectReplicationPolicy -ResourceGroupName "myresourcegroup" -AccountName "mysourceaccount" -InputObject $destPolicy - -ResourceGroupName StorageAccountName PolicyId EnabledTime SourceAccount DestinationAccount Rules ------------------ ------------------ -------- ----------- ------------- ------------------ ----- -myresourcegroup mysourceaccount 56bfa11c-81ef-4f8d-b307-5e5386e16fba mysourceaccount mydestaccount [5fa8b1d6-4985-4abd-a0b3-ec4d07295a43,...] - - This command sets object replication policy to both destination and source account. First create 2 object replication policy rules, and set policy to destination account with the 2 rules and source account resource Id. Then get the object replication policy from destination account and set to source account. Please note, when storage account has AllowCrossTenantReplication as false, SourceAccount and DestinationAccount should be account resource Id. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageobjectreplicationpolicy - - - - - - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - Stop - AzStorageAccountHierarchicalNamespaceUpgrade - - Aborts an ongoing HierarchicalNamespace upgrade task on a storage account. - - - - The Stop-AzStorageAccountHierarchicalNamespaceUpgrade cmdlet can aborts an ongoing upgrade to enable HierarchicalNamespace task on a storage account. - - - - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - PassThru - - Display the storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Display the storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to Failover the Account - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Name - - Storage Account Name. - - System.String - - System.String - - - None - - - PassThru - - Display the storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Abort HierarchicalNamespace upgrade task on a stroage account - Stop-AzStorageAccountHierarchicalNamespaceUpgrade -ResourceGroupName $rgname -Name $accountName -Force -PassThru - -True - - This command aborts an ongoing HierarchicalNamespace upgrade task on a storage account. The task can be invoke with cmdlet 'Invoke-AzStorageAccountHierarchicalNamespaceUpgrade' with '-RequestType Upgrade'. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/stop-azstorageaccounthierarchicalnamespaceupgrade - - - - - - Update-AzRmStorageContainer - Update - AzRmStorageContainer - - Modifies a Storage blob container - - - - The Update-AzRmStorageContainer cmdlet modifies a Storage blob container - - - - Update-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageContainer - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageContainer - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - - Container - Blob - None - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage container object - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - None - - - Metadata - - Container Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Container Name - - System.String - - System.String - - - None - - - PublicAccess - - Container PublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - Microsoft.Azure.Commands.Management.Storage.Models.PSPublicAccess - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - - - - - - - - - - - - Example 1: Modifies a Storage blob container's metadata and public access with Storage account name and container name - Update-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -ContainerName "myContainer" -PublicAccess Container -Metadata @{tag0="value0";tag1="value1"} - - This command modifies a Storage blob container's metadata and public access with Storage account name and container name. - - - - - - Example 2: Disable public access on a Storage blob container with Storage account object and container name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" -Update-AzRmStorageContainer -StorageAccount $accountObject -ContainerName "myContainer" -PublicAccess None - - This command disables public access on a Storage blob container with Storage account object and container name. - - - - - - Example 3: Set public access as Blob for all Storage blob containers in a Storage account with pipeline - Get-AzRmStorageContainer -ResourceGroupName "myResourceGroup" -AccountName "myStorageAccount" | Update-AzRmStorageContainer -PublicAccess Blob - - This command set public access as Blob for all Storage blob containers in a Storage account with pipeline. - - - - - - - Example 4: Update an Azure storage container with RootSquash - - $container = Update-AzRmStorageContainer -ResourceGroupName "myersourcegroup" -AccountName "mystorageaccount" -Name "mycontainer" -RootSquash NoRootSquash - -$container.EnableNfsV3AllSquash -False - -$container.EnableNfsV3RootSquash -False - - This command updates a storage container, with RootSquash property set as NoRootSquash. RootSquash only works on a storage account that enabled NfsV3. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azrmstoragecontainer - - - - - - Update-AzRmStorageShare - Update - AzRmStorageShare - - Modifies a Storage file share. - - - - The New-AzRmStorageShare cmdlet modifies a Storage file share. - - - - Update-AzRmStorageShare - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageShare - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageShare - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzRmStorageShare - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - - TransactionOptimized - Premium - Hot - Cool - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - - NoRootSquash - RootSquash - AllSquash - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AccessTier - - Access tier for specific share. StorageV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Storage Share object - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - None - - - Metadata - - Share Metadata - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Name - - Share Name - - System.String - - System.String - - - None - - - QuotaGiB - - Share Quota in Gibibyte. - - System.Int32 - - System.Int32 - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a File Share Resource Id. - - System.String - - System.String - - - None - - - RootSquash - - Sets reduction of the access rights for the remote superuser. Possible values include: 'NoRootSquash', 'RootSquash', 'AllSquash' - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - - - - - - - - - - - - Example 1: Modifies a Storage file share's metadata and share quota with Storage account name and share name - $share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -QuotaGiB 200 -Metadata @{tag0="value0";tag1="value1"} - -$share - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare 200 - -$share.Metadata - -Key Value ---- ----- -tag0 value0 -tag1 value1 - - This command modifies a Storage file share's metadata and share quota with Storage account name and share name, and show the modify result with the returned file share object. - - - - - - Example 2: Modifies metadata on a Storage file share with Storage account object and share name - $accountObject = Get-AzStorageAccount -ResourceGroupName "myResourceGroup" -StorageAccountName "myStorageAccount" -$share = Update-AzRmStorageShare -StorageAccount $accountObject -Name "myshare" -Metadata @{tag0="value0";tag1="value1"} - - This command modifies metadata on a Storage file share with Storage account object and share name. - - - - - - Example 3: Modifies share quota for all Storage file shares in a Storage account with pipeline - Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" | Update-AzRmStorageShare -QuotaGiB 5000 - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -share1 5000 -share2 5000 - - This command modifies share quota as 5000 GiB for all Storage file shares in a Storage account with pipeline. - - - - - - Example 4: Modify a Storage file share with accesstier as Cool - $share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -AccessTier Cool - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare Cool - - This command modifies a Storage file share with accesstier as Cool. - - - - - - Example 5: Modifies rootsquash for a file shares in a Storage account - $share = Update-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Name "myshare" -RootSquash NoRootSquash - -$share - - ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes ----- -------- ---------------- ---------- ------- ------- --------------- -myshare - -$share.RootSquash -NoRootSquash - - This command modifies share RootSquash property to NoRootSquash. RootSquash property is only avaialbe on share with EnabledProtocol as NFS. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azrmstorageshare - - - - - - Update-AzStorageAccountNetworkRuleSet - Update - AzStorageAccountNetworkRuleSet - - Update the NetworkRule property of a Storage account - - - - The Update-AzStorageAccountNetworkRuleSet cmdlet updates the NetworkRule property of a Storage account - - - - Update-AzStorageAccountNetworkRuleSet - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Bypass - - The Bypass value to update to the NetworkRule property of a Storage account. The allowed value are none or any combination of: • Logging • Metrics • Azureservices - - - None - Logging - Metrics - AzureServices - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - - None - - - DefaultAction - - The DefaultAction value to update to the NetworkRule property of a Storage account. The allowed Options: • Allow • Deny - - - Allow - Deny - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Bypass - - The Bypass value to update to the NetworkRule property of a Storage account. The allowed value are none or any combination of: • Logging • Metrics • Azureservices - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleBypassEnum - - - None - - - DefaultAction - - The DefaultAction value to update to the NetworkRule property of a Storage account. The allowed Options: • Allow • Deny - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetWorkRuleDefaultActionEnum - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IPRule - - The Array of IpRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - None - - - Name - - Specifies the name of the Storage account. - - System.String - - System.String - - - None - - - ResourceAccessRule - - Storage Account NetworkRule ResourceAccessRules. - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSResourceAccessRule[] - - - None - - - ResourceGroupName - - Specifies the name of the resource group contains the Storage account. - - System.String - - System.String - - - None - - - VirtualNetworkRule - - The Array of VirtualNetworkRule objects to update to the NetworkRule Property of a Storage account. - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule[] - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSVirtualNetworkRule[] - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - - - - - - - - - - - - Example 1: Update all properties of NetworkRule, input Rules with JSON - Update-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -Bypass Logging,Metrics -DefaultAction Allow -IpRule (@{IPAddressOrRange="10.0.0.0/7";Action="allow"},@{IPAddressOrRange="28.2.0.0/16";Action="allow"}) ` --VirtualNetworkRule (@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"}, -@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2";Action="allow"}) -ResourceAccessRule (@{ResourceId=$ResourceId1;TenantId=$tenantId1},@{ResourceId=$ResourceId2;TenantId=$tenantId1}) - - This command update all properties of NetworkRule, input Rules with JSON. - - - - - - ------- Example 2: Update Bypass property of NetworkRule ------- - Update-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -Bypass AzureServices,Metrics - - This command update Bypass property of NetworkRule (other properties won't change). - - - - - - Example 3: Clean up rules of NetworkRule of a Storage account - Update-AzStorageAccountNetworkRuleSet -ResourceGroupName "myResourceGroup" -Name "mystorageaccount" -IpRule @() -VirtualNetworkRule @() -ResourceAccessRule @() - - This command clean up rules of NetworkRule of a Storage account (other properties not change). - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageaccountnetworkruleset - - - - - - Update-AzStorageBlobServiceProperty - Update - AzStorageBlobServiceProperty - - Modifies the service properties for the Azure Storage Blob service. - - - - The Update-AzStorageBlobServiceProperty cmdlet modifies the service properties for the Azure Storage Blob service. - - - - Update-AzStorageBlobServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageBlobServiceProperty - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageBlobServiceProperty - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ChangeFeedRetentionInDays - - Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). Never specify it when enabled changeFeed will get null value in service properties, indicates an infinite retention of the change feed. - - System.Int32 - - System.Int32 - - - None - - - CorsRule - - Specifies CORS rules for the Blob service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - Default Service Version to Set - - System.String - - System.String - - - None - - - EnableChangeFeed - - Enable Change Feed logging for the storage account by set to $true, disable Change Feed logging by set to $false. - - System.Boolean - - System.Boolean - - - None - - - IsVersioningEnabled - - Gets or sets versioning is enabled if set to true. - - System.Boolean - - System.Boolean - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a Blob service properties Resource Id. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - - - - - - - - Example 1: Set Blob service DefaultServiceVersion to 2018-03-28 - Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -DefaultServiceVersion 2018-03-28 - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : 2018-03-28 -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed.Enabled : -ChangeFeed.RetentionInDays : -IsVersioningEnabled : - - This command sets the DefaultServiceVersion of Blob Service to 2018-03-28. - - - - - - Example 2: Enable Changefeed on Blob service of a Storage account with ChangeFeedRetentionInDays as 5 days - Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableChangeFeed $true -ChangeFeedRetentionInDays 5 - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed.Enabled : True -ChangeFeed.RetentionInDays : 5 -IsVersioningEnabled : - - This command enables Changefeed on Blob service of a Storage account with ChangeFeedRetentionInDays as 5 days. Change feed support in Azure Blob Storage works by listening to a GPv2 or Blob storage account for any blob level creation, modification, or deletion events. It then outputs an ordered log of events for the blobs stored in the $blobchangefeed container within the storage account. The serialized changes are persisted as an Apache Avro file and can be processed asynchronously and incrementally. If not specify ChangeFeedRetentionInDays, will get null value in service properties, indicates an infinite retention of the change feed. - - - - - - Example 3: Enable Versioning on Blob service of a Storage account - Update-AzStorageBlobServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -IsVersioningEnabled $true - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -DefaultServiceVersion : -DeleteRetentionPolicy.Enabled : False -DeleteRetentionPolicy.Days : -RestorePolicy.Enabled : -RestorePolicy.Days : -ChangeFeed : -ChangeFeed.RetentionInDays : -IsVersioningEnabled : True - - This command enables Versioning on Blob service of a Storage account - - - - - - ----------------- Example 4: Update CORS rules ----------------- - $CorsRules = (@{ - AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition"); - ExposedHeaders=@(); - AllowedOrigins=@("*"); - AllowedMethods=@("TRACE","CONNECT")}, - @{ - AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com"); - ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader"); - AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader"); - MaxAgeInSeconds=30; - AllowedMethods=@("PUT")}) - -$property = Update-AzStorageBlobServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule $CorsRules -$property.Cors.CorsRulesProperty - -AllowedOrigins : {*} -AllowedMethods : {TRACE, CONNECT} -MaxAgeInSeconds : 0 -ExposedHeaders : {} -AllowedHeaders : {x-ms-blob-content-type, x-ms-blob-content-disposition} - -AllowedOrigins : {http://www.fabrikam.com, http://www.contoso.com} -AllowedMethods : {PUT} -MaxAgeInSeconds : 30 -ExposedHeaders : {x-ms-meta-customheader, x-ms-meta-data*} -AllowedHeaders : {x-ms-meta-customheader, x-ms-meta-target*} - - The first command assigns an array of rules to the $CorsRules variable. This command uses standard extends over several lines in this code block. The second command sets the rules in $CorsRules to the Blob service of a Storage account. - - - - - - ---------------- Example 5: Clean up CORS rules ---------------- - Update-AzStorageBlobServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule @() - - This command cleans up the CORS rules of a Storage account by inputting @() to parameter CorsRule - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageblobserviceproperty - - - - - - Update-AzStorageEncryptionScope - Update - AzStorageEncryptionScope - - Modify an encryption scope for a Storage account. - - - - The Update-AzStorageEncryptionScope cmdlet modifies an encryption scope for a Storage account. - - - - Update-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - EncryptionScope object - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageEncryptionScope - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - EncryptionScope object - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - - System.Management.Automation.SwitchParameter - - - False - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - - Enabled - Disabled - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScopeName - - Azure Storage EncryptionScope name - - System.String - - System.String - - - None - - - InputObject - - EncryptionScope object - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - None - - - KeyUri - - The key Uri - - System.String - - System.String - - - None - - - KeyvaultEncryption - - Create encryption scope with keySource as Microsoft.Keyvault - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - State - - Update encryption scope State, Possible values include: 'Enabled', 'Disabled'. - - System.String - - System.String - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - StorageEncryption - - Create encryption scope with keySource as Microsoft.Storage. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - - - - - - - - - - - - ------------ Example 1: Disable an encryption scope ------------ - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -State Disabled - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Disabled Microsoft.Storage - - This command disables an encryption scope. - - - - - - ------------ Example 2: Enable an encryption scope ------------ - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -State Enabled - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Storage - - This command enables an encryption scope. - - - - - - Example 3: Update an encryption scope to use Storage Encryption - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -StorageEncryption - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Storage - - This command updates an encryption scope to use Storage Encryption. - - - - - - Example 4: Update an encryption scope to use Keyvault Encryption - Update-AzStorageEncryptionScope -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EncryptionScopeName testscope -KeyvaultEncryption -KeyUri "https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57" - -ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount - -Name State Source KeyVaultKeyUri RequireInfrastructureEncryption ----- ----- ------ -------------- ------------------------------- -testscope Enabled Microsoft.Keyvault https://keyvalutname.vault.azure.net:443/keys/keyname/34a0ba563b4243d9a0ef2b1d3c0c7d57 - - This command updtaes an encryption scope to use Keyvault Encryption. The Storage account Identity need have get,wrapkey,unwrapkey permissions to the keyvault key. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageencryptionscope - - - - - - Update-AzStorageFileServiceProperty - Update - AzStorageFileServiceProperty - - Modifies the service properties for the Azure Storage File service. - - - - The Update-AzStorageFileServiceProperty cmdlet modifies the service properties for the Azure Storage File service. - - - - Update-AzStorageFileServiceProperty - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - - Kerberos - NTLMv2 - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - - AES-128-CCM - AES-128-GCM - AES-256-GCM - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - - AES-256 - RC4-HMAC - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - - SMB2.1 - SMB3.0 - SMB3.1.1 - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageFileServiceProperty - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - - Kerberos - NTLMv2 - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - - AES-128-CCM - AES-128-GCM - AES-256-GCM - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - - AES-256 - RC4-HMAC - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - - SMB2.1 - SMB3.0 - SMB3.1.1 - - System.String[] - - System.String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzStorageFileServiceProperty - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - - Kerberos - NTLMv2 - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - - AES-128-CCM - AES-128-GCM - AES-256-GCM - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - - AES-256 - RC4-HMAC - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - - SMB2.1 - SMB3.0 - SMB3.1.1 - - System.String[] - - System.String[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - CorsRule - - Specifies CORS rules for the File service. - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - Microsoft.Azure.Commands.Management.Storage.Models.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableShareDeleteRetentionPolicy - - Enable share Delete Retention Policy for the storage account by set to $true, disable share Delete Retention Policy by set to $false. - - System.Boolean - - System.Boolean - - - None - - - EnableSmbMultichannel - - Enable Multichannel by set to $true, disable Multichannel by set to $false. Applies to Premium FileStorage only. - - System.Boolean - - System.Boolean - - - None - - - ResourceGroupName - - Resource Group Name. - - System.String - - System.String - - - None - - - ResourceId - - Input a Storage account Resource Id, or a File service properties Resource Id. - - System.String - - System.String - - - None - - - ShareRetentionDays - - Sets the number of retention days for the share DeleteRetentionPolicy. The value should only be set when enable share Delete Retention Policy. - - System.Int32 - - System.Int32 - - - None - - - SmbAuthenticationMethod - - Gets or sets SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. - - System.String[] - - System.String[] - - - None - - - SmbChannelEncryption - - Gets or sets SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. - - System.String[] - - System.String[] - - - None - - - SmbKerberosTicketEncryption - - Gets or sets kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. - - System.String[] - - System.String[] - - - None - - - SmbProtocolVersion - - Gets or sets SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. - - System.String[] - - System.String[] - - - None - - - StorageAccount - - Storage account object - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - None - - - StorageAccountName - - Storage Account Name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - - - - System.String - - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - - - - - - - - - - - - - ----------- Example 1: Enable File share softdelete ----------- - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableShareDeleteRetentionPolicy $true -ShareRetentionDays 5 - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : False -ProtocolSettings.Smb.Versions : -ProtocolSettings.Smb.AuthenticationMethods : -ProtocolSettings.Smb.KerberosTicketEncryption : -ProtocolSettings.Smb.ChannelEncryption : - - This command enables File share softdelete delete with retention days as 5 - - - - - - -------------- Example 2: Enable Smb Multichannel -------------- - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableSmbMultichannel $true - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : True -ProtocolSettings.Smb.Versions : -ProtocolSettings.Smb.AuthenticationMethods : -ProtocolSettings.Smb.KerberosTicketEncryption : -ProtocolSettings.Smb.ChannelEncryption : - - This command enables Smb Multichannel, only supported on Premium FileStorage account. - - - - - - ------------ Example 3: Updates secure smb settings ------------ - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" ` - -SMBProtocolVersion SMB2.1,SMB3.0,SMB3.1.1 ` - -SMBAuthenticationMethod Kerberos,NTLMv2 ` - -SMBKerberosTicketEncryption RC4-HMAC,AES-256 ` - -SMBChannelEncryption AES-128-CCM,AES-128-GCM,AES-256-GCM - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : True -ProtocolSettings.Smb.Versions : {SMB2.1, SMB3.0, SMB3.1.1} -ProtocolSettings.Smb.AuthenticationMethods : {Kerberos, NTLMv2} -ProtocolSettings.Smb.KerberosTicketEncryption : {RC4-HMAC, AES-256} -ProtocolSettings.Smb.ChannelEncryption : {AES-128-CCM, AES-128-GCM, AES-256-GCM} - - This command updates secure smb settings. - - - - - - ------------- Example 4: Clear secure smb settings ------------- - Update-AzStorageFileServiceProperty -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" ` - -SMBProtocolVersion @() ` - -SMBAuthenticationMethod @() ` - -SMBKerberosTicketEncryption @() ` - -SMBChannelEncryption @() - -StorageAccountName : mystorageaccount -ResourceGroupName : myresourcegroup -ShareDeleteRetentionPolicy.Enabled : True -ShareDeleteRetentionPolicy.Days : 5 -ProtocolSettings.Smb.Multichannel.Enabled : True -ProtocolSettings.Smb.Versions : -ProtocolSettings.Smb.AuthenticationMethods : -ProtocolSettings.Smb.KerberosTicketEncryption : -ProtocolSettings.Smb.ChannelEncryption : - - This command clears secure smb settings. - - - - - - ----------------- Example 5: Update CORS rules ----------------- - $CorsRules = (@{ - AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition"); - ExposedHeaders=@(); - AllowedOrigins=@("*"); - AllowedMethods=@("TRACE","CONNECT")}, - @{ - AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com"); - ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader"); - AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader"); - MaxAgeInSeconds=30; - AllowedMethods=@("PUT")}) - -$property = Update-AzStorageFileServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule $CorsRules -$property.Cors.CorsRulesProperty - -AllowedOrigins : {*} -AllowedMethods : {TRACE, CONNECT} -MaxAgeInSeconds : 0 -ExposedHeaders : {} -AllowedHeaders : {x-ms-blob-content-type, x-ms-blob-content-disposition} - -AllowedOrigins : {http://www.fabrikam.com, http://www.contoso.com} -AllowedMethods : {PUT} -MaxAgeInSeconds : 30 -ExposedHeaders : {x-ms-meta-customheader, x-ms-meta-data*} -AllowedHeaders : {x-ms-meta-customheader, x-ms-meta-target*} - - The first command assigns an array of rules to the $CorsRules variable. This command uses standard extends over several lines in this code block. The second command sets the rules in $CorsRules to the File service of a Storage account. - - - - - - ---------------- Example 6: Clean up CORS rules ---------------- - Update-AzStorageFileServiceProperty -ResourceGroupName myresourcegroup -StorageAccountName mystorageaccount -CorsRule @() - - This command cleans up the CORS rules of a Storage account by inputting @() to parameter CorsRule. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstoragefileserviceproperty - - - - \ No newline at end of file diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll deleted file mode 100644 index c3cfb0a3510e..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml deleted file mode 100644 index 60fa91553e53..000000000000 --- a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml +++ /dev/null @@ -1,48111 +0,0 @@ - - - - - Close-AzStorageFileHandle - Close - AzStorageFileHandle - - Closes file handles of a file share, a file directory or a file. - - - - The Close-AzStorageFileHandle cmdlet closes file handles of a file share, or file directory or a file. - - - - Close-AzStorageFileHandle - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareClient - - ShareClient object indicated the share which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareFileClient - - ShareFileClient object indicated the file to close handle. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - FileHandle - - The File Handle to close. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Close-AzStorageFileHandle - - ShareClient - - ShareClient object indicated the share which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileHandle - - The File Handle to close. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - None - - - PassThru - - Return the count of closed file handles. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloseAll - - Force close all File handles. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FileHandle - - The File Handle to close. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - None - - - PassThru - - Return the count of closed file handles. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder which contains the files/directories to closed handle. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to close handle. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Int32 - - - - - - - - - - - - - - --------- Example 1: Close all file handles on a file --------- - Close-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2/test.txt' -CloseAll - - This command closes all file handles on a file. - - - - - - Example 2: Close all file handles which is opened 1 day ago on a file directory - Get-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2' -Recursive | Where-Object {$_.OpenTime.DateTime.AddDays(1) -lt (Get-Date)} | Close-AzStorageFileHandle -ShareName "mysharename" - - This command lists all file handles on a file directory recursively, filters out the handles which are opened 1 day ago, and then closes them. - - - - - - Example 3: Close all file handles on a file directory recursively and show the closed file handle count - Close-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2' -Recursive -CloseAll -PassThru - -10 - - This command closes all file handles on a file directory and shows the closed file handle count. - - - - - - ------ Example 4: Close all file handles on a file share ------ - Close-AzStorageFileHandle -ShareName "mysharename" -CloseAll -Recursive - - This command closes all file handles on a specific file share recursively. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/close-azstoragefilehandle - - - - - - Copy-AzStorageBlob - Copy - AzStorageBlob - - Copy a blob synchronously. - - - - The Copy-AzStorageBlob cmdlet copies a blob synchronously, currently only support block blob. - - - - Copy-AzStorageBlob - - AbsoluteUri - - Source blob uri - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - - Block - Page - Append - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Copy-AzStorageBlob - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - - Block - Page - Append - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Copy-AzStorageBlob - - SrcBlob - - Blob name - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - - Block - Page - Append - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Source blob uri - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - Context - - Source Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestBlobType - - Destination blob type - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Storage context object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the dest blob. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - SrcBlob - - Blob name - - System.String - - System.String - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ----------- Example 1: Copy a named blob to another ----------- - $destBlob = Copy-AzStorageBlob -SrcContainer "sourcecontainername" -SrcBlob "srcblobname" -DestContainer "destcontainername" -DestBlob "destblobname" - - This command copies a blob from source container to the destination container with a new blob name. - - - - - - ----------- Example 2: Copy blob from a blob object ----------- - $srcBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx -$destBlob = $srcBlob | Copy-AzStorageBlob -DestContainer "destcontainername" -DestBlob "destblobname" - - This command copies a blob from source blob object to the destination container with a new blob name. - - - - - - ------------- Example 3: Copy blob from a blob Uri ------------- - $srcBlobUri = New-AzStorageBlobSASToken -Container $srcContainerName -Blob $srcBlobName -Permission rt -ExpiryTime (Get-Date).AddDays(7) -FullUri -$destBlob = Copy-AzStorageBlob -AbsoluteUri $srcBlobUri -DestContainer "destcontainername" -DestBlob "destblobname" - - The first command creates a blob Uri of the source blob, with sas token of permission "rt". The second command copies from source blob Uri to the destination blob. - - - - - - ------- Example 4: Update a block blob encryption scope ------- - $blob = Copy-AzStorageBlob -SrcContainer $containerName -SrcBlob $blobname -DestContainer $containername -EncryptionScope $newScopeName -Force - - This command update a block blob encryption scope by copy it to itself with a new encryption scope. - - - - - - --------- Example 5: Copy a blob to a new append blob --------- - $srcBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx -$destBlob = Copy-AzStorageBlob -SrcContainer "sourcecontainername" -SrcBlob "srcblobname" -DestContainer "destcontainername" -DestBlob "destblobname" -DestBlobType "Append" -DestContext $destCtx - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/copy-azstorageblob - - - - - - Disable-AzStorageDeleteRetentionPolicy - Disable - AzStorageDeleteRetentionPolicy - - Disable delete retention policy for the Azure Storage Blob service. - - - - The Disable-AzStorageDeleteRetentionPolicy cmdlet disables delete retention policy for the Azure Storage Blob service. - - - - Disable-AzStorageDeleteRetentionPolicy - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Disable delete retention policy for the Blob service - Disable-AzStorageDeleteRetentionPolicy - - This command disables delete retention policy for the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragedeleteretentionpolicy - - - - - - Disable-AzStorageStaticWebsite - Disable - AzStorageStaticWebsite - - Disable static website for the Azure Storage account. - - - - The Disable-AzStorageStaticWebsite cmdlet disables static website for the Azure Storage account. - - - - Disable-AzStorageStaticWebsite - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - {{Fill PassThru Description}} - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties - - - - - - - - - - - - - - Example 1: Disable static website for a Azure Storage account - Disable-AzStorageStaticWebsite - - This command disables static website for a Azure Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/disable-azstoragestaticwebsite - - - - - - Enable-AzStorageDeleteRetentionPolicy - Enable - AzStorageDeleteRetentionPolicy - - Enable delete retention policy for the Azure Storage Blob service. - - - - The Enable-AzStorageDeleteRetentionPolicy cmdlet enables delete retention policy for the Azure Storage Blob service. - - - - Enable-AzStorageDeleteRetentionPolicy - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display DeleteRetentionPolicyProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Sets the number of retention days for the DeleteRetentionPolicy. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy - - - - - - - - - - - - - - Example 1: Enable delete retention policy for the Blob service - Enable-AzStorageDeleteRetentionPolicy -RetentionDays 3 - - This command enables delete retention policy for the Blob service, and set deleted blob retention days to 3. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragedeleteretentionpolicy - - - - - - Enable-AzStorageStaticWebsite - Enable - AzStorageStaticWebsite - - Enable static website for the Azure Storage account. - - - - The Enable-AzStorageStaticWebsite cmdlet enables static website for the Azure Storage account. - - - - Enable-AzStorageStaticWebsite - - IndexDocument - - The name of the index document in each directory. - - System.String - - System.String - - - None - - - ErrorDocument404Path - - The path to the error document that should be shown when a 404 is issued (meaning, when a browser requests a page that does not exist.) - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Display Static Website setting in ServiceProperties. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ErrorDocument404Path - - The path to the error document that should be shown when a 404 is issued (meaning, when a browser requests a page that does not exist.) - - System.String - - System.String - - - None - - - IndexDocument - - The name of the index document in each directory. - - System.String - - System.String - - - None - - - PassThru - - Display Static Website setting in ServiceProperties. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties - - - - - - - - - - - - - - Example 1: Enable static website for the Azure Storage account - Enable-AzStorageStaticWebsite -IndexDocument $indexdoc -ErrorDocument404Path $errordoc - - This command enables static website for the Azure Storage account. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/enable-azstoragestaticwebsite - - - - - - Get-AzDataLakeGen2ChildItem - Get - AzDataLakeGen2ChildItem - - Lists sub directories and files from a directory or filesystem root. - - - - The Get-AzDataLakeGen2ChildItem cmdlet lists sub directorys and files in a directory or Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2ChildItem - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be retrieved. Should be a directory, in the format 'directory1/directory2/'. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FetchProperty - - Fetch the datalake item properties and ACL. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - OutputUserPrincipalName - - If speicify this parameter, the user identity values returned in the owner and group fields of each list entry will be transformed from Microsoft Entra Object IDs to User Principal Names. If not speicify this parameter, the values will be returned as Microsoft Entra Object IDs. Note that group and application Object IDs are not translated because they do not have unique friendly names. - - - System.Management.Automation.SwitchParameter - - - False - - - Recurse - - Indicates if will recursively get the Child Item. The default is false. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FetchProperty - - Fetch the datalake item properties and ACL. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - OutputUserPrincipalName - - If speicify this parameter, the user identity values returned in the owner and group fields of each list entry will be transformed from Microsoft Entra Object IDs to User Principal Names. If not speicify this parameter, the values will be returned as Microsoft Entra Object IDs. Note that group and application Object IDs are not translated because they do not have unique friendly names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - The path in the specified Filesystem that should be retrieved. Should be a directory, in the format 'directory1/directory2/'. - - System.String - - System.String - - - None - - - Recurse - - Indicates if will recursively get the Child Item. The default is false. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - ---- Example 1: List the direct sub items from a Filesystem ---- - Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1 True 2020-03-13 13:07:34Z rwxr-x--- $superuser $superuser -dir2 True 2020-03-23 09:28:36Z rwxr-x--- $superuser $superuser - - This command lists the direct sub items from a Filesystem - - - - - - Example 2: List recursively from a directory, and fetch Properties/ACL - Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Path "dir1/" -Recurse -FetchProperty - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir3 True 2020-03-23 09:34:31Z rwx---rwx $superuser $superuser -dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser -dir1/testfile_1K_0 False 1024 2020-03-23 09:29:21Z rw-r----- $superuser $superuser - - This command lists the direct sub items from a Filesystem - - - - - - Example 3: List items recursively from a Filesystem in multiple batches - $MaxReturn = 1000 -$FileSystemName = "filesystem1" -$Total = 0 -$Token = $Null -do - { - $items = Get-AzDataLakeGen2ChildItem -FileSystem $FileSystemName -Recurse -MaxCount $MaxReturn -ContinuationToken $Token - $Total += $items.Count - if($items.Length -le 0) { Break;} - $Token = $items[$items.Count -1].ContinuationToken; - } - While ($null -ne $Token) -Echo "Total $Total items in Filesystem $FileSystemName" - - This example uses the MaxCount and ContinuationToken parameters to list items recursively from a Filesystem in multiple batches. A small MaxCount can limit the items acount returned from single requst, may help on operation times out error, and limit the memory usage of Powershell. The first four commands assign values to variables to use in the example. The fifth command specifies a Do-While statement that uses the Get-AzDataLakeGen2ChildItem cmdlet to list items. The statement includes the continuation token stored in the $Token variable. $Token changes value as the loop runs. The final command uses the Echo command to display the total. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2childitem - - - - - - Get-AzDataLakeGen2DeletedItem - Get - AzDataLakeGen2DeletedItem - - List all deleted files or directories from a directory or filesystem root. - - - - The Get-AzDataLakeGen2DeletedItem cmdlet lists all deleted files or directories from a directory or filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2DeletedItem - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a directory In the format 'directory1/directory2/', Skip set this parameter to list items from root directory of the Filesystem. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a directory In the format 'directory1/directory2/', Skip set this parameter to list items from root directory of the Filesystem. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - - - - - - - - - - - - Example 1: List all deleted files or directories from a Filesystem - Get-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" - -FileSystem Name: filesystem1 - -Path DeletionId DeletedOn RemainingRetentionDays ----- ---------- --------- ---------------------- -dir0/dir1/file1 132658816156507617 2021-05-19 07:06:55Z 3 -dir0/dir2 132658834541610122 2021-05-19 07:37:34Z 3 -dir0/dir2/file3 132658834534174806 2021-05-19 07:37:33Z 3 - - This command lists all deleted files or directories from a Filesystem. - - - - - - Example 2: List all deleted files or directories from a directory - Get-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" -Path dir0/dir2 - -FileSystem Name: filesystem1 - -Path DeletionId DeletedOn RemainingRetentionDays ----- ---------- --------- ---------------------- -dir0/dir2 132658834541610122 2021-05-19 07:37:34Z 3 -dir0/dir2/file3 132658834534174806 2021-05-19 07:37:33Z 3 - - This command lists all deleted files or directories from a directory. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2deleteditem - - - - - - Get-AzDataLakeGen2Item - Get - AzDataLakeGen2Item - - Gets the details of a file or directory in a filesystem. - - - - The Get-AzDataLakeGen2Item cmdlet gets the details of a file or directory in a Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Path - - The path in the specified Filesystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: Get a directory from a Filesystem, and show the details - $dir1 = Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/" -$dir1 - - FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1 True 2020-03-23 09:15:56Z rwx---rwx $superuser $superuser - -PS C:\WINDOWS\system32> $dir1.ACL - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -False User rwx -False Group --- -False Other rwx - -PS C:\WINDOWS\system32> $dir1.Permissions - -Owner : Execute, Write, Read -Group : None -Other : Execute, Write, Read -StickyBit : False -ExtendedAcls : False - -PS C:\WINDOWS\system32> $dir1.Properties.Metadata - -Key Value ---- ----- -hdi_isfolder true -tag1 value1 -tag2 value2 - -PS C:\WINDOWS\system32> $dir1.Properties - -LastModified : 3/23/2020 9:15:56 AM +00:00 -CreatedOn : 3/23/2020 9:15:56 AM +00:00 -Metadata : {[hdi_isfolder, true], [tag1, value1], [tag2, value2]} -CopyCompletedOn : 1/1/0001 12:00:00 AM +00:00 -CopyStatusDescription : -CopyId : -CopyProgress : -CopySource : -CopyStatus : Pending -IsIncrementalCopy : False -LeaseDuration : Infinite -LeaseState : Available -LeaseStatus : Unlocked -ContentLength : 0 -ContentType : application/octet-stream -ETag : "0x8D7CF0ACBA35FA8" -ContentHash : -ContentEncoding : UDF12 -ContentDisposition : -ContentLanguage : -CacheControl : READ -AcceptRanges : bytes -IsServerEncrypted : True -EncryptionKeySha256 : -AccessTier : Cool -ArchiveStatus : -AccessTierChangedOn : 1/1/0001 12:00:00 AM +00:00 - - This command gets a directory from a Filesystem, and show the details. - - - - - - ----------- Example 2: Get a file from a Filesystem ----------- - Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:20:37Z rwx---rwx $superuser $superuser - - This command gets the details of a file from a Filesystem. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2item - - - - - - Get-AzDataLakeGen2ItemContent - Get - AzDataLakeGen2ItemContent - - Download a file. - - - - The Get-AzDataLakeGen2ItemContent cmdlet download a file in a Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Get-AzDataLakeGen2ItemContent - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - check the md5sum - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Destination local file path. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzDataLakeGen2ItemContent - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - check the md5sum - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Destination local file path. - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to download. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - check the md5sum - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Destination local file path. - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - Force to overwrite the existing blob or file - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to download. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - ---------- Example 1: Download a file without prompt ---------- - Get-AzDataLakeGen2ItemContent -FileSystem "filesystem1" -Path "dir1/file1" -Destination $localDestFile -Force - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser - - This command downloads a file to a local file without prompt. - - - - - - Example 2: Get a file, then pipeline to download the file to a local file - Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" | Get-AzDataLakeGen2ItemContent -Destination $localDestFile - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:29:18Z rwx---rwx $superuser $superuser - - This command first gets a file, then pipeline to download the file to a local file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azdatalakegen2itemcontent - - - - - - Get-AzStorageBlob - Get - AzStorageBlob - - Lists blobs in a container. - - - - The Get-AzStorageBlob cmdlet lists blobs in the specified container in an Azure storage account. - - - - Get-AzStorageBlob - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - - Get-AzStorageBlob - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - - Get-AzStorageBlob - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - - Get-AzStorageBlob - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeVersion - - Blob versions will be listed only if this parameter is present, by default get blob won't include blob versions. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Prefix - - Specifies a prefix for the blob names that you want to get. This parameter does not support using regular expressions or wildcard characters to search. This means that if the container has only blobs named "My", "MyBlob1", and "MyBlob2" and you specify "-Prefix My*", the cmdlet returns no blobs. However, if you specify "-Prefix My", the cmdlet returns "My", "MyBlob1", and "MyBlob2". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - Blob - - Specifies a name or name pattern, which can be used for a wildcard search. If no blob name is specified, the cmdlet lists all the blobs in the specified container. If a value is specified for this parameter, the cmdlet lists all blobs with names that match this parameter. This parameter supports wildcards anywhere in the string. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage account from which you want to get a list of blobs. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. Use this parameter and the MaxCount parameter to list blobs in multiple batches. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include Deleted Blob, by default get blob won't include deleted blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeTag - - Include blob tags, by default get blob won't include blob tags. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeVersion - - Blob versions will be listed only if this parameter is present, by default get blob won't include blob versions. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Prefix - - Specifies a prefix for the blob names that you want to get. This parameter does not support using regular expressions or wildcard characters to search. This means that if the container has only blobs named "My", "MyBlob1", and "MyBlob2" and you specify "-Prefix My*", the cmdlet returns no blobs. However, if you specify "-Prefix My", the cmdlet returns "My", "MyBlob1", and "MyBlob2". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - -------------- Example 1: Get a blob by blob name -------------- - Get-AzStorageBlob -Container "ContainerName" -Blob blob* - - This command uses a blob name and wildcard to get a blob. - - - - - - -- Example 2: Get blobs in a container by using the pipeline -- - Get-AzStorageContainer -Name container* | Get-AzStorageBlob -IncludeDeleted - -Container Uri: https://storageaccountname.blob.core.windows.net/container1 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted ----- -------- ------ ----------- ------------ ---------- ------------ --------- -test1 BlockBlob 403116 application/octet-stream 2017-11-08 07:53:19Z 2017-11-08 08:19:32Z True -test1 BlockBlob 403116 application/octet-stream 2017-11-08 09:00:29Z True -test2 BlockBlob 403116 application/octet-stream 2017-11-08 07:53:00Z False - - This command uses the pipeline to get all blobs (include blobs in Deleted status) in a container. - - - - - - ------------- Example 3: Get blobs by name prefix ------------- - Get-AzStorageBlob -Container "ContainerName" -Prefix "blob" - - This command uses a name prefix to get blobs. - - - - - - ---------- Example 4: List blobs in multiple batches ---------- - $MaxReturn = 10000 -$ContainerName = "abc" -$Total = 0 -$Token = $Null -do - { - $Blobs = Get-AzStorageBlob -Container $ContainerName -MaxCount $MaxReturn -ContinuationToken $Token - $Total += $Blobs.Count - if($Blobs.Length -le 0) { Break;} - $Token = $Blobs[$blobs.Count -1].ContinuationToken; - } - While ($null -ne $Token) -Echo "Total $Total blobs in container $ContainerName" - - This example uses the MaxCount and ContinuationToken parameters to list Azure Storage blobs in multiple batches. The first four commands assign values to variables to use in the example. The fifth command specifies a Do-While statement that uses the Get-AzStorageBlob cmdlet to get blobs. The statement includes the continuation token stored in the $Token variable. $Token changes value as the loop runs. For more information, type `Get-Help About_Do`. The final command uses the Echo command to display the total. - - - - - - - Example 5: Get all blobs in a container include blob version - - Get-AzStorageBlob -Container "containername" -IncludeVersion - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot False 2020-07-06T06:56:06.2432658Z -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot 2020-07-06T06:56:06.8588431Z False -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot False 2020-07-06T06:56:06.8598431Z * -blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:16Z Hot False 2020-07-03T16:19:16.2883167Z -blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:35Z Hot False 2020-07-03T16:19:35.2381110Z * - - This command gets all blobs in a container include blob version. - - - - - - ------------- Example 6: Get a single blob version ------------- - Get-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "2020-07-03T16:19:16.2883167Z" - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob2 BlockBlob 2097152 application/octet-stream 2020-07-03 16:19:16Z Hot False 2020-07-03T16:19:16.2883167Z - - This command gets a single blobs verion with VersionId. - - - - - - ------------ Example 7: Get a single blob snapshot ------------ - Get-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime "2020-07-06T06:56:06.8588431Z" - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -blob1 BlockBlob 2097152 application/octet-stream 2020-07-06 06:56:06Z Hot 2020-07-06T06:56:06.8588431Z False - - This command gets a single blobs snapshot with SnapshotTime. - - - - - - ------------ Example 8: Get blob include blob tags ------------ - $blobs = Get-AzStorageBlob -Container "containername" -IncludeTag - -$blobs - - AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * -testblob2 BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:04Z Hot False 2020-07-23T09:35:04.0856187Z * - - -$blobs[0].Tags -Name Value ----- ----- -tag1 value1 -tag2 value2 - - This command lists blobs from a container with blob tags, and show the tags of the first blob. - - - - - - ----- Example 9: Get a single blob with blob tag condition ----- - Get-AzStorageBlob -Container "containername" -Blob testblob -TagCondition """tag1""='value1'" - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * - - This command gets a single blob with blob tag condition. The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. - - - - - - Example 10: Get blob properties (example: ImmutabilityPolicy) of a single blob - $blobProperties = (Get-AzStorageBlob -Container "ContainerName" -Blob "blob" -Context $ctx).BlobProperties -$blobProperties.ImmutabilityPolicy - -ExpiresOn PolicyMode ---------- ---------- -9/17/2024 2:49:32 AM +00:00 Unlocked - - This example command gets the immutability property of a single blob. You can get a detailed list of blob prTooperties from the BlobProperties property, including but not limited to: LastModified, ContentLength, ContentHash, BlobType, LeaseState, AccessTier, ETag, ImmutabilityPolicy, etc... To list multiple blobs (execute the cmdlet without blob name), use ListBlobProperties.Properties instead of BlobProperties for better performance. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblob - - - Get-AzStorageBlobContent - - - - Remove-AzStorageBlob - - - - Set-AzStorageBlobContent - - - - - - - Get-AzStorageBlobByTag - Get - AzStorageBlobByTag - - Lists blobs in a storage account across containers, with a blob tag filter sql expression. - - - - The Get-AzStorageBlobByTag cmdlet lists blobs in a storage account across containers, with a blob tag filter sql expression. - - - - Get-AzStorageBlobByTag - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name, specify this parameter to only return all blobs whose tags match a search expression in the container. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetBlobProperty - - As the blobs get by tag don't contain blob proeprties, specify tis parameter to get blob properties with an additional request on each blob. - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagFilterSqlExpression - - Filters the result set to only include blobs whose tags match the specified expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags#remarks. - - System.String - - System.String - - - None - - - - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name, specify this parameter to only return all blobs whose tags match a search expression in the container. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - GetBlobProperty - - As the blobs get by tag don't contain blob proeprties, specify tis parameter to get blob properties with an additional request on each blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - The max count of the blobs that can return. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagFilterSqlExpression - - Filters the result set to only include blobs whose tags match the specified expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags#remarks. - - System.String - - System.String - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - Example 1: List all blobs match a specific blob tag, across containers. - Get-AzStorageBlobByTag -TagFilterSqlExpression """tag1""='value1'" -Context $ctx - -AccountName: storageaccountname, ContainerName: containername1 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob False -testblob2 False - - AccountName: storageaccountname, ContainerName: containername2 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob3 False -testblob4 False - - This command lists all blobs in a storage account, which contains a tag with name "tag1" and value "value1". - - - - - - Example 2: List blobs in a specific container and match a specific blob tag - Get-AzStorageBlobByTag -Container 'containername' -TagFilterSqlExpression """tag1""='value1'" -Context $ctx - -AccountName: storageaccountname, ContainerName: containername - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -test1 False -test2 False - - This command lists blobs in a container and match a specific blob tag. - - - - - - Example 3: List all blobs match a specific blob tag, across containers, and get the blob properties. - Get-AzStorageBlobByTag -TagFilterSqlExpression """tag1""='value1'" -GetBlobProperty - -AccountName: storageaccountname, ContainerName: containername1 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 2097152 application/octet-stream 2020-07-23 09:35:02Z Hot False 2020-07-23T09:35:02.8527357Z * -testblob2 BlockBlob 1048012 application/octet-stream 2020-07-23 09:35:05Z Hot False 2020-07-23T09:35:05.2504530Z * - - AccountName: storageaccountname, ContainerName: containername2 - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob3 BlockBlob 100 application/octet-stream 2020-07-01 09:55:14Z Hot False 2020-07-01T09:55:14.6507341Z * -testblob4 BlockBlob 2024 application/octet-stream 2020-07-01 09:42:11Z Hot False 2020-07-01T09:42:11.4283807Z * - - This command lists all blobs in a storage account, which contains a tag with name "tag1" and value "value1", and get the blob properties. Please note, to get blob properties with parameter -GetBlobProperty, each blob will need an addtional request, so the cmdlet runs show when there are many blobs. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobbytag - - - - - - Get-AzStorageBlobContent - Get - AzStorageBlobContent - - Downloads a storage blob. - - - - The Get-AzStorageBlobContent cmdlet downloads the specified storage blob. If the blob name is not valid for the local computer, this cmdlet automatically resolves it if it is possible. - - - - Get-AzStorageBlobContent - - AbsoluteUri - - Blob uri to download from. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobContent - - Blob - - Specifies the name of the blob to be downloaded. - - System.String - - System.String - - - None - - - Container - - Specifies the name of container that has the blob you want to download. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobContent - - Blob - - Specifies the name of the blob to be downloaded. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure storage client library. You can create it or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobContent - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Blob uri to download from. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of the blob to be downloaded. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure storage client library. You can create it or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of container that has the blob you want to download. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage account from which you want to download blob content. You can use the New-AzStorageContext cmdlet to create a storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the location to store the downloaded file. - - System.String - - System.String - - - None - - - Force - - Overwrites an existing file without confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - * If the blob name is invalid for local computer, this cmdlet autoresolves it, if it is possible. - - - - - ----------- Example 1: Download blob content by name ----------- - Get-AzStorageBlobContent -Container "ContainerName" -Blob "Blob" -Destination "C:\test\" - - This command downloads a blob by name. - - - - - - ----- Example 2: Download blob content using the pipeline ----- - Get-AzStorageBlob -Container containername -Blob blobname | Get-AzStorageBlobContent - - This command uses the pipeline to find and download blob content. - - - - - - Example 3: Download blob content using the pipeline and a wildcard character - Get-AzStorageContainer container* | Get-AzStorageBlobContent -Blob "cbox.exe" -Destination "C:\test" - - This example uses the asterisk wildcard character and the pipeline to find and download blob content. - - - - - - Example 4: Get a blob object and save it in a variable, then download blob content with the blob object - $blob = Get-AzStorageBlob -Container containername -Blob blobname -Get-AzStorageBlobContent -CloudBlob $blob.ICloudBlob -Destination "C:\test" - - This example first get a blob object and save it in a variable, then download blob content with the blob object. - - - - - - ------- Example 5: Download a blob content with blob Uri ------- - Get-AzStorageBlobContent -Uri $blobUri -Destination "C:\test" -Force - - This example will download a blob content with Uri, the Uri can be a Uri with Sas token. If the blob is on a managed disk account, and server requires a bearer token besides Sas Uri to download, the cmdlet will try to generate a bearer token with server returned audience and the login AAD user credentail, then download blob with both Sas Uri and bearer token. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobcontent - - - Set-AzStorageBlobContent - - - - Get-AzStorageBlob - - - - Remove-AzStorageBlob - - - - - - - Get-AzStorageBlobCopyState - Get - AzStorageBlobCopyState - - Gets the copy status of an Azure Storage blob. - - - - The Get-AzStorageBlobCopyState cmdlet gets the copy status of an Azure Storage blob. It should run on the copy destination blob. - - - - Get-AzStorageBlobCopyState - - Blob - - Specifies the name of a blob. This cmdlet gets the state of the blob copy operation for the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - Container - - Specifies the name of a container. This cmdlet gets the copy status for a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobCopyState - - Blob - - Specifies the name of a blob. This cmdlet gets the state of the blob copy operation for the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet gets the copy status of a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobCopyState - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the name of a blob. This cmdlet gets the state of the blob copy operation for the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet gets the copy status of a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of a container. This cmdlet gets the copy status for a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Blob.CopyState - - - - - - - - - - - - - - ----------- Example 1: Get the copy status of a blob ----------- - Get-AzStorageBlobCopyState -Blob "ContosoPlanning2015" -Container "ContosoUploads" - - This command gets the copy status of the blob named ContosoPlanning2015 in the container ContosoUploads. - - - - - - Example 2: Get the copy status for of a blob by using the pipeline - Get-AzStorageBlob -Blob "ContosoPlanning2015" -Container "ContosoUploads" | Get-AzStorageBlobCopyState - - This command gets the blob named ContosoPlanning2015 in the container named ContosoUploads by using the Get-AzStorageBlob cmdlet, and then passes the result to the current cmdlet by using the pipeline operator. The Get-AzStorageBlobCopyState cmdlet gets the copy status for that blob. - - - - - - Example 3: Get the copy status for a blob in a container by using the pipeline - Get-AzStorageContainer -Name "ContosoUploads" | Get-AzStorageBlobCopyState -Blob "ContosoPlanning2015" - - This command gets the container named by using the Get-AzStorageBlob cmdlet, and then passes the result to the current cmdlet. The Get-AzStorageContainer cmdlet gets the copy status for the blob named ContosoPlanning2015 in that container. - - - - - - -- Example 4: Start Copy and pipeline to get the copy status -- - $destBlob = Start-AzStorageBlobCopy -SrcContainer "contosouploads" -SrcBlob "ContosoPlanning2015" -DestContainer "contosouploads2" -DestBlob "ContosoPlanning2015_copy" - -$destBlob | Get-AzStorageBlobCopyState - - The first command starts copy blob "ContosoPlanning2015" to "ContosoPlanning2015_copy", and output the destiantion blob object. The second command pipeline the destiantion blob object to Get-AzStorageBlobCopyState, to get blob copy state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobcopystate - - - Start-AzStorageBlobCopy - - - - Stop-AzStorageBlobCopy - - - - - - - Get-AzStorageBlobQueryResult - Get - AzStorageBlobQueryResult - - Applies a simple Structured Query Language (SQL) statement on a blob's contents and save only the queried subset of the data to a local file. - - - - The Get-AzStorageBlobQueryResult cmdlet applies a simple Structured Query Language (SQL) statement on a blob's contents and save the queried subset of the data to a local file. - - - - Get-AzStorageBlobQueryResult - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobQueryResult - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobContainerClient - - BlobContainerClient Object - - Azure.Storage.Blobs.BlobContainerClient - - Azure.Storage.Blobs.BlobContainerClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobQueryResult - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - BlobContainerClient - - BlobContainerClient Object - - Azure.Storage.Blobs.BlobContainerClient - - Azure.Storage.Blobs.BlobContainerClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputTextConfiguration - - The configuration used to handled the query input text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - OutputTextConfiguration - - The configuration used to handled the query output text. Create configuration object the with New-AzStorageBlobQueryConfig. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - None - - - PassThru - - Return whether the specified blob is successfully queried. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - QueryString - - Query string, see more details in: https://learn.microsoft.com/azure/storage/blobs/query-acceleration-sql-reference - - System.String - - System.String - - - None - - - ResultFile - - Local file path to save the query result. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Azure.Storage.Blobs.BlobContainerClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ------------------- Example 1: Query a blob ------------------- - $inputconfig = New-AzStorageBlobQueryConfig -AsCsv -HasHeader - -$outputconfig = New-AzStorageBlobQueryConfig -AsJson - -$queryString = "SELECT * FROM BlobStorage WHERE Name = 'a'" - -$result = Get-AzStorageBlobQueryResult -Container $containerName -Blob $blobName -QueryString $queryString -ResultFile "c:\resultfile.json" -InputTextConfiguration $inputconfig -OutputTextConfiguration $outputconfig -Context $ctx - -$result - -BytesScanned FailureCount BlobQueryError ------------- ------------ -------------- - 449 0 - - This command querys a blob succsssfully with input config as csv, and output config as json, and save the output to local file "c:\resultfile.json". - - - - - - --------------- Example 2: Query a blob snapshot --------------- - $blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -SnapshotTime "2020-07-29T11:08:21.1097874Z" -Context $ctx - -$inputconfig = New-AzStorageBlobQueryConfig -AsCsv -ColumnSeparator "," -QuotationCharacter """" -EscapeCharacter "\" -RecordSeparator "`n" -HasHeader - -$outputconfig = New-AzStorageBlobQueryConfig -AsJson -RecordSeparator "`n" - -$queryString = "SELECT * FROM BlobStorage WHERE _1 LIKE '1%%'" - -$result = $blob | Get-AzStorageBlobQueryResult -QueryString $queryString -ResultFile $localFilePath -InputTextConfiguration $inputconfig -OutputTextConfiguration $outputconfig - -$result - -BytesScanned FailureCount BlobQueryError ------------- ------------ -------------- - 187064971 1 {ParseError} - - - -$result.BlobQueryError - -Name Description IsFatal Position ----- ----------- ------- -------- -ParseError Unexpected token '1' at [byte: 3077737]. Expecting token ','. True 7270632 - - This command first gets a blob object for blob snapshot, then queries the blob snapshot and show the result include query error. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/get-azstorageblobqueryresult - - - - - - Get-AzStorageBlobTag - Get - AzStorageBlobTag - - Get blob tags of a specific blob. - - - - The Get-AzStorageBlobTag gets blob tags of a specific blob. - - - - Get-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageBlobTag - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Collections.Hashtable - - - - - - - - - - - - - - --------- Example 1: Get blob tags on a specific blob --------- - Get-AzStorageBlobTag -Container "containername" -Blob testblob - -Name Value ----- ----- -tag1 value1 -tag2 value2 - - This command gets blob tags on a specific blob. - - - - - - Example 2: Get blob tags on a specific blob with tag condition - Get-AzStorageBlobTag -Container "containername" -Blob testblob -TagCondition """tag1""='value1'" - -Name Value ----- ----- -tag1 value1 -tag2 value2 - - This command gets blob tags on a specific blob with tag condition. The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageblobtag - - - - - - Get-AzStorageContainer - Get - AzStorageContainer - - Lists the storage containers. - - - - The Get-AzStorageContainer cmdlet lists the storage containers associated with the storage account in Azure. - - - - Get-AzStorageContainer - - Name - - Specifies the container name. If container name is empty, the cmdlet lists all the containers. Otherwise, it lists all containers that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. The container permissions won't be retrieved when you use a storage context created from SAS Token, because query container permissions requires Storage account key permission. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageContainer - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. The container permissions won't be retrieved when you use a storage context created from SAS Token, because query container permissions requires Storage account key permission. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Prefix - - Specifies a prefix used in the name of the container or containers you want to get. You can use this to find all containers that start with the same string, such as "my" or "test". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. The container permissions won't be retrieved when you use a storage context created from SAS Token, because query container permissions requires Storage account key permission. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Specifies a continuation token for the blob list. - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - Microsoft.Azure.Storage.Blob.BlobContinuationToken - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted containers, by default list containers won't include deleted containers - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - MaxCount - - Specifies the maximum number of objects that this cmdlet returns. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Name - - Specifies the container name. If container name is empty, the cmdlet lists all the containers. Otherwise, it lists all containers that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - Prefix - - Specifies a prefix used in the name of the container or containers you want to get. You can use this to find all containers that start with the same string, such as "my" or "test". - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - - - - - - - - - - -------- Example 1: Get Azure Storage container by name -------- - Get-AzStorageContainer -Name container* - - This example uses a wildcard character to return a list of all containers with a name that starts with container. - - - - - - Example 2: Get Azure Storage container by container name prefix - Get-AzStorageContainer -Prefix "container" - - This example uses the Prefix parameter to return a list of all containers with a name that starts with container. - - - - - - Example 3: List Azure Storage container, include deleted containers - $containers = Get-AzStorageContainer -IncludeDeleted -Context $ctx - -$containers - - Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -testcon Off 8/28/2020 10:18:13 AM +00:00 -testcon2 9/4/2020 12:52:37 PM +00:00 True 01D67D248986B6DA - -$c[1].BlobContainerProperties - -LastModified : 9/4/2020 12:52:37 PM +00:00 -LeaseStatus : Unlocked -LeaseState : Expired -LeaseDuration : -PublicAccess : -HasImmutabilityPolicy : False -HasLegalHold : False -DefaultEncryptionScope : $account-encryption-key -PreventEncryptionScopeOverride : False -DeletedOn : 9/8/2020 4:29:59 AM +00:00 -RemainingRetentionDays : 299 -ETag : "0x8D850D167059285" -Metadata : {} - - This example lists all containers of a storage account, include deleted containers. Then show the deleted container properties, include : DeletedOn, RemainingRetentionDays. Deleted containers will only exist after enabled Container softdelete with Enable-AzStorageBlobDeleteRetentionPolicy. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragecontainer - - - New-AzStorageContainer - - - - Remove-AzStorageContainer - - - - Set-AzStorageContainerAcl - - - - - - - Get-AzStorageContainerStoredAccessPolicy - Get - AzStorageContainerStoredAccessPolicy - - Gets the stored access policy or policies for an Azure storage container. - - - - The Get-AzStorageContainerStoredAccessPolicy cmdlet lists the stored access policy or policies for an Azure storage container. - - - - Get-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the name of your Azure storage container. - - System.String - - System.String - - - None - - - Policy - - Specifies the Azure stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of your Azure storage container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies the Azure stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Blob.SharedAccessBlobPolicy - - - - - - - - - - - - - - - Example 1: Get a stored access policy in a storage container - - Get-AzStorageContainerStoredAccessPolicy -Container "Container07" -Policy "Policy22" - - This command gets the access policy named Policy22 in the storage container named Container07. - - - - - - Example 2: Get all the stored access policies in a storage container - Get-AzStorageContainerStoredAccessPolicy -Container "Container07" - - This command gets all access policies in the storage container named Container07. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragecontainerstoredaccesspolicy - - - New-AzStorageContainerStoredAccessPolicy - - - - Remove-AzStorageContainerStoredAccessPolicy - - - - Set-AzStorageContainerStoredAccessPolicy - - - - - - - Get-AzStorageCORSRule - Get - AzStorageCORSRule - - Gets CORS rules for a Storage service type. - - - - The Get-AzStorageCORSRule cmdlet gets Cross-Origin Resource Sharing (CORS) rules for an Azure Storage service type. - - - - Get-AzStorageCORSRule - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet gets CORS rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet gets CORS rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule - - - - - - - - - - - - - - ---------- Example 1: Get CORS rules of blob service ---------- - Get-AzStorageCORSRule -ServiceType Blob - - This command gets the CORS rules for the Blob service type. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragecorsrule - - - Remove-AzStorageCORSRule - - - - Set-AzStorageCORSRule - - - - - - - Get-AzStorageFile - Get - AzStorageFile - - Lists directories and files for a path. - - - - The Get-AzStorageFile cmdlet lists directories and files for the share or directory that you specify. Specify the Path parameter to get an instance of a directory or file in the specified path. This cmdlet returns AzureStorageFile and AzureStorageDirectory objects. You can use the IsDirectory property to distinguish between folders and files. - - - - Get-AzStorageFile - - ShareName - - Specifies the name of the file share. This cmdlet gets a file or directory from the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageFile - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageFile - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client side time-out interval, in seconds, for one service request. If the previous call fails within the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help mitigate network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a Storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ExcludeExtendedInfo - - Not include extended file info like timestamps, ETag, attributes, permissionKey in list file and Directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a folder. If you omit the Path parameter, Get-AzStorageFile lists the directories and files in the specified file share or directory. If you include the Path parameter, Get-AzStorageFile returns an instance of a directory or file in the specified path. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the service-side timeout interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the Storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet gets a file or directory from the file share that this parameter specifies. - - System.String - - System.String - - - None - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - ------------ Example 1: List directories in a share ------------ - Get-AzStorageFile -ShareName "ContosoShare06" | Where-Object {$_.GetType().Name -eq "AzureStorageFileDirectory"} - - This command lists only the directories in the share ContosoShare06. It first retrieves both files and directories, passes them to the where operator by using the pipeline operator, then discards any objects whose type is not "AzureStorageFileDirectory". - - - - - - --------------- Example 2: List a File Directory --------------- - Get-AzStorageFile -ShareName "ContosoShare06" -Path "ContosoWorkingFolder" | Get-AzStorageFile - - This command lists the files and folders in the directory ContosoWorkingFolder under the share ContosoShare06. It first gets the directory instance, and then pipelines it to the Get-AzStorageFile cmdlet to list the directory. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefile - - - Get-AzStorageFileContent - - - - New-AzStorageDirectory - - - - Remove-AzStorageDirectory - - - - Remove-AzStorageFile - - - - Set-AzStorageFileContent - - - - - - - Get-AzStorageFileContent - Get - AzStorageFileContent - - Downloads the contents of a file. - - - - The Get-AzStorageFileContent cmdlet downloads the contents of a file, and then saves it to a destination that you specify. This cmdlet does not return the contents of the file. - - - - Get-AzStorageFileContent - - ShareName - - Specifies the name of the file share. This cmdlet downloads the contents of the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileContent - - ShareClient - - ShareClient object indicated the share where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileContent - - ShareDirectoryClient - - ShareDirectoryClient object indicated the cloud directory where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileContent - - ShareFileClient - - ShareFileClient object indicated the cloud file to be downloaded. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - CheckMd5 - - Specifies whether to check the Md5 sum for the downloaded file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Destination - - Specifies the destination path. This cmdlet downloads the file contents to the location that this parameter specifies. If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.String - - System.String - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - If you specify the path of a file that does not exist, this cmdlet creates that file, and saves the contents in the new file. If you specify a path of a file that already exists and you specify the Force parameter, the cmdlet overwrites the file. If you specify a path of an existing file and you do not specify Force , the cmdlet prompts you before it continues. If you specify the path of a folder, this cmdlet attempts to create a file that has the name of the Azure storage file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it downloads. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a file. This cmdlet gets the contents the file that this parameter specifies. If the file does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the cloud directory where the file would be downloaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the cloud file to be downloaded. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet downloads the contents of the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - ----------- Example 1: Download a file from a folder ----------- - Get-AzStorageFileContent -ShareName "ContosoShare06" -Path "ContosoWorkingFolder/CurrentDataFile" - - This command downloads a file that is named CurrentDataFile in the folder ContosoWorkingFolder from the file share ContosoShare06 to current folder. - - - - - - ---- Example 2: Downloads the files under sample file share ---- - Get-AzStorageFile -ShareName sample | Where-Object {$_.GetType().Name -eq "AzureStorageFile"} | Get-AzStorageFileContent - - This example downloads the files under sample file share - - - - - - Example 3: Download an Azure file to a local file, and perserve the Azure File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the local file. - Get-AzStorageFileContent -ShareName sample -Path "dir1/file1" -Destination $localFilePath -PreserveSMBAttribute - - This example downloads an Azure file to a local file, and perserves the Azure File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the local file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefilecontent - - - Get-AzStorageFile - - - - Set-AzStorageFileContent - - - - - - - Get-AzStorageFileCopyState - Get - AzStorageFileCopyState - - Gets the state of a copy operation. - - - - The Get-AzStorageFileCopyState cmdlet gets the state of an Azure Storage file copy operation. It should run on the copy destination file. - - - - Get-AzStorageFileCopyState - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - FilePath - - Specifies the path of the file relative to an Azure Storage share. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - Get-AzStorageFileCopyState - - ShareFileClient - - ShareFileClient object indicated the file to get copy status. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FilePath - - Specifies the path of the file relative to an Azure Storage share. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to get copy status. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - WaitForComplete - - Indicates that this cmdlet waits for the copy to finish. If you do not specify this parameter, this cmdlet returns a result immediately. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Common.PSCopyState - - - - - - - - - - - - - - ---------- Example 1: Get the copy state by file name ---------- - Get-AzStorageFileCopyState -ShareName "ContosoShare" -FilePath "ContosoFile" - - This command gets the state of the copy operation for a file that has the specified name. - - - - - - -- Example 2: Start Copy and pipeline to get the copy status -- - $destfile = Start-AzStorageFileCopy -SrcShareName "contososhare" -SrcFilePath "contosofile" -DestShareName "contososhare2" -destfilepath "contosofile_copy" - -$destfile | Get-AzStorageFileCopyState - - The first command starts copy file "contosofile" to "contosofile_copy", and output the destiantion file object. The second command pipeline the destiantion file object to Get-AzStorageFileCopyState, to get file copy state. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefilecopystate - - - Get-AzStorageFile - - - - New-AzStorageContext - - - - Start-AzStorageFileCopy - - - - Stop-AzStorageFileCopy - - - - - - - Get-AzStorageFileHandle - Get - AzStorageFileHandle - - Lists file handles of a file share, a file directory or a file. - - - - The Get-AzStorageFileHandle cmdlet lists file handles of a file share, or file directory or a file. - - - - Get-AzStorageFileHandle - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - Get-AzStorageFileHandle - - ShareClient - - ShareClient object indicated the share where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - Get-AzStorageFileHandle - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - Get-AzStorageFileHandle - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to list File Handles. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Path to an existing file/directory. - - System.String - - System.String - - - None - - - Recursive - - List handles Recursively. Only works on File Directory. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would list File Handles - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to list File Handles. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Name of the file share where the files/directories would be listed. - - System.String - - System.String - - - None - - - IncludeTotalCount - - Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns 'Unknown total count'. Currently, this parameter does nothing. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Skip - - Ignores the first 'n' objects and then gets the remaining objects. - - System.UInt64 - - System.UInt64 - - - None - - - First - - Gets only the first 'n' objects. - - System.UInt64 - - System.UInt64 - - - None - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - - - - - - - - - - - - Example 1: List all file handles on a file share recursively, and sort by ClientIp and OpenTime - Get-AzStorageFileHandle -ShareName "mysharename" -Recursive | Sort-Object ClientIP,OpenTime - -HandleId Path ClientIp ClientPort OpenTime LastReconnectTime FileId ParentId SessionId ClientName --------- ---- -------- ---------- -------- ----------------- ------ -------- --------- ---------- -28506980357 104.46.105.229 49805 2019-07-29 08:37:36Z 0 0 9297571480349046273 myclientvm -28506980537 dir1 104.46.105.229 49805 2019-07-30 09:28:48Z 10376363910205800448 0 9297571480349046273 myclientvm -28506980538 dir1 104.46.105.229 49805 2019-07-30 09:28:48Z 10376363910205800448 0 9297571480349046273 myclientvm -28582543365 104.46.119.170 51675 2019-07-30 09:29:32Z 0 0 9477733061320772929 myclientvm -28582543375 dir1 104.46.119.170 51675 2019-07-30 09:29:38Z 10376363910205800448 0 9477733061320772929 myclientvm -28582543376 dir1 104.46.119.170 51675 2019-07-30 09:29:38Z 10376363910205800448 0 9477733061320772929 myclientvm - - This command lists file handles on a file share, and sort the output by ClientIp, then by OpenTime. - - - - - - Example 2: List first 2 file handles on a file directory recursively - Get-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2' -Recursive -First 2 - -HandleId Path ClientIp ClientPort OpenTime LastReconnectTime FileId ParentId SessionId ClientName --------- ---- -------- ---------- -------- ----------------- ------ -------- --------- ---------- -24057151779 dir1/dir2 104.46.105.229 50861 2019-06-18 07:39:23Z 16140971433240035328 11529285414812647424 9549812641162070049 myclientvm -24057151780 dir1/dir2 104.46.105.229 50861 2019-06-18 07:39:23Z 16140971433240035328 11529285414812647424 9549812641162070049 myclientvm - - This command lists first 2 file handles on a file directory recursively . - - - - - - -- Example 3: List the 3rd to the 6th file handles on a file -- - Get-AzStorageFileHandle -ShareName "mysharename" -Path 'dir1/dir2/test.txt' -skip 2 -First 4 - -HandleId Path ClientIp ClientPort OpenTime LastReconnectTime FileId ParentId SessionId ClientName --------- ---- -------- ---------- -------- ----------------- ------ -------- --------- ---------- -24055513248 dir1/dir2/test.txt 104.46.105.229 49817 2019-06-18 08:21:59Z 9223407221226864640 16140971433240035328 9338416139169958321 myclientvm -24055513249 dir1/dir2/test.txt 104.46.105.229 49817 2019-06-18 08:21:59Z 9223407221226864640 16140971433240035328 9338416139169958321 myclientvm -24055513252 dir1/dir2/test.txt 104.46.105.229 49964 2019-06-18 08:22:54Z 9223407221226864640 16140971433240035328 9338416138431762125 myclientvm -24055513253 dir1/dir2/test.txt 104.46.105.229 49964 2019-06-18 08:22:54Z 9223407221226864640 16140971433240035328 9338416138431762125 myclientvm - - This command lists the 3rd to the 6th file handles on a file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragefilehandle - - - - - - Get-AzStorageQueue - Get - AzStorageQueue - - Lists storage queues. - - - - The Get-AzStorageQueue cmdlet lists storage queues associated with an Azure Storage account. - - - - Get-AzStorageQueue - - Name - - Specifies a name. If no name is specified, the cmdlet gets a list of all the queues. If a full or partial name is specified, the cmdlet gets all queues that match the name pattern. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageQueue - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Prefix - - Specifies a prefix used in the name of the queues you want to get. - - System.String - - System.String - - - None - - - - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name. If no name is specified, the cmdlet gets a list of all the queues. If a full or partial name is specified, the cmdlet gets all queues that match the name pattern. - - System.String - - System.String - - - None - - - Prefix - - Specifies a prefix used in the name of the queues you want to get. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - - - - - - - - - - - - - ----------- Example 1: List all Azure Storage queues ----------- - Get-AzStorageQueue - - This command gets a list of all storage queues for the current Storage account. - - - - - - Example 2: List Azure Storage queues using a wildcard character - Get-AzStorageQueue -Name queue* - - This command uses a wildcard character to get a list of storage queues whose name starts with queue. - - - - - - - Example 3: List Azure Storage queues using queue name prefix - - Get-AzStorageQueue -Prefix "queue" - - This example uses the Prefix parameter to get a list of storage queues whose name starts with queue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragequeue - - - New-AzStorageQueue - - - - Remove-AzStorageQueue - - - - - - - Get-AzStorageQueueStoredAccessPolicy - Get - AzStorageQueueStoredAccessPolicy - - Gets the stored access policy or policies for an Azure storage queue. - - - - The Get-AzStorageQueueStoredAccessPolicy cmdlet lists the stored access policy or policies for an Azure storage queue. - - - - Get-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Management.Automation.PSObject - - - - - - - - - - - - - - ------ Example 1: Get a stored access policy in the queue ------ - Get-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy12" - - This command gets the access policy named Policy12 in the storage queue named MyQueue. - - - - - - ---- Example 2: Get all stored access policies in the queue ---- - Get-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" - - This command gets all stored access policies in the queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragequeuestoredaccesspolicy - - - New-AzStorageQueueStoredAccessPolicy - - - - Remove-AzStorageQueueStoredAccessPolicy - - - - Set-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageContext - - - - - - - Get-AzStorageServiceLoggingProperty - Get - AzStorageServiceLoggingProperty - - Gets logging properties for Azure Storage services. - - - - The Get-AzStorageServiceLoggingProperty cmdlet gets logging properties for Azure Storage services. - - - - Get-AzStorageServiceLoggingProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - - - - - - - - - - - - - ---- Example 1: Get logging properties for the Blob service ---- - Get-AzStorageServiceLoggingProperty -ServiceType Blob - - This command gets logging properties for blob storage. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageserviceloggingproperty - - - New-AzStorageContext - - - - Set-AzStorageServiceLoggingProperty - - - - - - - Get-AzStorageServiceMetricsProperty - Get - AzStorageServiceMetricsProperty - - Gets metrics properties for the Azure Storage service. - - - - The Get-AzStorageServiceMetricsProperty cmdlet gets metrics properties for the Azure Storage service. - - - - Get-AzStorageServiceMetricsProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the metrics properties for the type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet gets the Azure Storage service metrics properties for the metrics type that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - - Hour - Minute - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet gets the Azure Storage service metrics properties for the metrics type that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet gets the metrics properties for the type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - - - - - - - - - - - - - ---- Example 1: Get metrics properties for the Blob service ---- - Get-AzStorageServiceMetricsProperty -ServiceType Blob -MetricsType Hour - - This command gets metrics properties for blob storage for the Hour metrics type. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageservicemetricsproperty - - - New-AzStorageContext - - - - Set-AzStorageServiceMetricsProperty - - - - - - - Get-AzStorageServiceProperty - Get - AzStorageServiceProperty - - Gets properties for Azure Storage services. - - - - The Get-AzStorageServiceProperty cmdlet gets the properties for Azure Storage services. - - - - Get-AzStorageServiceProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - - - - - - - - - - - - - Example 1: Get Azure Storage services property of the Blob service - Get-AzStorageServiceProperty -ServiceType Blob - -Logging.Version : 1.0 -Logging.LoggingOperations : None -Logging.RetentionDays : -HourMetrics.Version : 1.0 -HourMetrics.MetricsLevel : ServiceAndApi -HourMetrics.RetentionDays : 7 -MinuteMetrics.Version : 1.0 -MinuteMetrics.MetricsLevel : None -MinuteMetrics.RetentionDays : -DeleteRetentionPolicy.Enabled : True -DeleteRetentionPolicy.RetentionDays : 70 -Cors : -DefaultServiceVersion : 2017-07-29 - - This command gets DefaultServiceVersion property of the Blob service. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageserviceproperty - - - - - - Get-AzStorageShare - Get - AzStorageShare - - Gets a list of file shares. - - - - The Get-AzStorageShare cmdlet gets a list of file shares for a storage account. - - - - Get-AzStorageShare - - Prefix - - Specifies the prefix for file shares. This cmdlet gets file shares that match the prefix that this parameter specifies, or no file shares if no file shares match the specified prefix. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted shares, by default get share won't include deleted shares - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Get-AzStorageShare - - Name - - Specifies the name of the file share. This cmdlet gets the file share that this parameter specifies, or nothing if you specify the name of a file share that does not exist. - - System.String - - System.String - - - None - - - SnapshotTime - - SnapshotTime of the file share snapshot to be received. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SkipGetProperty - - Specify this parameter to only generate a local share object, without get share properties from server. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - IncludeDeleted - - Include deleted shares, by default get share won't include deleted shares - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the file share. This cmdlet gets the file share that this parameter specifies, or nothing if you specify the name of a file share that does not exist. - - System.String - - System.String - - - None - - - Prefix - - Specifies the prefix for file shares. This cmdlet gets file shares that match the prefix that this parameter specifies, or no file shares if no file shares match the specified prefix. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SkipGetProperty - - Specify this parameter to only generate a local share object, without get share properties from server. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - SnapshotTime - - SnapshotTime of the file share snapshot to be received. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - ----------------- Example 1: Get a file share ----------------- - Get-AzStorageShare -Name "ContosoShare06" - - This command gets the file share named ContosoShare06. - - - - - - --- Example 2: Get all file shares that begin with a string --- - Get-AzStorageShare -Prefix "Contoso" - - This command gets all file shares that have names that begin with Contoso. - - - - - - ---- Example 3: Get all file shares in a specified context ---- - $Context = New-AzStorageContext -Local -Get-AzStorageShare -Context $Context - - The first command uses the New-AzStorageContext cmdlet to create a context by using the Local parameter, and then stores that context object in the $Context variable. The second command gets the file shares for the context object stored in $Context. - - - - - - Example 4: Get a file share snapshot with specific share name and SnapshotTime - Get-AzStorageShare -Name "ContosoShare06" -SnapshotTime "6/16/2017 9:48:41 AM +00:00" - - This command gets a file share snapshot with specific share name and SnapshotTime. - - - - - - Example 5: Get a file share object without fetch share properties with OAuth authentication. - New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount -EnableFileBackupRequestIntent -$share = Get-AzStorageShare -Name "ContosoShare06" -SkipGetProperty -Context $ctx - - This command gets a file share snapshot without get share properties with OAuth authentication. Get share properties with OAuth authentication will fail since the API not support OAuth. So to get share object with OAuth authentication must skip fetch share properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstorageshare - - - New-AzStorageShare - - - - Remove-AzStorageShare - - - - - - - Get-AzStorageShareStoredAccessPolicy - Get - AzStorageShareStoredAccessPolicy - - Gets stored access policies for a Storage share. - - - - The Get-AzStorageShareStoredAccessPolicy cmdlet gets stored access policies for an Azure Storage share. To get a particular policy, specify it by name. - - - - Get-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the Storage share name for which this cmdlet gets policies. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet gets. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet gets. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the Storage share name for which this cmdlet gets policies. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.File.SharedAccessFilePolicy - - - - - - - - - - - - - - ------- Example 1: Get a stored access policy in a share ------- - Get-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" - - This command gets a stored access policy named GeneralPolicy in ContosoShare. - - - - - - ---- Example 2: Get all the stored access policies in share ---- - Get-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" - - This command gets all stored access policies in ContosoShare. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragesharestoredaccesspolicy - - - New-AzStorageContext - - - - New-AzStorageShareStoredAccessPolicy - - - - Remove-AzStorageShareStoredAccessPolicy - - - - Set-AzStorageShareStoredAccessPolicy - - - - - - - Get-AzStorageTable - Get - AzStorageTable - - Lists the storage tables. - - - - The Get-AzStorageTable cmdlet lists the storage tables associated with the storage account in Azure. - - - - Get-AzStorageTable - - Name - - Specifies the table name. If the table name is empty, the cmdlet lists all the tables. Otherwise, it lists all tables that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - Get-AzStorageTable - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Prefix - - Specifies a prefix used in the name of the table or tables you want to get. You can use this to find all tables that start with the same string, such as table. - - System.String - - System.String - - - None - - - - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the table name. If the table name is empty, the cmdlet lists all the tables. Otherwise, it lists all tables that match the specified name or the regular name pattern. - - System.String - - System.String - - - None - - - Prefix - - Specifies a prefix used in the name of the table or tables you want to get. You can use this to find all tables that start with the same string, such as table. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - - - - - - - - - - - - - ----------- Example 1: List all Azure Storage tables ----------- - Get-AzStorageTable - - This command gets all storage tables for a Storage account. - - - - - - Example 2: List Azure Storage tables using a wildcard character - Get-AzStorageTable -Name table* - - This command uses a wildcard character to get storage tables whose name starts with table. - - - - - - - Example 3: List Azure Storage tables using table name prefix - - Get-AzStorageTable -Prefix "table" - - This command uses the Prefix parameter to get storage tables whose name starts with table. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragetable - - - New-AzStorageTable - - - - Remove-AzStorageTable - - - - - - - Get-AzStorageTableStoredAccessPolicy - Get - AzStorageTableStoredAccessPolicy - - Gets the stored access policy or policies for an Azure storage table. - - - - The Get-AzStorageTableStoredAccessPolicy cmdlet lists the stored access policy or policies for an Azure storage table. - - - - Get-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this Shared Access Signature (SAS) token. - - System.String - - System.String - - - None - - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Storage.Table.SharedAccessTablePolicy - - - - - - - - - - - - - - --- Example 1: Get a stored access policy in a storage table --- - Get-AzStorageTableStoredAccessPolicy -Table "Table02" -Policy "Policy50" - - This command gets the access policy named Policy50 in the storage table named Table02. - - - - - - - Example 2: Get all stored access policies in a storage table - - Get-AzStorageTableStoredAccessPolicy -Table "Table02" - - This command gets all access policies in the table named Table02. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/get-azstoragetablestoredaccesspolicy - - - New-AzStorageTableStoredAccessPolicy - - - - Remove-AzStorageTableStoredAccessPolicy - - - - Set-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - - - - Move-AzDataLakeGen2Item - Move - AzDataLakeGen2Item - - Move a file or directory to another a file or directory in same Storage account. - - - - The Move-AzDataLakeGen2Item cmdlet moves a a file or directory to another a file or directory in same Storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Move-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be move from. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestFileSystem - - Dest FileSystem name - - System.String - - System.String - - - None - - - DestPath - - Dest Blob path - - System.String - - System.String - - - None - - - Force - - Force to over write the destination. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Move-AzDataLakeGen2Item - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestFileSystem - - Dest FileSystem name - - System.String - - System.String - - - None - - - DestPath - - Dest Blob path - - System.String - - System.String - - - None - - - Force - - Force to over write the destination. - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to move from. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestFileSystem - - Dest FileSystem name - - System.String - - System.String - - - None - - - DestPath - - Dest Blob path - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - Force to over write the destination. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to move from. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Path - - The path in the specified Filesystem that should be move from. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - ---------- Example 1: Move a fold in same Filesystem ---------- - Move-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/" -DestFileSystem "filesystem1" -DestPath "dir3/" - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir3 True 2020-03-13 13:07:34Z rwxrw-rw- $superuser $superuser - - This command move directory 'dir1' to directory 'dir3' in the same Filesystem. - - - - - - Example 2: Move a file by pipeline, to another Filesystem in the same Storage account without prompt - Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" | Move-AzDataLakeGen2Item -DestFileSystem "filesystem2" -DestPath "dir2/file2" -Force - -FileSystem Name: filesystem2 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir2/file2 False 1024 2020-03-23 09:57:33Z rwxrw-rw- $superuser $superuser - - This command move file 'dir1/file1' in 'filesystem1' to file 'dir2/file2' in 'filesystem2' in the same Storage account without prompt. - - - - - - ------------ Example 3: Move an item with Sas token ------------ - $sas = New-AzStorageContainerSASToken -Name $filesystemName -Permission rdw -Context $ctx - -$sasctx = New-AzStorageContext -StorageAccountName $ctx.StorageAccountName -SasToken $sas - -Move-AzDataLakeGen2Item -FileSystem $filesystemName -Path $itempath1 -DestFileSystem $filesystemName -DestPath "$($itempath2)$($sas)" -Context $sasctx - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir2/file1 False 1024 2021-03-23 09:57:33Z rwxrw-rw- $superuser $superuser - - This first command creates a Sas token with rdw permission, the second command creates a Storage context from the Sas token, the 3rd command moves an item with the Sas token. This example use same Sastoken with rdw permission on both source and destication, if use 2 SAS token for source and destication, source need permission rd, destication need permission w. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/move-azdatalakegen2item - - - - - - New-AzDataLakeGen2Item - New - AzDataLakeGen2Item - - Create a file or directory in a filesystem. - - - - The New-AzDataLakeGen2Item cmdlet creates a file or directory in a Filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - New-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be create. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Directory - - Indicates that this new item is a directory and not a file. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - If passed then new item is created without any prompt - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the created directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the created directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Umask - - When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. The resulting permission is given by p & ^u, where p is the permission and u is the umask. Symbolic (rwxrw-rw-) is supported. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be create. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionContext - - Encryption context of the file. Encryption context is metadata that is not encrypted when stored on the file. The primary application of this field is to store non-encrypted data that can be used to derive the customer-provided key for a file. Not applicable for directories. - - System.String - - System.String - - - None - - - Force - - If passed then new item is created without any prompt - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the created directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the created directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Source - - Specify the local source file path which will be upload to a Datalake Gen2 file. - - System.String - - System.String - - - None - - - Umask - - When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. The resulting permission is given by p & ^u, where p is the permission and u is the umask. Symbolic (rwxrw-rw-) is supported. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Directory - - Indicates that this new item is a directory and not a file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EncryptionContext - - Encryption context of the file. Encryption context is metadata that is not encrypted when stored on the file. The primary application of this field is to store non-encrypted data that can be used to derive the customer-provided key for a file. Not applicable for directories. - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - If passed then new item is created without any prompt - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the created directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Path - - The path in the specified Filesystem that should be create. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the created directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Source - - Specify the local source file path which will be upload to a Datalake Gen2 file. - - System.String - - System.String - - - None - - - Umask - - When creating New Item and the parent directory does not have a default ACL, the umask restricts the permissions of the file or directory to be created. The resulting permission is given by p & ^u, where p is the permission and u is the umask. Symbolic (rwxrw-rw-) is supported. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: Create a directory with specified permission, Umask, properties, and metadata - New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/" -Directory -Permission rwxrwxrwT -Umask ---rw---- -Property @{"CacheControl" = "READ"; "ContentDisposition" = "True"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" } - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir2 True 2020-03-23 09:15:56Z rwx---rwT $superuser $superuser - - This command creates a directory with specified Permission, Umask, properties, and metadata - - - - - - Example 2: Create(upload) a data lake file from a local source file, and the cmdlet runs in background - $task = New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/file1" -Source "c:\sourcefile.txt" -Force -asjob -$task | Wait-Job -$task.Output - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir2/file1 False 14400000 2020-03-23 09:19:13Z rw-r----- $superuser $superuser - - This command creates(upload) a data lake file from a local source file, and the cmdlet runs in background. - - - - - - Example 3: Create(upload) a data lake file from a local source file and set its encryption context - $file = New-AzDataLakeGen2Item -FileSystem "testfilesystem" -Path "dir1/dir2/file1" -Source "c:\sourcefile.txt" -EncryptionContext "encryptioncontext" -$file.Properties.EncryptionContext - -encryptioncontext - - This command creates(upload) a data lake file from a local source file and sets its encryption context value to "encryptioncontext". - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azdatalakegen2item - - - - - - New-AzDataLakeGen2SasToken - New - AzDataLakeGen2SasToken - - Generates a SAS token for Azure DatalakeGen2 item. - - - - The New-AzDataLakeGen2SasToken cmdlet generates a Shared Access Signature (SAS) token for an Azure DatalakeGen2 item. - - - - New-AzDataLakeGen2SasToken - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Expiry Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - FullUri - - Display full uri with sas token - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage. - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Permissions for a blob. Permissions can be any not-empty subset of "racwdlmeop". - - System.String - - System.String - - - None - - - Protocol - - Protocol can be used in the request with this SAS token. - - - None - HttpsAndHttp - Https - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - - None - - - StartTime - - Start Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - New-AzDataLakeGen2SasToken - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Expiry Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - FullUri - - Display full uri with sas token - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - IPAddressOrRange - - IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage. - - System.String - - System.String - - - None - - - Permission - - Permissions for a blob. Permissions can be any not-empty subset of "racwdlmeop". - - System.String - - System.String - - - None - - - Protocol - - Protocol can be used in the request with this SAS token. - - - None - HttpsAndHttp - Https - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - - None - - - StartTime - - Start Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Expiry Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - FullUri - - Display full uri with sas token - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - IPAddressOrRange - - IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage. - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that should be retrieved. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to get the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Permissions for a blob. Permissions can be any not-empty subset of "racwdlmeop". - - System.String - - System.String - - - None - - - Protocol - - Protocol can be used in the request with this SAS token. - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - System.Nullable`1[Azure.Storage.Sas.SasProtocol] - - - None - - - StartTime - - Start Time - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - ----- Example 1: Generate a SAS token with full permission ----- - New-AzDataLakeGen2SasToken -FileSystem "filesystem1" -Path "dir1/dir2" -Permission racwdlmeop - - This example generates a DatalakeGen2 SAS token with full permission. - - - - - - Example 2: Generate a SAS token with specific StartTime, ExpireTime, Protocal, IPAddressOrRange, Encryption Scope, by pipeline a datalakegen2 item - Get-AzDataLakeGen2Item -FileSystem test -Path "testdir/dir2" | New-AzDataLakeGen2SasToken -Permission rw -Protocol Https -IPAddressOrRange 10.0.0.0-12.10.0.0 -StartTime (Get-Date) -ExpiryTime (Get-Date).AddDays(6) -EncryptionScope scopename - - This example generates a DatalakeGen2 SAS token by pipeline a datalake gen2 item, and with specific StartTime, ExpireTime, Protocal, IPAddressOrRange, Encryption Scope. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azdatalakegen2sastoken - - - - - - New-AzStorageAccountSASToken - New - AzStorageAccountSASToken - - Creates an account-level SAS token. - - - - The New-AzStorageAccountSASToken cmdlet creates an account-level shared access signature (SAS) token for an Azure Storage account. You can use the SAS token to delegate permissions for multiple services, or to delegate permissions for services not available with an object-level SAS token. An account SAS is secured using the storage account key. To create an account SAS, a client application must possess the account key. - - - - New-AzStorageAccountSASToken - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to get an AzureStorageContext object. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for Storage account. Permissions are valid only if they match the specified resource type. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). For more information about acceptable permission values, see Constructing an Account SAS http://go.microsoft.com/fwlink/?LinkId=799514 - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request made with the account SAS. The acceptable values for this parameter are: - HttpsOnly - - HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - ResourceType - - Specifies the resource types that are available with the SAS token. The acceptable values for this parameter are: - None - - Service - - Container - - Object - - - None - Service - Container - Object - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - - None - - - Service - - Specifies the service. The acceptable values for this parameter are: - None - - Blob - - File - - Queue - - Table - - - None - Blob - File - Queue - Table - - Microsoft.Azure.Storage.SharedAccessAccountServices - - Microsoft.Azure.Storage.SharedAccessAccountServices - - - None - - - StartTime - - Specifies the time, as a DateTime object, at which the SAS becomes valid. To get a DateTime object, use the Get-Date cmdlet. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to get an AzureStorageContext object. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for Storage account. Permissions are valid only if they match the specified resource type. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). For more information about acceptable permission values, see Constructing an Account SAS http://go.microsoft.com/fwlink/?LinkId=799514 - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request made with the account SAS. The acceptable values for this parameter are: - HttpsOnly - - HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - ResourceType - - Specifies the resource types that are available with the SAS token. The acceptable values for this parameter are: - None - - Service - - Container - - Object - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - Microsoft.Azure.Storage.SharedAccessAccountResourceTypes - - - None - - - Service - - Specifies the service. The acceptable values for this parameter are: - None - - Blob - - File - - Queue - - Table - - Microsoft.Azure.Storage.SharedAccessAccountServices - - Microsoft.Azure.Storage.SharedAccessAccountServices - - - None - - - StartTime - - Specifies the time, as a DateTime object, at which the SAS becomes valid. To get a DateTime object, use the Get-Date cmdlet. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Create an account-level SAS token with full permission - New-AzStorageAccountSASToken -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission "racwdlup" - - This command creates an account-level SAS token with full permission. - - - - - - Example 2: Create an account-level SAS token for a range of IP addresses and EncryptionScope - New-AzStorageAccountSASToken -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission "racwdlup" -Protocol HttpsOnly -IPAddressOrRange 168.1.5.60-168.1.5.70 -EncryptionScope scopename - - This command creates an account-level SAS token for HTTPS-only requests from the specified range of IP addresses, with a specific EncryptionScope. - - - - - - Example 3: Create an account-level SAS token valid for 24 hours - New-AzStorageAccountSASToken -Service Blob -ResourceType Service,Container,Object -Permission "rl" -ExpiryTime (Get-Date).AddDays(1) - - This command creates an read-only account-level SAS token that is valid for 24 hours. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageaccountsastoken - - - New-AzStorageBlobSASToken - - - - New-AzStorageContainerSASToken - - - - New-AzStorageFileSASToken - - - - New-AzStorageQueueSASToken - - - - New-AzStorageShareSASToken - - - - New-AzStorageTableSASToken - - - - - - - New-AzStorageBlobQueryConfig - New - AzStorageBlobQueryConfig - - Creates a blob query configuration object, which can be used in Get-AzStorageBlobQueryResult. - - - - The New-AzStorageBlobQueryConfig cmdlet creates a blob query configuration object, which can be used in Get-AzStorageBlobQueryResult. - - - - New-AzStorageBlobQueryConfig - - AsCsv - - Indicate to create a Blob Query Configuration for CSV. - - - System.Management.Automation.SwitchParameter - - - False - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ColumnSeparator - - Optional. The string used to separate columns. - - System.String - - System.String - - - None - - - EscapeCharacter - - Optional. The char used as an escape character. - - System.Nullable`1[System.Char] - - System.Nullable`1[System.Char] - - - None - - - HasHeader - - Optional. Indicate it represent the data has headers. - - - System.Management.Automation.SwitchParameter - - - False - - - QuotationCharacter - - Optional. The char used to quote a specific field. - - System.Char - - System.Char - - - None - - - RecordSeparator - - Optional. The string used to separate records. - - System.String - - System.String - - - None - - - - New-AzStorageBlobQueryConfig - - AsJson - - Indicate to create a Blob Query Configuration for Json. - - - System.Management.Automation.SwitchParameter - - - False - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - RecordSeparator - - Optional. The string used to separate records. - - System.String - - System.String - - - None - - - - - - AsCsv - - Indicate to create a Blob Query Configuration for CSV. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - AsJson - - Indicate to create a Blob Query Configuration for Json. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ColumnSeparator - - Optional. The string used to separate columns. - - System.String - - System.String - - - None - - - EscapeCharacter - - Optional. The char used as an escape character. - - System.Nullable`1[System.Char] - - System.Nullable`1[System.Char] - - - None - - - HasHeader - - Optional. Indicate it represent the data has headers. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - QuotationCharacter - - Optional. The char used to quote a specific field. - - System.Char - - System.Char - - - None - - - RecordSeparator - - Optional. The string used to separate records. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.PSBlobQueryTextConfiguration - - - - - - - - - - - - - - -- Example 1: Create blob query configures , and query a blob -- - $inputconfig = New-AzStorageBlobQueryConfig -AsCsv -ColumnSeparator "," -QuotationCharacter """" -EscapeCharacter "\" -RecordSeparator "`n" -HasHeader - -$outputconfig = New-AzStorageBlobQueryConfig -AsJson -RecordSeparator "`n" - -$queryString = "SELECT * FROM BlobStorage WHERE Name = 'a'" - -$result = Get-AzStorageBlobQueryResult -Container $containerName -Blob $blobName -QueryString $queryString -ResultFile "c:\resultfile.json" -InputTextConfiguration $inputconfig -OutputTextConfiguration $outputconfig -Context $ctx - -$result - -BytesScanned FailureCount BlobQueryError ------------- ------------ -------------- - 449 0 - - This command first create input configuration object as csv, and output configuration object as json, then use the 2 configurations to query blob. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/Az.storage/new-azstorageblobqueryconfig - - - - - - New-AzStorageBlobSASToken - New - AzStorageBlobSASToken - - Generates a SAS token for an Azure storage blob. - - - - The New-AzStorageBlobSASToken cmdlet generates a Shared Access Signature (SAS) token for an Azure storage blob. - - - - New-AzStorageBlobSASToken - - Container - - Specifies the storage container name. - - System.String - - System.String - - - None - - - Blob - - Specifies the storage blob name. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a storage blob. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageBlobSASToken - - Container - - Specifies the storage container name. - - System.String - - System.String - - - None - - - Blob - - Specifies the storage blob name. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageBlobSASToken - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CloudBlob - - Specifies the CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob (./Get-AzStorageBlob.md)cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageBlobSASToken - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CloudBlob - - Specifies the CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob (./Get-AzStorageBlob.md)cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a storage blob. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the storage blob name. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - CloudBlob - - Specifies the CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob (./Get-AzStorageBlob.md)cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Container - - Specifies the storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. When the storage context is based on OAuth authentication, will generates a User Identity blob SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the shared access signature expires. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a storage blob. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate a blob SAS token with full blob permission - New-AzStorageBlobSASToken -Container "ContainerName" -Blob "BlobName" -Permission rwd - - This example generates a blob SAS token with full blob permission. - - - - - - ----- Example 2: Generate a blob SAS token with life time ----- - $StartTime = Get-Date -$EndTime = $startTime.AddHours(2.0) -New-AzStorageBlobSASToken -Container "ContainerName" -Blob "BlobName" -Permission rwd -StartTime $StartTime -ExpiryTime $EndTime - - This example generates a blob SAS token with life time. - - - - - - Example 3: Generate a User Identity SAS token with storage context based on OAuth authentication - $ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount -$StartTime = Get-Date -$EndTime = $startTime.AddDays(6) -New-AzStorageBlobSASToken -Container "ContainerName" -Blob "BlobName" -Permission rwd -StartTime $StartTime -ExpiryTime $EndTime -Context $ctx - - This example generates a User Identity blob SAS token with storage context based on OAuth authentication - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageblobsastoken - - - Get-AzStorageBlob - - - - New-AzStorageContainerSASToken - - - - - - - New-AzStorageContainer - New - AzStorageContainer - - Creates an Azure storage container. - - - - The New-AzStorageContainer cmdlet creates an Azure storage container. - - - - New-AzStorageContainer - - Name - - Specifies a name for the new container. - - System.String - - System.String - - - None - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: - Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. - Blob. Provides read access to blob data throughout a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. - Off. Which restricts access to only the storage account owner. - - - Off - Container - Blob - Unknown - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the new container. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the new container. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultEncryptionScope - - Default the container to use specified encryption scope for all writes. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name for the new container. - - System.String - - System.String - - - None - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: - Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. - Blob. Provides read access to blob data throughout a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. - Off. Which restricts access to only the storage account owner. - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - System.Nullable`1[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType] - - - None - - - PreventEncryptionScopeOverride - - Block override of encryption scope from the container default. - - System.Boolean - - System.Boolean - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - - - - - - - - - - --------- Example 1: Create an Azure storage container --------- - New-AzStorageContainer -Name "ContainerName" -Permission Off - - This command creates a storage container. - - - - - - ----- Example 2: Create multiple Azure storage containers ----- - "container1 container2 container3".split() | New-AzStorageContainer -Permission Container - - This example creates multiple storage containers. It uses the Split method of the .NET String class and then passes the names on the pipeline. - - - - - - Example 3: Create an Azure storage container with Encryption Scope - $container = New-AzStorageContainer -Name "mycontainer" -DefaultEncryptionScope "myencryptscope" -PreventEncryptionScopeOverride $true - -$container.BlobContainerProperties.DefaultEncryptionScope -myencryptscope - -$container.BlobContainerProperties.PreventEncryptionScopeOverride -True - - This command creates a storage container, with default Encryption Scope as myencryptscope, and prevert blob upload with different Encryption Scope to this container. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontainer - - - Get-AzStorageContainer - - - - Remove-AzStorageContainer - - - - Set-AzStorageContainerAcl - - - - - - - New-AzStorageContainerSASToken - New - AzStorageContainerSASToken - - Generates an SAS token for an Azure storage container. - - - - The New-AzStorageContainerSASToken cmdlet generates a Shared Access Signature (SAS) token for an Azure storage container. - - - - New-AzStorageContainerSASToken - - Name - - Specifies an Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. You can create it by using the New-AzStorageContext cmdlet. When the storage context is based on OAuth authentication, will generates a User Identity container SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. If the user sets the start time but not the expiry time, the expiry time is set to the start time plus one hour. If neither the start time nor the expiry time is specified, the expiry time is set to the current time plus one hour. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). The permissions that are supported for container resource type are described here (https://learn.microsoft.com/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContainerSASToken - - Name - - Specifies an Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. You can create it by using the New-AzStorageContext cmdlet. When the storage context is based on OAuth authentication, will generates a User Identity container SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. If the user sets the start time but not the expiry time, the expiry time is set to the start time plus one hour. If neither the start time nor the expiry time is specified, the expiry time is set to the current time plus one hour. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. You can create it by using the New-AzStorageContext cmdlet. When the storage context is based on OAuth authentication, will generates a User Identity container SAS token. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to use when sending requests authorized with this SAS URI. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. If the user sets the start time but not the expiry time, the expiry time is set to the start time plus one hour. If neither the start time nor the expiry time is specified, the expiry time is set to the current time plus one hour. When the storage context is based on OAuth authentication, the expire time must be in 7 days from current time, and must not be earlier than current time. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Name - - Specifies an Azure storage container name. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). The permissions that are supported for container resource type are described here (https://learn.microsoft.com/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob). - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure Stored Access Policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Storage.SharedAccessProtocol] - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate a container SAS token with full container permission - New-AzStorageContainerSASToken -Name "Test" -Permission rwdl - - This example generates a container SAS token with full container permission. - - - - - - - Example 2: Generate multiple container SAS token by pipeline - - Get-AzStorageContainer -Container test* | New-AzStorageContainerSASToken -Permission rwdl - - This example generates multiple container SAS tokens by using the pipeline. - - - - - - Example 3: Generate container SAS token with shared access policy - New-AzStorageContainerSASToken -Name "Test" -Policy "PolicyName" - - This example generates a container SAS token with shared access policy. - - - - - - Example 3: Generate a User Identity container SAS token with storage context based on OAuth authentication - $ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount -$StartTime = Get-Date -$EndTime = $startTime.AddDays(6) -New-AzStorageContainerSASToken -Name "ContainerName" -Permission rwd -StartTime $StartTime -ExpiryTime $EndTime -context $ctx - - This example generates a User Identity container SAS token with storage context based on OAuth authentication - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontainersastoken - - - New-AzStorageBlobSASToken - - - - - - - New-AzStorageContainerStoredAccessPolicy - New - AzStorageContainerStoredAccessPolicy - - Creates a stored access policy for an Azure storage container. - - - - The New-AzStorageContainerStoredAccessPolicy cmdlet creates a stored access policy for an Azure storage container. - - - - New-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Create a stored access policy in a storage container - New-AzStorageContainerStoredAccessPolicy -Container "MyContainer" -Policy "Policy01" - - This command creates an access policy named Policy01 in the storage container named MyContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontainerstoredaccesspolicy - - - Get-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageContainerStoredAccessPolicy - - - - Set-AzStorageContainerStoredAccessPolicy - - - - - - - New-AzStorageContext - New - AzStorageContext - - Creates an Azure Storage context. - - - - The New-AzStorageContext cmdlet creates an Azure Storage context. The default Authentication of a Storage Context is OAuth (Microsoft Entra ID), if only input Storage account name. See details of authentication of the Storage Service in https://learn.microsoft.com/rest/api/storageservices/authorization-for-the-azure-storage-services. - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - - System.Management.Automation.SwitchParameter - - - False - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - - System.Management.Automation.SwitchParameter - - - False - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - - System.Management.Automation.SwitchParameter - - - False - - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - - New-AzStorageContext - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - - New-AzStorageContext - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - System.Management.Automation.SwitchParameter - - - False - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContext - - ConnectionString - - Specifies a connection string for the Azure Storage context. - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - System.Management.Automation.SwitchParameter - - - False - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - System.Management.Automation.SwitchParameter - - - False - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - Protocol - - Transfer Protocol (https/http). - - - Http - Https - - System.String - - System.String - - - None - - - - New-AzStorageContext - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - - New-AzStorageContext - - Local - - Indicates that this cmdlet creates a context by using the local development storage account. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Anonymous - - Indicates that this cmdlet creates an Azure Storage context for anonymous logon. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BlobEndpoint - - Azure storage blob service endpoint - - System.String - - System.String - - - None - - - ConnectionString - - Specifies a connection string for the Azure Storage context. - - System.String - - System.String - - - None - - - EnableFileBackupRequestIntent - - Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Endpoint - - Specifies the endpoint for the Azure Storage context. - - System.String - - System.String - - - None - - - Environment - - Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type `Get-Help Get-AzEnvironment`. - - System.String - - System.String - - - None - - - FileEndpoint - - Azure storage file service endpoint - - System.String - - System.String - - - None - - - Local - - Indicates that this cmdlet creates a context by using the local development storage account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Protocol - - Transfer Protocol (https/http). - - System.String - - System.String - - - None - - - QueueEndpoint - - Azure storage queue service endpoint - - System.String - - System.String - - - None - - - SasToken - - Specifies a Shared Access Signature (SAS) token for the context. - - System.String - - System.String - - - None - - - StorageAccountKey - - Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies. - - System.String - - System.String - - - None - - - StorageAccountName - - Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies. - - System.String - - System.String - - - None - - - TableEndpoint - - Azure storage table service endpoint - - System.String - - System.String - - - None - - - UseConnectedAccount - - Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext - - - - - - - - - - - - - - Example 1: Create a context by specifying a storage account name and key - New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" - - This command creates a context for the account named ContosoGeneral that uses the specified key. - - - - - - Example 2: Create a context by specifying a connection string - New-AzStorageContext -ConnectionString "DefaultEndpointsProtocol=https;AccountName=ContosoGeneral;AccountKey=< Storage Key for ContosoGeneral ends with == >;" - - This command creates a context based on the specified connection string for the account ContosoGeneral. - - - - - - - Example 3: Create a context for an anonymous storage account - - New-AzStorageContext -StorageAccountName "ContosoGeneral" -Anonymous -Protocol "http" - - This command creates a context for anonymous use for the account named ContosoGeneral. The command specifies HTTP as a connection protocol. - - - - - - Example 4: Create a context by using the local development storage account - New-AzStorageContext -Local - - This command creates a context by using the local development storage account. The command specifies the Local parameter. - - - - - - Example 5: Get the container for the local developer storage account - New-AzStorageContext -Local | Get-AzStorageContainer - - This command creates a context by using the local development storage account, and then passes the new context to the Get-AzStorageContainer cmdlet by using the pipeline operator. The command gets the Azure Storage container for the local developer storage account. - - - - - - -------------- Example 6: Get multiple containers -------------- - $Context01 = New-AzStorageContext -Local -$Context02 = New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -($Context01, $Context02) | Get-AzStorageContainer - - The first command creates a context by using the local development storage account, and then stores that context in the $Context01 variable. The second command creates a context for the account named ContosoGeneral that uses the specified key, and then stores that context in the $Context02 variable. The final command gets the containers for the contexts stored in $Context01 and $Context02 by using Get-AzStorageContainer . - - - - - - --------- Example 7: Create a context with an endpoint --------- - New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Endpoint "contosoaccount.core.windows.net" - - This command creates an Azure Storage context that has the specified storage endpoint. The command creates the context for the account named ContosoGeneral that uses the specified key. - - - - - - --- Example 8: Create a context with a specified environment --- - New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Environment "AzureChinaCloud" - - This command creates an Azure storage context that has the specified Azure environment. The command creates the context for the account named ContosoGeneral that uses the specified key. - - - - - - ------ Example 9: Create a context by using an SAS token ------ - $SasToken = New-AzStorageContainerSASToken -Name "ContosoMain" -Permission "rad" -$Context = New-AzStorageContext -StorageAccountName "ContosoGeneral" -SasToken $SasToken -$Context | Get-AzStorageBlob -Container "ContosoMain" - - The first command generates an SAS token by using the New-AzStorageContainerSASToken cmdlet for the container named ContosoMain, and then stores that token in the $SasToken variable. That token is for read, add, update, and delete permissions. The second command creates a context for the account named ContosoGeneral that uses the SAS token stored in $SasToken, and then stores that context in the $Context variable. The final command lists all the blobs associated with the container named ContosoMain by using the context stored in $Context. - - - - - - Example 10: Create a context by using the OAuth Authentication - Connect-AzAccount -$Context = New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount - - This command creates a context by using the OAuth (Microsoft Entra ID) Authentication. - - - - - - Example 11: Create a context by specifying a storage account name, storage account key and custom blob endpoint - New-AzStorageContext -StorageAccountName "myaccountname" -StorageAccountKey "< Storage Key for myaccountname ends with == >" -BlobEndpoint "https://myaccountname.blob.core.windows.net/" - - This command creates a context for the account named myaccountname with a key for the account, and specified blob endpoint. - - - - - - Example 12: Create a context for an anonymous storage account with specified blob endpoint - New-AzStorageContext -Anonymous -BlobEndpoint "https://myaccountname.blob.core.windows.net/" - - This command creates a context for anonymous use for the account named myaccountname, with specified blob enpoint. - - - - - - Example 13: Create a context by using an SAS token with specified endpoints - $SasToken = New-AzStorageContainerSASToken -Name "MyContainer" -Permission "rad" -New-AzStorageContext -SasToken $SasToken -BlobEndpoint "https://myaccountname.blob.core.windows.net/" -TableEndpoint "https://myaccountname.table.core.windows.net/" -FileEndpoint "https://myaccountname.file.core.windows.net/" -QueueEndpoint "https://myaccountname.queue.core.windows.net/" - - The first command generates an SAS token by using the New-AzStorageContainerSASToken cmdlet for the container named MyContainer, and then stores that token in the $SasToken variable. The second command creates a context that uses the SAS token and a specified blob endpoint, table endpoint, file endpoint, and queue endpoint. - - - - - - Example 14: Create a context by using the OAuth Authentication with a specified blob endpoint - New-AzStorageContext -UseConnectedAccount -BlobEndpoint "https://myaccountname.blob.core.windows.net/" - - This command creates a context by using the OAuth authentication with a specified blob endpoint. - - - - - - Example 15: Create a context by using the OAuth Authentication on File service - New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount -EnableFileBackupRequestIntent - - This command creates a context to use the OAuth (Microsoft Entra ID) authentication on File service. Parameter '-EnableFileBackupRequestIntent' is required to use OAuth (Microsoft Entra ID) Authentication for File service. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragecontext - - - Get-AzStorageBlob - - - - New-AzStorageContainerSASToken - - - - - - - New-AzStorageDirectory - New - AzStorageDirectory - - Creates a directory. - - - - The New-AzStorageDirectory cmdlet creates a directory. This cmdlet returns a AzureStorageFileDirectory object. - - - - New-AzStorageDirectory - - ShareName - - Specifies the name of the file share. This cmdlet creates a folder in the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - New-AzStorageDirectory - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - New-AzStorageDirectory - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a folder. This cmdlet creates a folder for the path that this cmdlet specifies. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the files/directories would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet creates a folder in the file share that this parameter specifies. - - System.String - - System.String - - - None - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - - - - - - - - - - - - ---------- Example 1: Create a folder in a file share ---------- - New-AzStorageDirectory -ShareName "ContosoShare06" -Path "ContosoWorkingFolder" - - This command creates a folder named ContosoWorkingFolder in the file share named ContosoShare06. - - - - - - Example 2: Create a folder in a file share specified in a file share object - Get-AzStorageShare -Name "ContosoShare06" | New-AzStorageDirectory -Path "ContosoWorkingFolder" - - This command uses the Get-AzStorageShare cmdlet to get the file share named ContosoShare06, and then passes it to the current cmdlet by using the pipeline operator. The current cmdlet creates the folder named ContosoWorkingFolder in ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragedirectory - - - Get-AzStorageFile - - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - New-AzStorageDirectory - - - - Remove-AzStorageDirectory - - - - - - - New-AzStorageFileSASToken - New - AzStorageFileSASToken - - Generates a shared access signature token for a Storage file. - - - - The New-AzStorageFileSASToken cmdlet generates a shared access signature token for an Azure Storage file. - - - - New-AzStorageFileSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Path - - Specifies the path of the file relative to a Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a Storage file. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageFileSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Path - - Specifies the path of the file relative to a Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a file. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageFileSASToken - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a Storage file. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - ShareFileClient - - ShareFileClient instance to represent the file to get SAS token against. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageFileSASToken - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a file. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - ShareFileClient - - ShareFileClient instance to represent the file to get SAS token against. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Path - - Specifies the path of the file relative to a Storage share. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions for a Storage file. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a file. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.String - - System.String - - - None - - - ShareFileClient - - ShareFileClient instance to represent the file to get SAS token against. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate a shared access signature token that has full file permissions - New-AzStorageFileSASToken -ShareName "ContosoShare" -Path "FilePath" -Permission "rwd" - - This command generates a shared access signature token that has full permissions for the file that is named FilePath. - - - - - - Example 2: Generate a shared access signature token that has a time limit - $StartTime = Get-Date -$EndTime = $StartTime.AddHours(2.0) -New-AzStorageFileSASToken -ShareName "ContosoShare" -Path "FilePath" -Permission "rwd" -StartTime $StartTime -ExpiryTime $EndTime - - The first command creates a DateTime object by using the Get-Date cmdlet. The command stores the current time in the $StartTime variable. The second command adds two hours to the object in $StartTime, and then stores the result in the $EndTime variable. This object is a time two hours in the future. The third command generates a shared access signature token that has the specified permissions. This token becomes valid at the current time. The token remains valid until time stored in $EndTime. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragefilesastoken - - - New-AzStorageContext - - - - New-AzStorageShareSASToken - - - - - - - New-AzStorageQueue - New - AzStorageQueue - - Creates a storage queue. - - - - The New-AzStorageQueue cmdlet creates a storage queue in Azure. - - - - New-AzStorageQueue - - Name - - Specifies a name for the queue. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name for the queue. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - - - - - - - - - - - - - ----------- Example 1: Create an Azure storage queue ----------- - New-AzStorageQueue -Name "queueabc" - - This example creates a storage queue named queueabc. - - - - - - ------- Example 2: Create multiple azure storage queues ------- - "queue1 queue2 queue3".split() | New-AzStorageQueue - - This example creates multiple storage queues. It uses the Split method of the .NET String class and then passes the names on the pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragequeue - - - Get-AzStorageQueue - - - - Remove-AzStorageQueue - - - - - - - New-AzStorageQueueSASToken - New - AzStorageQueueSASToken - - Generates a shared access signature token for an Azure storage queue. - - - - The New-AzStorageQueueSASToken cmdlet generates shared access signature token for an Azure storage queue. - - - - New-AzStorageQueueSASToken - - Name - - Specifies an Azure storage queue name. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies when the shared access signature is no longer valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update and ProcessMessages). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies when the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageQueueSASToken - - Name - - Specifies an Azure storage queue name. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies when the shared access signature is no longer valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure stored access policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies when the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies the Azure storage context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies when the shared access signature is no longer valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Name - - Specifies an Azure storage queue name. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for a storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update and ProcessMessages). - - System.String - - System.String - - - None - - - Policy - - Specifies an Azure stored access policy. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - -- Example 1: Generate a queue SAS token with full permission -- - New-AzStorageQueueSASToken -Name "Test" -Permission raup - - This example generates a queue SAS token with full permission. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragequeuesastoken - - - - - - New-AzStorageQueueStoredAccessPolicy - New - AzStorageQueueStoredAccessPolicy - - Creates a stored access policy for an Azure storage queue. - - - - The New-AzStorageQueueStoredAccessPolicy cmdlet creates a stored access policy for an Azure storage queue. - - - - New-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - - Example 1: Create a stored access policy in a storage queue - - New-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy01" - - This command creates an access policy named Policy01 in the storage queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragequeuestoredaccesspolicy - - - Get-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageQueueStoredAccessPolicy - - - - Set-AzStorageQueueStoredAccessPolicy - - - - - - - New-AzStorageShare - New - AzStorageShare - - Creates a file share. - - - - The New-AzStorageShare cmdlet creates a file share. - - - - New-AzStorageShare - - Name - - Specifies the name of a file share. This cmdlet creates a file share that has the name that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies the name of a file share. This cmdlet creates a file share that has the name that this parameter specifies. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - ---------------- Example 1: Create a file share ---------------- - New-AzStorageShare -Name "ContosoShare06" - - This command creates a file share named ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstorageshare - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - Remove-AzStorageShare - - - - - - - New-AzStorageShareSASToken - New - AzStorageShareSASToken - - Generate Shared Access Signature token for Azure Storage share. - - - - The New-AzStorageShareSASToken cmdlet generates a shared access signature token for an Azure Storage share. - - - - New-AzStorageShareSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions in the token to access the share and files under the share. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageShareSASToken - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a share. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the shared access signature becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet return the full blob URI and the shared access signature token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies the permissions in the token to access the share and files under the share. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the stored access policy for a share. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.String - - System.String - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the shared access signature becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - * Keywords: common, azure, services, data, storage, blob, queue, table - - - - - Example 1: Generate a shared access signature token for a share - New-AzStorageShareSASToken -ShareName "ContosoShare" -Permission "rwdl" - - This command creates a shared access signature token for the share named ContosoShare. - - - - - - Example 2: Generate multiple shared access signature token by using the pipeline - Get-AzStorageShare -Prefix "test" | New-AzStorageShareSASToken -Permission "rwdl" - - This command gets all the Storage shares that match the prefix test. The command passes them to the current cmdlet by using the pipeline operator. The current cmdlet creates a shared access token for each Storage share that has the specified permissions. - - - - - - Example 3: Generate a shared access signature token that uses a shared access policy - New-AzStorageShareSASToken -ShareName "ContosoShare" -Policy "ContosoPolicy03" - - This command creates a shared access signature token for the Storage share named ContosoShare that has the policy named ContosoPolicy03. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragesharesastoken - - - Get-AzStorageShare - - - - New-AzStorageFileSASToken - - - - - - - New-AzStorageShareStoredAccessPolicy - New - AzStorageShareStoredAccessPolicy - - Creates a stored access policy on a Storage share. - - - - The New-AzStorageShareStoredAccessPolicy cmdlet creates a stored access policy on an Azure Storage share. - - - - New-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the Storage share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the Storage share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - ----- Example 1: Create a stored access policy in a share ----- - New-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" -Permission "rwdl" - - This command creates a stored access policy that has full permission in a share. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragesharestoredaccesspolicy - - - Get-AzStorageShareStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageShareStoredAccessPolicy - - - - Set-AzStorageShareStoredAccessPolicy - - - - - - - New-AzStorageTable - New - AzStorageTable - - Creates a storage table. - - - - The New-AzStorageTable cmdlet creates a storage table associated with the storage account in Azure. - - - - New-AzStorageTable - - Name - - Specifies a name for the new table. - - System.String - - System.String - - - None - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - - - - Context - - Specifies the storage context. To create it, you can use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a name for the new table. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - - - - - - - - - - - - - ----------- Example 1: Create an azure storage table ----------- - New-AzStorageTable -Name "tableabc" - - This command creates a storage table with a name of tableabc. - - - - - - ------- Example 2: Create multiple azure storage tables ------- - "table1 table2 table3".split() | New-AzStorageTable - - This command creates multiple tables. It uses the Split method of the .NET String class and then passes the names on the pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragetable - - - Get-AzStorageTable - - - - Remove-AzStorageTable - - - - - - - New-AzStorageTableSASToken - New - AzStorageTableSASToken - - Generates an SAS token for an Azure Storage table. - - - - The New-AzStorageTableSASToken cmdlet generates a Shared Access Signature (SAS) token for an Azure Storage table. - - - - New-AzStorageTableSASToken - - Name - - Specifies the name of an Azure Storage table. This cmdlet creates an SAS token for the table that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndPartitionKey - - Specifies the partition key of the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - EndRowKey - - Specifies the row key for the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the SAS token expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet returns the full queue URI with the SAS token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for an Azure Storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - - None - - - StartPartitionKey - - Specifies the partition key of the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartRowKey - - Specifies the row key for the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the SAS token becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - New-AzStorageTableSASToken - - Name - - Specifies the name of an Azure Storage table. This cmdlet creates an SAS token for the table that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndPartitionKey - - Specifies the partition key of the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - EndRowKey - - Specifies the row key for the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the SAS token expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet returns the full queue URI with the SAS token. - - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - - HttpsOnly - HttpsOrHttp - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - - None - - - StartPartitionKey - - Specifies the partition key of the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartRowKey - - Specifies the row key for the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the SAS token becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EndPartitionKey - - Specifies the partition key of the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - EndRowKey - - Specifies the row key for the end of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - ExpiryTime - - Specifies when the SAS token expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - FullUri - - Indicates that this cmdlet returns the full queue URI with the SAS token. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IPAddressOrRange - - Specifies the IP address or range of IP addresses from which to accept requests, such as 168.1.5.65 or 168.1.5.60-168.1.5.70. The range is inclusive. - - System.String - - System.String - - - None - - - Name - - Specifies the name of an Azure Storage table. This cmdlet creates an SAS token for the table that this parameter specifies. - - System.String - - System.String - - - None - - - Permission - - Specifies permissions for an Azure Storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a stored access policy, which includes the permissions for this SAS token. - - System.String - - System.String - - - None - - - Protocol - - Specifies the protocol permitted for a request. The acceptable values for this parameter are: * HttpsOnly - * HttpsOrHttp - The default value is HttpsOrHttp. - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - System.Nullable`1[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol] - - - None - - - StartPartitionKey - - Specifies the partition key of the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartRowKey - - Specifies the row key for the start of the range for the token that this cmdlet creates. - - System.String - - System.String - - - None - - - StartTime - - Specifies when the SAS token becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Generate an SAS token that has full permissions for a table - New-AzStorageTableSASToken -Name "ContosoResources" -Permission "raud" - - This command generates an SAS token with full permissions for the table named ContosoResources. That token is for read, add, update, and delete permissions. - - - - - - -- Example 2: Generate an SAS token for a range of partitions -- - New-AzStorageTableSASToken -Name "ContosoResources" -Permission "raud" -StartPartitionKey "a" -EndPartitionKey "b" - - This command generates and SAS token with full permissions for the table named ContosoResources. The command limits the token to the range that the StartPartitionKey and EndPartitionKey parameters specify. - - - - - - Example 3: Generate an SAS token that has a stored access policy for a table - New-AzStorageTableSASToken -Name "ContosoResources" -Policy "ClientPolicy01" - - This command generates an SAS token for the table named ContosoResources. The command specifies the stored access policy named ClientPolicy01. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragetablesastoken - - - New-AzStorageContext - - - - - - - New-AzStorageTableStoredAccessPolicy - New - AzStorageTableStoredAccessPolicy - - Creates a stored access policy for an Azure storage table. - - - - The New-AzStorageTableStoredAccessPolicy cmdlet creates a stored access policy for an Azure storage table. - - - - New-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `raud` (for Read, Add, Update and Delete). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `raud` (for Read, Add, Update and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - ----- Example 1: Create a stored access policy in a table ----- - New-AzStorageTableStoredAccessPolicy -Table "MyTable" -Policy "Policy02" - - This command creates an access policy named Policy02 in the storage table named MyTable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/new-azstoragetablestoredaccesspolicy - - - Get-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - Remove-AzStorageTableStoredAccessPolicy - - - - Set-AzStorageTableStoredAccessPolicy - - - - - - - Remove-AzDataLakeGen2AclRecursive - Remove - AzDataLakeGen2AclRecursive - - Remove ACL recursively on the specified path. - - - - The Remove-AzDataLakeGen2AclRecursive cmdlet removes ACL recursively on the specified path. The ACL entries in original ACL, which has same AccessControlType, DefaultScope and EntityId with input ACL entries (even with different permission) wil lbe removed. - - - - Remove-AzDataLakeGen2AclRecursive - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Remove ACL recursively on a root directiry of filesystem - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -DefaultScope -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl -Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx -WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission. - -FailedEntries : -TotalDirectoriesSuccessfulCount : 7 -TotalFilesSuccessfulCount : 5 -TotalFailureCount : 0 -ContinuationToken : - - This command first creates an ACL object with 2 acl entries, then removes ACL recursively on a root directory of a file system. - - - - - - ------- Example 2: Remove ACL recursively on a directory ------- - $result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx -WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission. - -$result - -FailedEntries : {dir1/dir2/file4} -TotalDirectoriesSuccessfulCount : 500 -TotalFilesSuccessfulCount : 2500 -TotalFailureCount : 1 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -$result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx -WARNING: To find the ACL Entry to remove, will only compare AccessControlType, DefaultScope and EntityId, will omit Permission. - -$result - -FailedEntries : -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 1000 -TotalFailureCount : 0 -ContinuationToken : - - This command first removes ACL recursively on a directory and failed, then resume with ContinuationToken after user fix the failed file. - - - - - - ------- Example 3: Remove ACL recursively chunk by chunk ------- - $token = $null -$TotalDirectoriesSuccess = 0 -$TotalFilesSuccess = 0 -$totalFailure = 0 -$FailedEntries = New-Object System.Collections.Generic.List[System.Object] -do -{ - $result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 1000 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx - - # echo $result - $TotalFilesSuccess += $result.TotalFilesSuccessfulCount - $TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount - $totalFailure += $result.TotalFailureCount - $FailedEntries += $result.FailedEntries - $token = $result.ContinuationToken -}while (($token -ne $null) -and ($result.TotalFailureCount -eq 0)) -echo "" -echo "[Result Summary]" -echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)" -echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)" -echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)" -echo "ContinuationToken: `t`t`t`t`t$($token)" -echo "FailedEntries:"$($FailedEntries | ft) - - This script will remove ACL rescursively on directory chunk by chunk, with chunk size as BatchSize * MaxBatchCount. Chunk size is 50000 in this script. - - - - - - Example 4: Remove ACL recursively on a directory and ContinueOnFailure, then resume from failures one by one - $result = Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx - -$result - -FailedEntries : {dir0/dir1/file1, dir0/dir2/file4} -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 500 -TotalFailureCount : 2 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir1/file1 False This request is not authorized to perform this operation using this permission. -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -foreach ($path in $result.FailedEntries.Name) - { - # user code to fix failed entry in $path - - #set ACL again - Remove-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx - } - - This command first removes ACL recursively to a directory with ContinueOnFailure, and some items failed, then resume the failed items one by one. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azdatalakegen2aclrecursive - - - - - - Remove-AzDataLakeGen2Item - Remove - AzDataLakeGen2Item - - Remove a file or directory. - - - - The Remove-AzDataLakeGen2Item cmdlet removes a file or directory from a Storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Remove-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Filesystem and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Return whether the specified Filesystem is successfully removed - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzDataLakeGen2Item - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the Filesystem and all content in it - - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - PassThru - - Return whether the specified Filesystem is successfully removed - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Force - - Force to remove the Filesystem and all content in it - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - InputObject - - Azure Datalake Gen2 Item Object to remove. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - PassThru - - Return whether the specified Filesystem is successfully removed - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - The path in the specified Filesystem that should be removed. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1: Removes a directory ---------------- - Remove-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/" - - This command removes a directory from a Filesystem. - - - - - - ----------- Example 2: Removes a file without prompt ----------- - Remove-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" -Force - - This command removes a directory from a Filesystem, without prompt. - - - - - - -- Example 3: Remove all items in a Filesystem with pipeline -- - Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" | Remove-AzDataLakeGen2Item -Force - - This command removes all items in a Filesystem with pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azdatalakegen2item - - - - - - Remove-AzStorageBlob - Remove - AzStorageBlob - - Removes the specified storage blob. - - - - The Remove-AzStorageBlob cmdlet removes the specified blob from a storage account in Azure. - - - - Remove-AzStorageBlob - - Blob - - Specifies the name of the blob you want to remove. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlob - - Blob - - Specifies the name of the blob you want to remove. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can use the Get-AzStorageContainer cmdlet to get it. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlob - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the name of the blob you want to remove. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a cloud blob. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can use the Get-AzStorageContainer cmdlet to get it. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeleteSnapshot - - Specifies that all snapshots be deleted, but not the base blob. If this parameter is not specified, the base blob and its snapshots are deleted together. The user is prompted to confirm the delete operation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet removes the blob and its snapshot without confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the Azure profile for the cmdlet to read. If not specified, the cmdlet reads from the default profile. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - Blob SnapshotTime - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - VersionId - - Blob VersionId - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ----------- Example 1: Remove a storage blob by name ----------- - Remove-AzStorageBlob -Container "ContainerName" -Blob "BlobName" - - This command removes a blob identified by its name. - - - - - - ----- Example 2: Remove a storage blob using the pipeline ----- - Get-AzStorageBlob -Container "ContainerName" -Blob "BlobName" | Remove-AzStorageBlob - - This command uses the pipeline. - - - - - - ------ Example 3: Remove storage blobs using the pipeline ------ - Get-AzStorageContainer -Container container* | Remove-AzStorageBlob -Blob "BlobName" - - This command uses the asterisk (*) wildcard character and the pipeline to retrieve the blob or blobs and then removes them. - - - - - - ----------- Example 4: Remove a single blob version ----------- - Remove-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "2020-07-03T16:19:16.2883167Z" - - This command removes a single blobs verion with VersionId. - - - - - - ----------- Example 5: Remove a single blob snapshot ----------- - Remove-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime "2020-07-06T06:56:06.8588431Z" - - This command removes a single blobs snapshot with SnapshotTime. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageblob - - - Get-AzStorageBlob - - - - Get-AzStorageBlobContent - - - - Set-AzStorageBlobContent - - - - - - - Remove-AzStorageBlobImmutabilityPolicy - Remove - AzStorageBlobImmutabilityPolicy - - Removes ImmutabilityPolicy of a Storage blob. - - - - The Remove-AzStorageBlobImmutabilityPolicy cmdlet removes immutability policy of a Storage blob. - - - - Remove-AzStorageBlobImmutabilityPolicy - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageBlobImmutabilityPolicy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - -- Example 1: Removes immutability policy of a Storage blob. -- - $blob = Remove-AzStorageBlobImmutabilityPolicy -Container $containerName -Blob $blobname - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.ImmutabilityPolicy - -ExpiresOn PolicyMode ---------- ---------- - - This command removes ImmutabilityPolicy of a Storage blob, then show the result. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageblobimmutabilitypolicy - - - - - - Remove-AzStorageContainer - Remove - AzStorageContainer - - Removes the specified storage container. - - - - The Remove-AzStorageContainer cmdlet removes the specified storage container in Azure. - - - - Remove-AzStorageContainer - - Name - - Specifies the name of the container to remove. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the container you want to remove. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies a context for the container you want to remove. You can use the New-AzStorageContext cmdlet to create it. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the container to remove. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------------- Example 1: Remove a container ---------------- - Remove-AzStorageContainer -Name "MyTestContainer" - - This example removes a container named MyTestContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragecontainer - - - Get-AzStorageContainer - - - - New-AzStorageContainer - - - - - - - Remove-AzStorageContainerStoredAccessPolicy - Remove - AzStorageContainerStoredAccessPolicy - - Removes a stored access policy from an Azure storage container. - - - - The Remove-AzStorageContainerStoredAccessPolicy cmdlet removes a stored access policy from an Azure storage container. - - - - Remove-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from a storage container - Remove-AzStorageContainerStoredAccessPolicy -Container "MyContainer" -Policy "Policy03" - - This command removes an access policy named Policy03 from the stored container named MyContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragecontainerstoredaccesspolicy - - - Get-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContext - - - - Set-AzStorageContainerStoredAccessPolicy - - - - - - - Remove-AzStorageCORSRule - Remove - AzStorageCORSRule - - Removes CORS for a Storage service. - - - - The Remove-AzStorageCORSRule cmdlet removes Cross-Origin Resource Sharing (CORS) for an Azure Storage service. This cmdlet deletes all CORS rules in a Storage service type. The types of storage services for this cmdlet are Blob, Table, Queue, and File. - - - - Remove-AzStorageCORSRule - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet removes rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet removes rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Void - - - - - - - - - - - - - - ------ Example 1: Remove CORS rules for the blob service ------ - Remove-AzStorageCORSRule -ServiceType Blob - - This command removes CORS rules for the Blob service type. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragecorsrule - - - Get-AzStorageCORSRule - - - - Set-AzStorageCORSRule - - - - - - - Remove-AzStorageDirectory - Remove - AzStorageDirectory - - Deletes a directory. - - - - The Remove-AzStorageDirectory cmdlet deletes a directory. - - - - Remove-AzStorageDirectory - - ShareName - - Specifies the name of the file share. This cmdlet removes a folder under the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageDirectory - - ShareClient - - ShareClient object indicated the share where the directory would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageDirectory - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the directory would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that, if this cmdlet succeeds, it returns a value of $True. If you specify this parameter, and if the cmdlet is unsuccessful because of an inappropriate value for the Path parameter, the cmdlet returns an error. If you do not specify this parameter, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a folder. If the folder that this parameter specifies is empty, this cmdlet deletes that folder. If the folder is not empty, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the directory would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the directory would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet removes a folder under the file share that this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - - - - - - - - - - - - ------------------ Example 1: Delete a folder ------------------ - Remove-AzStorageDirectory -ShareName "ContosoShare06" -Path "ContosoWorkingFolder" - - This command deletes the folder named ContosoWorkingFolder from the file share named ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragedirectory - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - New-AzStorageDirectory - - - - - - - Remove-AzStorageFile - Remove - AzStorageFile - - Deletes a file. - - - - The Remove-AzStorageFile cmdlet deletes a file. - - - - Remove-AzStorageFile - - ShareName - - Specifies the name of the file share. This cmdlet removes the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageFile - - ShareClient - - ShareClient object indicated the share where the file would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageFile - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the file would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageFile - - ShareFileClient - - ShareFileClient object indicated the file would be removed. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a file. This cmdlet deletes the file that this parameter specifies. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the file would be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the base folder where the file would be removed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - ShareFileClient object indicated the file would be removed. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet removes the file in the share this parameter specifies. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - ---------- Example 1: Delete a file from a file share ---------- - Remove-AzStorageFile -ShareName "ContosoShare06" -Path "ContosoFile22" - - This command deletes the file that is named ContosoFile22 from the file share named ContosoShare06. - - - - - - Example 2: Get a file from a file share by using a file share object - Get-AzStorageShare -Name "ContosoShare06" | Remove-AzStorageFile -Path "ContosoFile22" - - This command uses the Get-AzStorageShare cmdlet to get the file share named ContosoShare06, and then passes that object to the current cmdlet by using the pipeline operator. The current command deletes the file that is named ContosoFile22 from ContosoShare06. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragefile - - - Get-AzStorageFile - - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - - - - Remove-AzStorageQueue - Remove - AzStorageQueue - - Removes a storage queue. - - - - The Remove-AzStorageQueue cmdlet removes a storage queue. - - - - Remove-AzStorageQueue - - Name - - Specifies the name of the queue to remove. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies the Azure storage context. To obtain the storage context, the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the queue to remove. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ---------- Example 1: Remove a storage queue by name ---------- - Remove-AzStorageQueue "ContosoQueue01" - - This command removes a queue named ContosoQueue01. - - - - - - ---------- Example 2: Remove multiple storage queues ---------- - Get-AzStorageQueue "Contoso*" | Remove-AzStorageQueue - - This command removes all queues with names that start with Contoso. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragequeue - - - Get-AzStorageQueue - - - - New-AzStorageQueue - - - - - - - Remove-AzStorageQueueStoredAccessPolicy - Remove - AzStorageQueueStoredAccessPolicy - - Removes a stored access policy from an Azure storage queue. - - - - The Remove-AzStorageQueueStoredAccessPolicy cmdlet removes a stored access policy from an Azure storage queue. - - - - Remove-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from a storage queue - Remove-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy04" - - This command removes an access policy named Policy04 from the storage queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragequeuestoredaccesspolicy - - - Get-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageQueueStoredAccessPolicy - - - - Set-AzStorageQueueStoredAccessPolicy - - - - - - - Remove-AzStorageShare - Remove - AzStorageShare - - Deletes a file share. - - - - The Remove-AzStorageShare cmdlet deletes a file share. - - - - Remove-AzStorageShare - - Name - - Specifies the name of the file share. This cmdlet deletes the file share that this parameter specifies. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the share with all of its snapshots, and all content. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeAllSnapshot - - Remove File Share with all of its snapshots - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SnapshotTime - - SnapshotTime of the file share snapshot to be removed. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-AzStorageShare - - ShareClient - - File share Client to be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the share with all of its snapshots, and all content. - - - System.Management.Automation.SwitchParameter - - - False - - - IncludeAllSnapshot - - Remove File Share with all of its snapshots - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to remove the share with all of its snapshots, and all content. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IncludeAllSnapshot - - Remove File Share with all of its snapshots - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the file share. This cmdlet deletes the file share that this parameter specifies. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - File share Client to be removed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - SnapshotTime - - SnapshotTime of the file share snapshot to be removed. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - System.Nullable`1[[System.DateTimeOffset, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - ---------------- Example 1: Remove a file share ---------------- - Remove-AzStorageShare -Name "ContosoShare06" - - This command removes the file share named ContosoShare06. - - - - - - ----- Example 2: Remove a file share and all its snapshots ----- - Remove-AzStorageShare -Name "ContosoShare06" -IncludeAllSnapshot - - This command removes the file share named ContosoShare06 and all its snapshots. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstorageshare - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - New-AzStorageShare - - - - - - - Remove-AzStorageShareStoredAccessPolicy - Remove - AzStorageShareStoredAccessPolicy - - Removes a stored access policy from a Storage share. - - - - The Remove-AzStorageShareStoredAccessPolicy cmdlet removes a stored access policy from an Azure Storage share. - - - - Remove-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the Storage share name for which this cmdlet removes a policy. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the Storage share name for which this cmdlet removes a policy. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from an Azure Storage share - Remove-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" - - This command removes a stored access policy named GeneralPolicy from ContosoShare. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragesharestoredaccesspolicy - - - Get-AzStorageShareStoredAccessPolicy - - - - New-AzStorageShareStoredAccessPolicy - - - - New-AzStorageContext - - - - Set-AzStorageShareStoredAccessPolicy - - - - - - - Remove-AzStorageTable - Remove - AzStorageTable - - Removes a storage table. - - - - The Remove-AzStorageTable cmdlet removes one or more storage tables from a storage account in Azure. - - - - Remove-AzStorageTable - - Name - - Specifies the name of the table to remove. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Name - - Specifies the name of the table to remove. - - System.String - - System.String - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - ------------------ Example 1: Remove a table ------------------ - Remove-AzStorageTable -Name "TableABC" - - This command removes a table. - - - - - - --------------- Example 2: Remove several tables --------------- - Get-AzStorageTable table* | Remove-AzStorageTable - - This example uses a wildcard character with the Name parameter to get all tables that match the pattern table and then passes the result on the pipeline to remove the tables. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragetable - - - Get-AzStorageTable - - - - - - - Remove-AzStorageTableStoredAccessPolicy - Remove - AzStorageTableStoredAccessPolicy - - Removes a stored access policy from an Azure storage table. - - - - The Remove-AzStorageTableStoredAccessPolicy cmdlet removes a stored access policy from an Azure storage table. - - - - Remove-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure table name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Policy - - Specifies the name of the stored access policy that this cmdlet removes. - - System.String - - System.String - - - None - - - Table - - Specifies the Azure table name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: Remove a stored access policy from a storage table - Remove-AzStorageTableStoredAccessPolicy -Table "MyTable" -Policy "Policy05" - - This command removes policy named Policy05 from storage table named MyTable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/remove-azstoragetablestoredaccesspolicy - - - Get-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageTableStoredAccessPolicy - - - - Set-AzStorageTableStoredAccessPolicy - - - - - - - Rename-AzStorageDirectory - Rename - AzStorageDirectory - - Renames a directory. - - - - The Rename-AzStorageDirectory cmdlet renames a directory from a file share. - - - - Rename-AzStorageDirectory - - ShareName - - Name of the file share where the directory would be listed. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing directory. - - System.String - - System.String - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageDirectory - - ShareClient - - ShareClienr indicated the share where the directory would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - SourcePath - - Path to an existing directory. - - System.String - - System.String - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageDirectory - - ShareDirectoryClient - - Source directory instance - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationPath - - The destination path to rename the directory to. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - ShareClient - - ShareClienr indicated the share where the directory would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - Source directory instance - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Name of the file share where the directory would be listed. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing directory. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - - - - - - - - - - - - ---------------- Example 1 : Rename a directory ---------------- - Rename-AzStorageDirectory -ShareName myshare -SourcePath testdir1 -DestinationPath testdir2 - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -Directory 1 testdir2 - - This command renames a directory from testdir1 to testdir2. - - - - - - -------- Example 2 : Rename a directory using pipeline -------- - Get-AzStorageFile -ShareName myshare -Path testdir1 | Rename-AzStorageDirectory -DestinationPath testdir2 - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -Directory 1 testdir2 - - This command gets a directory from a file share first, and then rename the directory from testdir1 to testdir2 using pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/rename-azstoragedirectory - - - - - - Rename-AzStorageFile - Rename - AzStorageFile - - Renames a file. - - - - The Rename-AzStorageFile cmdlet renames a directory from a file share. - - - - Rename-AzStorageFile - - ShareName - - Name of the file share where the file would be listed. - - System.String - - System.String - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageFile - - ShareClient - - ShareClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageFile - - ShareDirectoryClient - - ShareDirectoryClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Rename-AzStorageFile - - ShareFileClient - - Source file instance - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Force to overwrite the existing file. - - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ContentType - - Sets the MIME content type of the file. The default type is 'application/octet-stream'. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestinationPath - - The destination path to rename the file to. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Force to overwrite the existing file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - IgnoreReadonly - - Optional. Specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - If specified the permission (security descriptor) shall be set for the directory/file. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. - - System.String - - System.String - - - None - - - ShareClient - - ShareClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient indicated the share where the file would be listed. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareFileClient - - Source file instance - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Name of the file share where the file would be listed. - - System.String - - System.String - - - None - - - SourcePath - - Path to an existing file. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - --------- Example 1 : Rename a file from a file share --------- - Rename-AzStorageFile -SourcePath testfile1 -DestinationPath testfile2 -ShareName myshare - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -File 512 testfile2 - - This command renames a file from testfile1 to testfile2 under file share myshare. - - - - - - -- Example 2 : Rename a file from a file share using pipeline -- - Get-AzStorageFile -ShareName myshare -Path testfile1 | Rename-AzStorageFile -DestinationPath testfile2 - -AccountName: myaccount, ShareName: myshare - -Type Length Name ----- ------ ---- -File 512 testfile2 - - This command gets a file client object first, and the rename the file from testfile1 to testfile2 using pipeline. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/rename-azstoragefile - - - - - - Restore-AzDataLakeGen2DeletedItem - Restore - AzDataLakeGen2DeletedItem - - Restores a deleted file or directory in a filesystem. - - - - The Restore-AzDataLakeGen2DeletedItem cmdlet restores a deleted file or directory in a filesystem in an Azure storage account. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Restore-AzDataLakeGen2DeletedItem - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The deleted item path in the specified FileSystem that should be restore. In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - DeletionId - - The deletion ID associated with the soft deleted path. You can get soft deleted paths and their assocaited deletion IDs with cmdlet 'Get-AzDataLakeGen2DeletedItem'. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Restore-AzDataLakeGen2DeletedItem - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - InputObject - - Azure Datalake Gen2 Deleted Item Object to restore. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DeletionId - - The deletion ID associated with the soft deleted path. You can get soft deleted paths and their assocaited deletion IDs with cmdlet 'Get-AzDataLakeGen2DeletedItem'. - - System.String - - System.String - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - InputObject - - Azure Datalake Gen2 Deleted Item Object to restore. - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - None - - - Path - - The deleted item path in the specified FileSystem that should be restore. In the format 'directory/file.txt' or 'directory1/directory2/' - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: List all deleted files or directories from a Filesystem, and restore them by pipeline - $items = Get-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" -$items - - FileSystem Name: filesystem1 - -Path DeletionId DeletedOn RemainingRetentionDays ----- ---------- --------- ---------------------- -dir0/dir1/file1 132658816156507617 2021-05-19 07:06:55Z 3 -dir0/dir2 132658834541610122 2021-05-19 07:37:34Z 3 -dir0/dir2/file3 132658834534174806 2021-05-19 07:37:33Z 3 - -$items | Restore-AzDataLakeGen2DeletedItem - - FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir0/dir1/file1 False 1024 2021-05-19 07:06:39Z rw-r----- $superuser $superuser -dir0/dir2 True 2021-05-19 07:06:37Z rwxr-x--- $superuser $superuser -dir0/dir2/file3 False 1024 2021-05-19 07:06:42Z rw-r----- $superuser $superuser - - This command lists all deleted files or directories from a Filesystem, the restore all of them by pipeline. - - - - - - -- Example 2: Restore an single file with path and DeletionId -- - Restore-AzDataLakeGen2DeletedItem -FileSystem "filesystem1" -Path dir0/dir1/file1 -DeletionId 132658838415219780 - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir0/dir1/file1 False 1024 2021-05-19 07:06:39Z rw-r----- $superuser $superuser - - This command restores an single file with path and DeletionId. The DeletionId can be get with 'Get-AzDataLakeGen2DeletedItem' cmdlet. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azdatalakegen2deleteditem - - - - - - Restore-AzStorageContainer - Restore - AzStorageContainer - - Restores a previously deleted Azure storage blob container. - - - - The Restore-AzStorageContainer cmdlet restores a previously deleted Azure storage blob container. This cmdlet only works after enabled Container softdelete with Enable-AzStorageBlobDeleteRetentionPolicy. - - - - Restore-AzStorageContainer - - Name - - The name of the previously deleted container. - - System.String - - System.String - - - None - - - VersionId - - The version of the previously deleted container. - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - The name of the previously deleted container. - - System.String - - System.String - - - None - - - VersionId - - The version of the previously deleted container. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - Example 1: List containers include deleted containers, and restore all deleted containers with pipeline - Get-AzStorageContainer -IncludeDeleted -Context $ctx | Where-Object { $_.IsDeleted } | Restore-AzStorageContainer - -Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -container1 Off -container2 Off - - This command lists all containers include deleted containers, filter out all the deleted containers, then restore all deleted container to the same container name with pipeline. - - - - - - -------- Example 2: Restore a single deleted container -------- - Get-AzStorageContainer -IncludeDeleted -Context $ctx | Where-Object { $_.IsDeleted } - - Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -container1 8/28/2020 10:18:13 AM +00:00 True 01D685BC91A88F22 -container2 9/4/2020 12:52:37 PM +00:00 True 01D67D248986B6DA - -Restore-AzStorageContainer -Name container1 -VersionId 01D685BC91A88F22 -Context $ctx - - Storage Account Name: storageaccountname - -Name PublicAccess LastModified IsDeleted VersionId ----- ------------ ------------ --------- --------- -container1 Off - - This first command lists all containers and filter out deleted containers. The secondary command restores a deleted container by manually input the parameters. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/restore-azstoragecontainer - - - - - - Set-AzDataLakeGen2AclRecursive - Set - AzDataLakeGen2AclRecursive - - Set ACL recursively on the specified path. - - - - The Set-AzDataLakeGen2AclRecursive cmdlet sets ACL recursively on the specified path. The input ACL will replace original ACL completely. - - - - Set-AzDataLakeGen2AclRecursive - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - -------- Example 1: Set ACL recursively on a directory -------- - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl -Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx - -FailedEntries : -TotalDirectoriesSuccessfulCount : 7 -TotalFilesSuccessfulCount : 5 -TotalFailureCount : 0 -ContinuationToken : - - This command first creates an ACL object with 3 acl entries, then sets ACL recursively on a directory. - - - - - - Example 2: Set ACL recursively on a root directory of filesystem - $result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx - -$result - -FailedEntries : {dir1/dir2/file4} -TotalDirectoriesSuccessfulCount : 500 -TotalFilesSuccessfulCount : 2500 -TotalFailureCount : 1 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -$result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx - -$result - -FailedEntries : -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 1000 -TotalFailureCount : 0 -ContinuationToken : - - This command first sets ACL recursively to a root directory and failed, then resume with ContinuationToken after user fix the failed file. - - - - - - -------- Example 3: Set ACL recursively chunk by chunk -------- - $token = $null -$TotalDirectoriesSuccess = 0 -$TotalFilesSuccess = 0 -$totalFailure = 0 -$FailedEntries = New-Object System.Collections.Generic.List[System.Object] -do -{ - $result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 100 -MaxBatchCount 2 -ContinuationToken $token -Context $ctx - - # echo $result - $TotalFilesSuccess += $result.TotalFilesSuccessfulCount - $TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount - $totalFailure += $result.TotalFailureCount - $FailedEntries += $result.FailedEntries - $token = $result.ContinuationToken -}while (($token -ne $null) -and ($result.TotalFailureCount -eq 0)) -echo "" -echo "[Result Summary]" -echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)" -echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)" -echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)" -echo "ContinuationToken: `t`t`t`t`t$($token)" -echo "FailedEntries:"$($FailedEntries | ft) - - This script sets ACL rescursively on directory chunk by chunk, with chunk size as BatchSize * MaxBatchCount. Chunk size is 200 in this script. - - - - - - Example 4: Set ACL recursively on a directory and ContinueOnFailure, then resume from failures one by one - $result = Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx - -$result - -FailedEntries : {dir0/dir1/file1, dir0/dir2/file4} -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 500 -TotalFailureCount : 2 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir1/file1 False This request is not authorized to perform this operation using this permission. -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -foreach ($path in $result.FailedEntries.Name) - { - # user code to fix failed entry in $path - - #set ACL again - Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx - } - - This command first sets ACL recursively to a directory with ContinueOnFailure, and some items failed, then resume the failed items one by one. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azdatalakegen2aclrecursive - - - - - - Set-AzDataLakeGen2ItemAclObject - Set - AzDataLakeGen2ItemAclObject - - Creates/Updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet. - - - - The Set-AzDataLakeGen2ItemAclObject cmdlet creates/updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet. If the new ACL entry with same AccessControlType/EntityId/DefaultScope not exist in the input ACL, will create a new ACL entry, else update permission of existing ACL entry. - - - - Set-AzDataLakeGen2ItemAclObject - - AccessControlType - - There are four types: "user" grants rights to the owner or a named user, "group" grants rights to the owning group or a named group, "mask" restricts rights granted to named users and the members of groups, and "other" grants rights to all users not found in any of the other entries. - - - User - Group - Mask - Other - - Azure.Storage.Files.DataLake.Models.AccessControlType - - Azure.Storage.Files.DataLake.Models.AccessControlType - - - None - - - DefaultScope - - Set this parameter to indicate the ACE belongs to the default ACL for a directory; otherwise scope is implicit and the ACE belongs to the access ACL. - - - System.Management.Automation.SwitchParameter - - - False - - - EntityId - - The user or group identifier. It is omitted for entries of AccessControlType "mask" and "other". The user or group identifier is also omitted for the owner and owning group. - - System.String - - System.String - - - None - - - InputObject - - If input the PSPathAccessControlEntry[] object, will add the new ACL as a new element of the input PSPathAccessControlEntry[] object. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Permission - - The permission field is a 3-character sequence where the first character is 'r' to grant read access, the second character is 'w' to grant write access, and the third character is 'x' to grant execute permission. If access is not granted, the '-' character is used to denote that the permission is denied. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - - - - AccessControlType - - There are four types: "user" grants rights to the owner or a named user, "group" grants rights to the owning group or a named group, "mask" restricts rights granted to named users and the members of groups, and "other" grants rights to all users not found in any of the other entries. - - Azure.Storage.Files.DataLake.Models.AccessControlType - - Azure.Storage.Files.DataLake.Models.AccessControlType - - - None - - - DefaultScope - - Set this parameter to indicate the ACE belongs to the default ACL for a directory; otherwise scope is implicit and the ACE belongs to the access ACL. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EntityId - - The user or group identifier. It is omitted for entries of AccessControlType "mask" and "other". The user or group identifier is also omitted for the owner and owning group. - - System.String - - System.String - - - None - - - InputObject - - If input the PSPathAccessControlEntry[] object, will add the new ACL as a new element of the input PSPathAccessControlEntry[] object. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Permission - - The permission field is a 3-character sequence where the first character is 'r' to grant read access, the second character is 'w' to grant write access, and the third character is 'x' to grant execute permission. If access is not granted, the '-' character is used to denote that the permission is denied. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry - - - - - - - - - - - - - - Example 1: Create an ACL object with 3 ACL entry, and update ACL on a directory - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl -Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/dir3" -ACL $acl - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir3 True 2020-03-23 09:34:31Z rwxrw-rw-+ $superuser $superuser - - This command creates an ACL object with 3 ACL entries (use -InputObject parameter to add acl entry to existing acl object), and updates ACL on a directory. - - - - - - Example 2: Create an ACL object with 4 ACL entries, and update permission of an existing ACL entry - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rwt" -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rwx -InputObject $acl -$acl - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -True User rwx -False Group rw- -False Other rwt -False User ********-****-****-****-************ rwx - -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission r-x -InputObject $acl -$acl - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -True User rwx -False Group rw- -False Other rw- -False User ********-****-****-****-************ r-x - - This command first creates an ACL object with 4 ACL entries, then run the cmdlet again with different permission but same AccessControlType/EntityId/DefaultScope of an existing ACL entry. Then the permission of the ACL entry is updated, but no new ACL entry is added. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azdatalakegen2itemaclobject - - - - - - Set-AzStorageBlobContent - Set - AzStorageBlobContent - - Uploads a local file to an Azure Storage blob. - - - - The Set-AzStorageBlobContent cmdlet uploads a local file to an Azure Storage blob. - - - - Set-AzStorageBlobContent - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - Container - - Specifies the name of a container. This cmdlet uploads a file to a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of a blob. This cmdlet uploads a file to the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - - Block - Page - Append - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobContent - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of a blob. This cmdlet uploads a file to the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - - Block - Page - Append - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet uploads content to a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobContent - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - - Block - Page - Append - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Blob - - Specifies the name of a blob. This cmdlet uploads a file to the Azure Storage blob that this parameter specifies. - - System.String - - System.String - - - None - - - BlobType - - Specifies the type for the blob that this cmdlet uploads. The acceptable values for this parameter are: - Block - - Page - - Append - - The default value is Block. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet uploads content to a blob in the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of a container. This cmdlet uploads a file to a blob in the container that this parameter specifies. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. To use a storage context created from a SAS Token without read permission, need add -Force parameter to skip check blob existence. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EncryptionScope - - Encryption scope to be used when making requests to the blob. - - System.String - - System.String - - - None - - - File - - Specifies a local file path for a file to upload as blob content. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites an existing blob without prompting you for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Metadata - - Specifies metadata for the uploaded blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - PremiumPageBlobTier - - Page Blob Tier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - Properties - - Specifies properties for the uploaded blob. The supported properties are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ---------------- Example 1: Upload a named file ---------------- - Set-AzStorageBlobContent -Container "ContosoUpload" -File ".\PlanningData" -Blob "Planning2015" - - This command uploads the file that is named PlanningData to a blob named Planning2015. - - - - - - ----- Example 2: Upload all files under the current folder ----- - Get-ChildItem -File -Recurse | Set-AzStorageBlobContent -Container "ContosoUploads" - - This command uses the core Windows PowerShell cmdlet Get-ChildItem to get all the files in the current folder and in subfolders, and then passes them to the current cmdlet by using the pipeline operator. The Set-AzStorageBlobContent cmdlet uploads the files to the container named ContosoUploads. - - - - - - ------------ Example 3: Overwrite an existing blob ------------ - Get-AzStorageBlob -Container "ContosoUploads" -Blob "Planning2015" | Set-AzStorageBlobContent -File "ContosoPlanning" - - This command gets the blob named Planning2015 in the ContosoUploads container by using the Get-AzStorageBlob cmdlet, and then passes that blob to the current cmdlet. The command uploads the file that is named ContosoPlanning as Planning2015. This command does not specify the Force parameter. The command prompts you for confirmation. If you confirm the command, the cmdlet overwrites the existing blob. - - - - - - Example 4: Upload a file to a container by using the pipeline - Get-AzStorageContainer -Container "ContosoUpload*" | Set-AzStorageBlobContent -File "ContosoPlanning" -Blob "Planning2015" - - This command gets the container that starts with the string ContosoUpload by using the Get-AzStorageContainer cmdlet, and then passes that blob to the current cmdlet. The command uploads the file that is named ContosoPlanning as Planning2015. - - - - - - Example 5: Upload a file to page blob with metadata and PremiumPageBlobTier as P10 - $Metadata = @{"key" = "value"; "name" = "test"} -Set-AzStorageBlobContent -File "ContosoPlanning" -Container "ContosoUploads" -Metadata $Metadata -BlobType Page -PremiumPageBlobTier P10 - - The first command creates a hash table that contains metadata for a blob, and stores that hash table in the $Metadata variable. The second command uploads the file that is named ContosoPlanning to the container named ContosoUploads. The blob includes the metadata stored in $Metadata, and has PremiumPageBlobTier as P10. - - - - - - Example 6: Upload a file to blob with specified blob properties, and set StandardBlobTier as Cool - $filepath = "c:\temp\index.html" -Set-AzStorageBlobContent -File $filepath -Container "contosouploads" -Properties @{"ContentType" = [System.Web.MimeMapping]::GetMimeMapping($filepath); "ContentMD5" = "i727sP7HigloQDsqadNLHw=="} -StandardBlobTier Cool - -AccountName: storageaccountname, ContainerName: contosouploads - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -index.html BlockBlob 403116 text/html 2020-09-22 08:06:53Z Cool False - - This command uploads the file c:\temp\index.html to the container named contosouploads with specified blob properties, and set StandardBlobTier as Cool. This command gets ContentType value set to blob properties by [System.Web.MimeMapping]::GetMimeMapping() API. - - - - - - --- Example 7: Upload a file to a blob with Encryption Scope --- - $blob = Set-AzStorageBlobContent -File "mylocalfile" -Container "mycontainer" -Blob "myblob" -EncryptionScope "myencryptscope" - -$blob.BlobProperties.EncryptionScope - -myencryptscope - - This command uploads a file to a blob with Encryption Scope. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobcontent - - - Get-AzStorageBlobContent - - - - Get-AzStorageBlob - - - - Remove-AzStorageBlob - - - - - - - Set-AzStorageBlobImmutabilityPolicy - Set - AzStorageBlobImmutabilityPolicy - - Creates or updates ImmutabilityPolicy of a Storage blob. - - - - The Set-AzStorageBlobImmutabilityPolicy cmdlet creates or updates ImmutabilityPolicy of a Storage blob. The cmdlet only works when the blob container has already enabled immutable Storage with versioning. - - - - Set-AzStorageBlobImmutabilityPolicy - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresOn - - Blob ImmutabilityPolicy ExpiresOn - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - PolicyMode - - Blob ImmutabilityPolicy PolicyMode - - - Unlocked - Locked - Mutable - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobImmutabilityPolicy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresOn - - Blob ImmutabilityPolicy ExpiresOn - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - PolicyMode - - Blob ImmutabilityPolicy PolicyMode - - - Unlocked - Locked - Mutable - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiresOn - - Blob ImmutabilityPolicy ExpiresOn - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - PolicyMode - - Blob ImmutabilityPolicy PolicyMode - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - Example 1: Create or update immutability policy of a Storage blob. - $blob = Set-AzStorageBlobImmutabilityPolicy -Container $containerName -Blob $blobname -ExpiresOn (Get-Date).AddDays(100) -PolicyMode Unlocked - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.ImmutabilityPolicy - -ExpiresOn PolicyMode ---------- ---------- -10/27/2021 8:56:32 AM +00:00 Unlocked - - This command creates or updates ImmutabilityPolicy of a Storage blob, then show the blob and its ImmutabilityPolicy. The command only works when the blob container has already enabled immutable Storage with versioning. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobimmutabilitypolicy - - - - - - Set-AzStorageBlobLegalHold - Set - AzStorageBlobLegalHold - - Enables or disables legal hold on a Storage blob. - - - - The Set-AzStorageBlobLegalHold cmdlet enables or disables legal hold on a Storage blob. The cmdlet only works when the blob container has already enabled immutable Storage with versioning. - - - - Set-AzStorageBlobLegalHold - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableLegalHold - - Enable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobLegalHold - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableLegalHold - - Disable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobLegalHold - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - EnableLegalHold - - Enable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobLegalHold - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableLegalHold - - Disable LegalHold on the Blob. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisableLegalHold - - Disable LegalHold on the Blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - EnableLegalHold - - Enable LegalHold on the Blob. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression.See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ------- Example 1: Enable legal hold on a Storage blob. ------- - $blob = Set-AzStorageBlobLegalHold -Container $containerName -Blob $blobname -EnableLegalHold - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.HasLegalHold -True - - This command enables legal hold on a Storage blob, then show the result. The command only works when the blob container has already enabled immutable Storage with versioning. - - - - - - Example 2: Disable legal hold on a Storage blob with pipeline. - $blob = Get-AzStorageBlob -Container $containerName -Blob $blobname | Set-AzStorageBlobLegalHold -DisableLegalHold - -$blob - - AccountName: mystorageaccount, ContainerName: mycontainer - -Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ----- -------- ------ ----------- ------------ ---------- ------------ --------- --------- -testblob BlockBlob 10485760 application/octet-stream 2021-07-19 08:56:00Z Hot False 2021-07-19T08:56:01.8120788Z * - -$blob.BlobProperties.HasLegalHold -False - - This command disables legal hold on a Storage blob with pipeline, then show the result. The command only works when the blob container has already enabled immutable Storage with versioning. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragebloblegalhold - - - - - - Set-AzStorageBlobTag - Set - AzStorageBlobTag - - Set blob tags of a specific blob. - - - - The Set-AzStorageBlobTag sets blob tags of a specific blob. - - - - Set-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobTag - - Blob - - Blob name - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageBlobTag - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Blob name - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer Object - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Container name - - System.String - - System.String - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Tag - - Blob tags which will set to the blob. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - --------- Example 1: Set blob tags on a specific blob --------- - Set-AzStorageBlobTag -Container "containername" -Blob testblob -Tag @{"tag1" = "value1"; "tag2" = "value2" } - -Name Value ----- ----- -tag2 value2 -tag1 value1 - - This command sets blob tags on a specific blob. - - - - - - Example 2: Set blob tags on a specific blob with tag condition - Set-AzStorageBlobTag -Container "containername" -Blob testblob -Tag @{"tag1" = "value1"; "tag2" = "value2" } -TagCondition """tag1""='value1'" - -Name Value ----- ----- -tag2 value2 -tag1 value1 - - This command sets blob tags on a specific blob with tag condition. The cmdlet will only success when the blob contains a tag with name "tag1" and value "value1", else the cmdlet will fail with error code 412. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageblobtag - - - - - - Set-AzStorageContainerAcl - Set - AzStorageContainerAcl - - Sets the public access permission to a storage container. - - - - The Set-AzStorageContainerAcl cmdlet sets the public access permission to the specified storage container in Azure. - - - - Set-AzStorageContainerAcl - - Name - - Specifies a container name. - - System.String - - System.String - - - None - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: --Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. --Blob. Provides read access to blob data in a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. --Off. Restricts access to only the storage account owner. - - - Off - Container - Blob - Unknown - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. Server side time out for each request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create it by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Name - - Specifies a container name. - - System.String - - System.String - - - None - - - PassThru - - Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies the level of public access to this container. By default, the container and any blobs in it can be accessed only by the owner of the storage account. To grant anonymous users read permissions to a container and its blobs, you can set the container permissions to enable public access. Anonymous users can read blobs in a publicly available container without authenticating the request. The acceptable values for this parameter are: --Container. Provides full read access to a container and its blobs. Clients can enumerate blobs in the container through anonymous request, but cannot enumerate containers in the storage account. --Blob. Provides read access to blob data in a container through anonymous request, but does not provide access to container data. Clients cannot enumerate blobs in the container by using anonymous request. --Off. Restricts access to only the storage account owner. - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. Server side time out for each request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - - - - - - - - - - ------ Example 1: Set azure storage container ACL by name ------ - Set-AzStorageContainerAcl -Container "Container01" -Permission Off -PassThru - - This command creates a container that has no public access. - - - - - - Example 2: Set azure storage container ACL by using the pipeline - Get-AzStorageContainer container* | Set-AzStorageContainerAcl -Permission Blob -PassThru - - This command gets all storage containers whose name starts with container and then passes the result on the pipeline to set the permission for them all to Blob access. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragecontaineracl - - - Get-AzStorageContainer - - - - New-AzStorageContainer - - - - Remove-AzStorageContainer - - - - - - - Set-AzStorageContainerStoredAccessPolicy - Set - AzStorageContainerStoredAccessPolicy - - Sets a stored access policy for an Azure storage container. - - - - The Set-AzStorageContainerStoredAccessPolicy cmdlet sets a stored access policy for an Azure storage container. - - - - Set-AzStorageContainerStoredAccessPolicy - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Sets the start time to be $Null. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the Azure storage container name. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Sets the start time to be $Null. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage container. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Set a stored access policy in a storage container with full permission - Set-AzStorageContainerStoredAccessPolicy -Container "MyContainer" -Policy "Policy06" -Permission rwdl - - This command sets an access policy named Policy06 for storage container named MyContainer. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragecontainerstoredaccesspolicy - - - Get-AzStorageContainerStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageContainerStoredAccessPolicy - - - - Remove-AzStorageContainerStoredAccessPolicy - - - - - - - Set-AzStorageCORSRule - Set - AzStorageCORSRule - - Sets the CORS rules for a type of Storage service. - - - - The Set-AzStorageCORSRule cmdlet sets the Cross-Origin Resource Sharing (CORS) rules for a type of Azure Storage service. The types of storage services for this cmdlet are Blob, Table, Queue, and File. This cmdlet overwrites the existing rules. To see the current rules, use the Get-AzStorageCORSRule cmdlet. - - - - Set-AzStorageCORSRule - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet assigns rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CorsRules - - Specifies an array of CORS rules. You can retrieve the existing rules using the Get-AzStorageCORSRule cmdlet. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CorsRules - - Specifies an array of CORS rules. You can retrieve the existing rules using the Get-AzStorageCORSRule cmdlet. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule[] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - PassThru - - Indicates that this cmdlet returns a Boolean that reflects the success of the operation. By default, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the Azure Storage service type for which this cmdlet assigns rules. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSCorsRule - - - - - - - - - - - - - - ------- Example 1: Assign CORS rules to the blob service ------- - $CorsRules = (@{ - AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition"); - AllowedOrigins=@("*"); - MaxAgeInSeconds=30; - AllowedMethods=@("Get","Connect")}, - @{ - AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com"); - ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader"); - AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader"); - MaxAgeInSeconds=30; - AllowedMethods=@("Put")}) - -Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules - - The first command assigns an array of rules to the $CorsRules variable. This command uses standard extends over several lines in this code block. The second command assigns the rules in $CorsRules to the Blob service type. - - - - - - - Example 2: Change properties of a CORS rule for blob service - - $CorsRules = Get-AzStorageCORSRule -ServiceType Blob -$CorsRules[0].AllowedHeaders = @("x-ms-blob-content-type", "x-ms-blob-content-disposition") -$CorsRules[0].AllowedMethods = @("Get", "Connect", "Merge") -Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules - - The first command gets the current CORS rules for the Blob type by using the Get-AzStorageCORSRule cmdlet. The command stores the rules in the $CorsRules array variable. The second and third commands modify the first rule in $CorsRules. The final command assigns the rules in $CorsRules to the Blob service type. The revised rules overwrite the current CORS rules. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragecorsrule - - - Get-AzStorageCORSRule - - - - New-AzStorageContext - - - - Remove-AzStorageCORSRule - - - - - - - Set-AzStorageFileContent - Set - AzStorageFileContent - - Uploads the contents of a file. - - - - The Set-AzStorageFileContent cmdlet uploads the contents of a file to a file on a specified share. - - - - Set-AzStorageFileContent - - ShareName - - Specifies the name of the file share. This cmdlet uploads to a file in the file share this parameter specifies. - - System.String - - System.String - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageFileContent - - ShareClient - - ShareClient object indicated the share where the file would be uploaded to. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Set-AzStorageFileContent - - ShareDirectoryClient - - ShareDirectoryClient object indicated the directory where the file would be uploaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - AsJob - - Run cmdlet in the background. - - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - - System.Management.Automation.SwitchParameter - - - False - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AsJob - - Run cmdlet in the background. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Indicates that this cmdlet overwrites an existing Azure storage file. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PassThru - - Indicates that this cmdlet returns the AzureStorageFile object that it creates or uploads. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Path - - Specifies the path of a file or folder. This cmdlet uploads contents to the file that this parameter specifies, or to a file in the folder that this parameter specifies. If you specify a folder, this cmdlet creates a file that has the same name as the source file. If you specify a path of a file that does not exist, this cmdlet creates that file and saves the contents to that file. If you specify a file that already exists, and you specify the Force parameter, this cmdlet overwrites the contents of the file. If you specify a file that already exists and you do not specify Force , this cmdlet makes no change, and returns an error. If you specify a path of a folder that does not exist, this cmdlet makes no change, and returns an error. - - System.String - - System.String - - - None - - - PreserveSMBAttribute - - Keep the source File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in destination File. This parameter is only available on Windows. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share where the file would be uploaded to. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareDirectoryClient - - ShareDirectoryClient object indicated the directory where the file would be uploaded. - - Azure.Storage.Files.Shares.ShareDirectoryClient - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - None - - - ShareName - - Specifies the name of the file share. This cmdlet uploads to a file in the file share this parameter specifies. - - System.String - - System.String - - - None - - - Source - - Specifies the source file that this cmdlet uploads. If you specify a file that does not exist, this cmdlet returns an error. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Azure.Storage.Files.Shares.ShareDirectoryClient - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - -------- Example 1: Upload a file in the current folder -------- - Set-AzStorageFileContent -ShareName "ContosoShare06" -Source "DataFile37" -Path "ContosoWorkingFolder/CurrentDataFile" - - This command uploads a file that is named DataFile37 in the current folder as a file that is named CurrentDataFile in the folder named ContosoWorkingFolder. - - - - - - ---- Example 2: Upload all the files in the current folder ---- - $CurrentFolder = (Get-Item .).FullName -$Container = Get-AzStorageShare -Name "ContosoShare06" -Get-ChildItem -Recurse | Where-Object { $_.GetType().Name -eq "FileInfo"} | ForEach-Object { - $path=$_.FullName.Substring($Currentfolder.Length+1).Replace("\","/") - Set-AzStorageFileContent -ShareClient $Container -Source $_.FullName -Path $path -Force -} - - This example uses several common Windows PowerShell cmdlets and the current cmdlet to upload all files from the current folder to the root folder of container ContosoShare06. The first command gets the name of the current folder and stores it in the $CurrentFolder variable. The second command uses the Get-AzStorageShare cmdlet to get the file share named ContosoShare06, and then stores it in the $Container variable. The final command gets the contents of the current folder and passes each one to the Where-Object cmdlet by using the pipeline operator. That cmdlet filters out objects that are not files, and then passes the files to the ForEach-Object cmdlet. That cmdlet runs a script block for each file that creates the appropriate path for it and then uses the current cmdlet to upload the file. The result has the same name and same relative position with regard to the other files that this example uploads. For more information about script blocks, type `Get-Help about_Script_Blocks`. - - - - - - Example 3: Upload a local file to an Azure file, and perserve the local File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the Azure file. - Set-AzStorageFileContent -Source $localFilePath -ShareName sample -Path "dir1/file1" -PreserveSMBAttribute - - This example uploads a local file to an Azure file, and perserves the local File SMB properties (File Attributtes, File Creation Time, File Last Write Time) in the Azure file. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragefilecontent - - - Remove-AzStorageDirectory - - - - New-AzStorageDirectory - - - - Get-AzStorageFileContent - - - - - - - Set-AzStorageQueueStoredAccessPolicy - Set - AzStorageQueueStoredAccessPolicy - - Sets a stored access policy for an Azure storage queue. - - - - The Set-AzStorageQueueStoredAccessPolicy cmdlet sets a stored access policy for an Azure storage queue. - - - - Set-AzStorageQueueStoredAccessPolicy - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet sets the start time to be $Null. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet sets the start time to be $Null. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage queue. It is important to note that this is a string, like `raup` (for Read, Add, Update, and ProcessMessages). - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - Queue - - Specifies the Azure storage queue name. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Set a stored access policy in the queue with full permission - Set-AzStorageQueueStoredAccessPolicy -Queue "MyQueue" -Policy "Policy07" -Permission arup - - This command sets an access policy named Policy07 for storage queue named MyQueue. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragequeuestoredaccesspolicy - - - Get-AzStorageQueueStoredAccessPolicy - - - - New-AzStorageQueueStoredAccessPolicy - - - - Remove-AzStorageQueueStoredAccessPolicy - - - - - - - Set-AzStorageServiceLoggingProperty - Set - AzStorageServiceLoggingProperty - - Modifies logging for Azure Storage services. - - - - The Set-AzStorageServiceLoggingProperty cmdlet modifies logging for Azure Storage services. - - - - Set-AzStorageServiceLoggingProperty - - ServiceType - - Specifies the storage service type. This cmdlet modifies the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - LoggingOperations - - Specifies an array of Azure Storage service operations. Azure Storage services logs the operations that this parameter specifies. The acceptable values for this parameter are: - None - - Read - - Write - - Delete - - All - - - None - Read - Write - Delete - All - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - - None - - - PassThru - - Indicates that this cmdlet returns the updated logging properties. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains logged information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Version - - Specifies the version of the Azure Storage service logging. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - LoggingOperations - - Specifies an array of Azure Storage service operations. Azure Storage services logs the operations that this parameter specifies. The acceptable values for this parameter are: - None - - Read - - Write - - Delete - - All - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[] - - - None - - - PassThru - - Indicates that this cmdlet returns the updated logging properties. If you do not specify this parameter, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains logged information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet modifies the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Version - - Specifies the version of the Azure Storage service logging. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - - - - - - - - - - - - - -- Example 1: Modify logging properties for the Blob service -- - Set-AzStorageServiceLoggingProperty -ServiceType Blob -LoggingOperations Read,Write -PassThru -RetentionDays 10 -Version 1.0 - - This command modifies version 1.0 logging for blob storage to include read and write operations. Azure Storage service logging retains entries for 10 days. Because this command specifies the PassThru parameter, the command displays the modified logging properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageserviceloggingproperty - - - Get-AzStorageServiceLoggingProperty - - - - New-AzStorageContext - - - - - - - Set-AzStorageServiceMetricsProperty - Set - AzStorageServiceMetricsProperty - - Modifies metrics properties for the Azure Storage service. - - - - The Set-AzStorageServiceMetricsProperty cmdlet modifies metrics properties for the Azure Storage service. - - - - Set-AzStorageServiceMetricsProperty - - ServiceType - - Specifies the storage service type. This cmdlet modifies the metrics properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet sets the Azure Storage service metrics type to the value that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - - Hour - Minute - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MetricsLevel - - Specifies the metrics level that Azure Storage uses for the service. The acceptable values for this parameter are: - None - - Service - - ServiceAndApi - - - None - Service - ServiceAndApi - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - - None - - - PassThru - - Indicates that this cmdlets returns the updated metrics properties. If you do not specify this parameter, this cmdlet does not return a value. - - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains metrics information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Version - - Specifies the version of the Azure Storage metrics. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MetricsLevel - - Specifies the metrics level that Azure Storage uses for the service. The acceptable values for this parameter are: - None - - Service - - ServiceAndApi - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - System.Nullable`1[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel] - - - None - - - MetricsType - - Specifies a metrics type. This cmdlet sets the Azure Storage service metrics type to the value that this parameter specifies. The acceptable values for this parameter are: Hour and Minute. - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - Microsoft.WindowsAzure.Commands.Storage.Common.ServiceMetricsType - - - None - - - PassThru - - Indicates that this cmdlets returns the updated metrics properties. If you do not specify this parameter, this cmdlet does not return a value. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - RetentionDays - - Specifies the number of days that the Azure Storage service retains metrics information. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ServiceType - - Specifies the storage service type. This cmdlet modifies the metrics properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - The value of File is not currently supported. - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Version - - Specifies the version of the Azure Storage metrics. The default value is 1.0. - - System.Nullable`1[System.Double] - - System.Nullable`1[System.Double] - - - None - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - - - - - - - - - - - - - -- Example 1: Modify metrics properties for the Blob service -- - Set-AzStorageServiceMetricsProperty -ServiceType Blob -MetricsType Hour -MetricsLevel Service -PassThru -RetentionDays 10 -Version 1.0 - - This command modifies version 1.0 metrics for blob storage to a level of Service. Azure Storage service metrics retains entries for 10 days. Because this command specifies the PassThru parameter, the command displays the modified metrics properties. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstorageservicemetricsproperty - - - Get-AzStorageServiceMetricsProperty - - - - New-AzStorageContext - - - - - - - Set-AzStorageShareQuota - Set - AzStorageShareQuota - - Sets the storage capacity for a share. - - - - The Set-AzStorageShareQuota cmdlet sets the storage capacity for a specified share. - - - - Set-AzStorageShareQuota - - ShareClient - - ShareClient object indicated the share whose quota to set. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Quota - - Specifies the quota value in gigabytes (GB). See the quota limitation in https://learn.microsoft.com/azure/azure-subscription-service-limits#azure-files-limits. - - System.Int32 - - System.Int32 - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - Set-AzStorageShareQuota - - ShareName - - Specifies the name of the file share for which to set a quota. - - System.String - - System.String - - - None - - - Quota - - Specifies the quota value in gigabytes (GB). See the quota limitation in https://learn.microsoft.com/azure/azure-subscription-service-limits#azure-files-limits. - - System.Int32 - - System.Int32 - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Quota - - Specifies the quota value in gigabytes (GB). See the quota limitation in https://learn.microsoft.com/azure/azure-subscription-service-limits#azure-files-limits. - - System.Int32 - - System.Int32 - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareClient - - ShareClient object indicated the share whose quota to set. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - ShareName - - Specifies the name of the file share for which to set a quota. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - Azure.Storage.Files.Shares.ShareClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - - - - - - - - - - - - -------- Example 1: Set the storage capacity of a share -------- - Set-AzStorageShareQuota -ShareName "ContosoShare01" -Quota 1024 - - This command sets the storage capacity for a share named ContosoShare01 to 1024 GB. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragesharequota - - - Get-AzStorageFileContent - - - - Get-AzStorageShare - - - - New-AzStorageContext - - - - - - - Set-AzStorageShareStoredAccessPolicy - Set - AzStorageShareStoredAccessPolicy - - Updates a stored access policy on a Storage share. - - - - The Set-AzStorageShareStoredAccessPolicy cmdlet updates stored access policy on an Azure Storage share. - - - - Set-AzStorageShareStoredAccessPolicy - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that this cmdlet clears the ExpiryTime property in the stored access policy. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet clears the StartTime property in the stored access policy. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy becomes invalid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that this cmdlet clears the ExpiryTime property in the stored access policy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that this cmdlet clears the StartTime property in the stored access policy. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the share or files under it. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies a name for the stored access policy. - - System.String - - System.String - - - None - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareName - - Specifies the name of the Storage share. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Management.Automation.PSObject - - - - - - - - - - - - - - -- Example 1: Update a stored access policy in Storage share -- - Set-AzStorageShareStoredAccessPolicy -ShareName "ContosoShare" -Policy "GeneralPolicy" -Permission "rwdl" - - This command updates a stored access policy that has full permission in a share. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragesharestoredaccesspolicy - - - Get-AzStorageShareStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageShareStoredAccessPolicy - - - - Remove-AzStorageShareStoredAccessPolicy - - - - - - - Set-AzStorageTableStoredAccessPolicy - Set - AzStorageTableStoredAccessPolicy - - Sets the stored access policy for an Azure storage table. - - - - The Set-AzStorageTableStoredAccessPolicy cmdlet set the stored access policy for an Azure storage table. - - - - Set-AzStorageTableStoredAccessPolicy - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that the start time is set to $Null. - - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - ExpiryTime - - Specifies the time at which the stored access policy expires. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - NoExpiryTime - - Indicates that the access policy has no expiration date. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - NoStartTime - - Indicates that the start time is set to $Null. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Permission - - Specifies permissions in the stored access policy to access the storage table. It is important to note that this is a string, like `rwd` (for Read, Write and Delete). - - System.String - - System.String - - - None - - - Policy - - Specifies the name for the stored access policy. - - System.String - - System.String - - - None - - - StartTime - - Specifies the time at which the stored access policy becomes valid. - - System.Nullable`1[System.DateTime] - - System.Nullable`1[System.DateTime] - - - None - - - Table - - Specifies the Azure storage table name. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Set a stored access policy in table with full permission - Set-AzStorageTableStoredAccessPolicy -Table "MyTable" -Policy "Policy08" -Permission raud - - This command sets an access policy named Policy08 for storage table named MyTable. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/set-azstoragetablestoredaccesspolicy - - - Get-AzStorageTableStoredAccessPolicy - - - - New-AzStorageContext - - - - New-AzStorageTableStoredAccessPolicy - - - - Remove-AzStorageTableStoredAccessPolicy - - - - - - - Start-AzStorageBlobCopy - Start - AzStorageBlobCopy - - Starts to copy a blob. - - - - The Start-AzStorageBlobCopy cmdlet starts to copy a blob. - - - - Start-AzStorageBlobCopy - - AbsoluteUri - - Specifies the absolute URI of a file to copy to an Azure Storage blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestCloudBlob - - Specifies a destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - SrcBlob - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet copies a blob from the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - SrcBlob - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - - Unknown - P4 - P6 - P10 - P20 - P30 - P40 - P50 - P60 - P70 - P80 - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcContainer - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - SrcShareName - - Specifies the source share name. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a CloudFileShare object from Azure Storage Client library. You can create it or use Get-AzStorageShare cmdlet. - - Microsoft.Azure.Storage.File.CloudFileShare - - Microsoft.Azure.Storage.File.CloudFileShare - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcDir - - Specifies a CloudFileDirectory object from Azure Storage Client library. - - Microsoft.Azure.Storage.File.CloudFileDirectory - - Microsoft.Azure.Storage.File.CloudFileDirectory - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a CloudFile object from Azure Storage Client library. You can create it or use Get-AzStorageFile cmdlet. - - Microsoft.Azure.Storage.File.CloudFile - - Microsoft.Azure.Storage.File.CloudFile - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestCloudBlob - - Specifies a destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - - Standard - High - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a CloudFile object from Azure Storage Client library. You can create it or use Get-AzStorageFile cmdlet. - - Microsoft.Azure.Storage.File.CloudFile - - Microsoft.Azure.Storage.File.CloudFile - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Specifies the absolute URI of a file to copy to an Azure Storage blob. - - System.String - - System.String - - - None - - - BlobBaseClient - - BlobBaseClient Object - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - Azure.Storage.Blobs.Specialized.BlobBaseClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. This cmdlet copies a blob from the container that this parameter specifies. To obtain a CloudBlobContainer object, use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Specifies the name of the destination blob. - - System.String - - System.String - - - None - - - DestCloudBlob - - Specifies a destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - DestContainer - - Specifies the name of the destination container. - - System.String - - System.String - - - None - - - DestContext - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestTagCondition - - Optional Tag expression statement to check match condition on the destination Blob. The blob request will fail when the destination blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Force - - Indicates that this cmdlet overwrites the destination blob without prompting you for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - PremiumPageBlobTier - - Premium Page Blob Tier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - Microsoft.Azure.Storage.Blob.PremiumPageBlobTier - - - None - - - RehydratePriority - - Block Blob RehydratePriority. Indicates the priority with which to rehydrate an archived blob. Valid values are High/Standard. - - Microsoft.Azure.Storage.Blob.RehydratePriority - - Microsoft.Azure.Storage.Blob.RehydratePriority - - - None - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainer - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - SrcDir - - Specifies a CloudFileDirectory object from Azure Storage Client library. - - Microsoft.Azure.Storage.File.CloudFileDirectory - - Microsoft.Azure.Storage.File.CloudFileDirectory - - - None - - - SrcFile - - Specifies a CloudFile object from Azure Storage Client library. You can create it or use Get-AzStorageFile cmdlet. - - Microsoft.Azure.Storage.File.CloudFile - - Microsoft.Azure.Storage.File.CloudFile - - - None - - - SrcFilePath - - Specifies the source file relative path of source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a CloudFileShare object from Azure Storage Client library. You can create it or use Get-AzStorageShare cmdlet. - - Microsoft.Azure.Storage.File.CloudFileShare - - Microsoft.Azure.Storage.File.CloudFileShare - - - None - - - SrcShareName - - Specifies the source share name. - - System.String - - System.String - - - None - - - StandardBlobTier - - Block Blob Tier, valid values are Hot/Cool/Archive/Cold. See detail in https://learn.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers - - System.String - - System.String - - - None - - - Tag - - Blob Tags - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - TagCondition - - Optional Tag expression statement to check match condition on the source blob. The blob request will fail when the source blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Storage.File.CloudFile - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ----------------- Example 1: Copy a named blob ----------------- - Start-AzStorageBlobCopy -SrcBlob "ContosoPlanning2015" -DestContainer "ContosoArchives" -SrcContainer "ContosoUploads" - - This command starts the copy operation of the blob named ContosoPlanning2015 from the container named ContosoUploads to the container named ContosoArchives. - - - - - - ----- Example 2: Get a container to specify blobs to copy ----- - Get-AzStorageContainer -Name "ContosoUploads" | Start-AzStorageBlobCopy -SrcBlob "ContosoPlanning2015" -DestContainer "ContosoArchives" - - This command gets the container named ContosoUploads, by using the Get-AzStorageContainer cmdlet, and then passes the container to the current cmdlet by using the pipeline operator. That cmdlet starts the copy operation of the blob named ContosoPlanning2015. The previous cmdlet provides the source container. The DestContainer parameter specifies ContosoArchives as the destination container. - - - - - - ---- Example 3: Get all blobs in a container and copy them ---- - Get-AzStorageBlob -Container "ContosoUploads" | Start-AzStorageBlobCopy -DestContainer "ContosoArchives" - - This command gets the blobs in the container named ContosoUploads, by using the Get-AzStorageBlob cmdlet, and then passes the results to the current cmdlet by using the pipeline operator. That cmdlet starts the copy operation of the blobs to the container named ContosoArchives. - - - - - - -------- Example 4: Copy a blob specified as an object -------- - $SrcBlob = Get-AzStorageBlob -Container "ContosoUploads" -Blob "ContosoPlanning2015" -$DestBlob = Get-AzStorageBlob -Container "ContosoArchives" -Blob "ContosoPlanning2015Archived" -Start-AzStorageBlobCopy -ICloudBlob $SrcBlob.ICloudBlob -DestICloudBlob $DestBlob.ICloudBlob - - The first command gets the blob named ContosoPlanning2015 in the container named ContosoUploads. The command stores that object in the $SrcBlob variable. The second command gets the blob named ContosoPlanning2015Archived in the container named ContosoArchives. The command stores that object in the $DestBlob variable. The last command starts the copy operation from the source container to the destination container. The command uses standard dot notation to specify the ICloudBlob objects for the $SrcBlob and $DestBlob blobs. - - - - - - -------------- Example 5: Copy a blob from a URI -------------- - $Context = New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Start-AzStorageBlobCopy -AbsoluteUri "http://www.contosointernal.com/planning" -DestContainer "ContosoArchive" -DestBlob "ContosoPlanning2015" -DestContext $Context - - This command creates a context for the account named ContosoGeneral that uses the specified key, and then stores that key in the $Context variable. The second command copies the file from the specified URI to the blob named ContosoPlanning in the container named ContosoArchive. The command starts the copy operation to the destination context stored in $Context. There are no source storage context, so the source Uri must have access to the source object. E.g: if the source is a none public Azure blob, the Uri should contain SAS token which has read access to the blob. - - - - - - Example 6: Copy a block blob to destination container with a new blob name, and set destination blob StandardBlobTier as Hot, RehydratePriority as High - Start-AzStorageBlobCopy -SrcContainer "ContosoUploads" -SrcBlob "BlockBlobName" -DestContainer "ContosoArchives" -DestBlob "NewBlockBlobName" -StandardBlobTier Hot -RehydratePriority High - - This command starts the copy operation of a block blob to destination container with a new blob name, and set destination blob StandardBlobTier as Hot, RehydratePriority as High - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/start-azstorageblobcopy - - - Get-AzStorageBlobCopyState - - - - Stop-AzStorageBlobCopy - - - - - - - Start-AzStorageBlobIncrementalCopy - Start - AzStorageBlobIncrementalCopy - - Start an Incremental copy operation from a Page blob snapshot to the specified destination Page blob. - - - - Start an Incremental copy operation from a Page blob snapshot to the specified destination Page blob. See more details of the feature in https://learn.microsoft.com/rest/api/storageservices/fileservices/incremental-copy-blob. - - - - Start-AzStorageBlobIncrementalCopy - - AbsoluteUri - - Absolute Uri to the source. Be noted that the credential should be provided in the Uri, if the source requires any. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - CloudBlob object from Azure Storage Client library. You can create it or use Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - CloudBlob object from Azure Storage Client library. You can create it or use Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestCloudBlob - - Destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - CloudBlobContainer object from Azure Storage Client library. You can create it or use Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Source page blob name. - - System.String - - System.String - - - None - - - SrcBlobSnapshotTime - - Source page blob snapshot time. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageBlobIncrementalCopy - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Source page blob name. - - System.String - - System.String - - - None - - - SrcBlobSnapshotTime - - Source page blob snapshot time. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Absolute Uri to the source. Be noted that the credential should be provided in the Uri, if the source requires any. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - The client side maximum execution time for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - CloudBlob object from Azure Storage Client library. You can create it or use Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - CloudBlobContainer - - CloudBlobContainer object from Azure Storage Client library. You can create it or use Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - The total amount of concurrent async tasks. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Source Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestBlob - - Destination blob name - - System.String - - System.String - - - None - - - DestCloudBlob - - Destination CloudBlob object - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - None - - - DestContainer - - Destination container name - - System.String - - System.String - - - None - - - DestContext - - Destination Azure Storage Context. You can create it by New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ServerTimeoutPerRequest - - The server time out for each request in seconds. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Source page blob name. - - System.String - - System.String - - - None - - - SrcBlobSnapshotTime - - Source page blob snapshot time. - - System.Nullable`1[System.DateTimeOffset] - - System.Nullable`1[System.DateTimeOffset] - - - None - - - SrcContainer - - Source Container name - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudPageBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - Example 1: Start Incremental Copy Operation by blob name and snapshot time - Start-AzStorageBlobIncrementalCopy -SrcContainer container1 -SrcBlob blob1 -SrcBlobSnapshotTime "04/07/2017 09:55:36.1190229 AM +00:00" -DestContainer container2 -DestBlob blob2 - - This command start Incremental Copy Operation by blob name and snapshot time - - - - - - - Example 2: Start Incremental copy operation using source uri - - Start-AzStorageBlobIncrementalCopy -AbsoluteUri "http://www.somesite.com/somefile?snapshot=2017-04-07T10:05:40.2126635Z" -DestContainer container -DestBlob blob -DestContext $context - - This command start Incremental Copy Operation using source uri - - - - - - Example 3: Start Incremental copy operation using container pipeline from GetAzureStorageContainer - Get-AzStorageContainer -Container container1 | Start-AzStorageBlobIncrementalCopy -SrcBlob blob -SrcBlobSnapshotTime "04/07/2017 09:55:36.1190229 AM +00:00" -DestContainer container2 - - This command start Incremental Copy Operation using container pipeline from GetAzureStorageContainer - - - - - - Example 4: start Incremental copy operation from CloudPageBlob object to destination blob with blob name - $srcBlobSnapshot = Get-AzStorageBlob -Container container1 -prefix blob1| Where-Object ({$_.ICloudBlob.IsSnapshot})[0] -Start-AzStorageBlobIncrementalCopy -CloudBlob $srcBlobSnapshot.ICloudBlob -DestContainer container2 -DestBlob blob2 - - This command start Incremental Copy Operation from CloudPageBlob object to destination blob with blob name - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/start-azstorageblobincrementalcopy - - - - - - Start-AzStorageFileCopy - Start - AzStorageFileCopy - - Starts to copy a source file. - - - - The Start-AzStorageFileCopy cmdlet starts to copy a source file to a destination file. This cmdlet will trigger asynchronous blob copy, the copy process is handled by server. If this is a cross account blob copy, there is no SLA for the blob copy. - - - - Start-AzStorageFileCopy - - AbsoluteUri - - Specifies the URI of the source file. If the source location requires a credential, you must provide one. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - AbsoluteUri - - Specifies the URI of the source file. If the source location requires a credential, you must provide one. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlobName - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainerName - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the path of the source file relative to the source directory or source share. - - System.String - - System.String - - - None - - - SrcShareName - - Specifies the name of the source share. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlobName - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainer - - Specifies a cloud blob container object. You can create cloud blob container object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies a CloudBlob object. You can create a cloud blob or obtain one by using the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFilePath - - Specifies the path of the source file relative to the source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a cloud file share object. You can create a cloud file share or obtain one by using the Get-AzStorageShare cmdlet. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a ShareFileClient object. You can create a ShareFileClient or obtain one by using Get-AzStorageFile . - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies a CloudBlob object. You can create a cloud blob or obtain one by using the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Start-AzStorageFileCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcFile - - Specifies a ShareFileClient object. You can create a ShareFileClient or obtain one by using Get-AzStorageFile . - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - AbsoluteUri - - Specifies the URI of the source file. If the source location requires a credential, you must provide one. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure Storage context. To obtain a context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DestContext - - Specifies the Azure Storage context of the destination. To obtain a context, use New-AzStorageContext . - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DestFilePath - - Specifies the path of the destination file relative to the destination share. - - System.String - - System.String - - - None - - - DestShareFileClient - - ShareFileClient object indicated the Dest file. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - DestShareName - - Specifies the name of the destination share. - - System.String - - System.String - - - None - - - DisAllowDestTrailingDot - - Disallow trailing dot (.) to suffix destination directory and destination file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DisAllowSourceTrailingDot - - Disallow trailing dot (.) to suffix source directory and source file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - SrcBlob - - Specifies a CloudBlob object. You can create a cloud blob or obtain one by using the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - SrcBlobName - - Specifies the name of the source blob. - - System.String - - System.String - - - None - - - SrcContainer - - Specifies a cloud blob container object. You can create cloud blob container object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - SrcContainerName - - Specifies the name of the source container. - - System.String - - System.String - - - None - - - SrcFile - - Specifies a ShareFileClient object. You can create a ShareFileClient or obtain one by using Get-AzStorageFile . - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - SrcFilePath - - Specifies the path of the source file relative to the source directory or source share. - - System.String - - System.String - - - None - - - SrcShare - - Specifies a cloud file share object. You can create a cloud file share or obtain one by using the Get-AzStorageShare cmdlet. - - Azure.Storage.Files.Shares.ShareClient - - Azure.Storage.Files.Shares.ShareClient - - - None - - - SrcShareName - - Specifies the name of the source share. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - - - - - - - - - - - - - Example 1: Start copy operation from file to file by using share name and file name - Start-AzStorageFileCopy -SrcShareName "ContosoShare01" -SrcFilePath "FilePath01" -DestShareName "ContosoShare02" -DestFilePath "FilePath02" - - This command starts a copy operation from file to file. The command specifies share name and file name - - - - - - Example 2: Start copy operation from blob to file by using container name and blob name - Start-AzStorageFileCopy -SrcContainerName "ContosoContainer01" -SrcBlobName "ContosoBlob01" -DestShareName "ContosoShare" -DestFilePath "FilePath02" - - This command starts a copy operation from blob to file. The command specifies container name and blob name - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/start-azstoragefilecopy - - - Get-AzStorageBlob - - - - Get-AzStorageContainer - - - - Get-AzStorageFile - - - - Get-AzStorageShare - - - - Get-AzStorageFileCopyState - - - - Stop-AzStorageFileCopy - - - - - - - Stop-AzStorageBlobCopy - Stop - AzStorageBlobCopy - - Stops a copy operation. - - - - The Stop-AzStorageBlobCopy cmdlet stops a copy operation to the specified destination blob. - - - - Stop-AzStorageBlobCopy - - Blob - - Specifies the name of the blob. - - System.String - - System.String - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageBlobCopy - - Blob - - Specifies the name of the blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can create the object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageBlobCopy - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Blob - - Specifies the name of the blob. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - CloudBlob - - Specifies a CloudBlob object from Azure Storage Client library. To obtain a CloudBlob object, use the Get-AzStorageBlob cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlob - - Microsoft.Azure.Storage.Blob.CloudBlob - - - None - - - CloudBlobContainer - - Specifies a CloudBlobContainer object from the Azure Storage Client library. You can create the object or use the Get-AzStorageContainer cmdlet. - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Container - - Specifies the name of the container. - - System.String - - System.String - - - None - - - Context - - Specifies the Azure storage context. You can create the context by using the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the copy ID. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Stops the current copy task on the specified blob without prompting for confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the service side time-out interval, in seconds, for a request. If the specified interval elapses before the service processes the request, the storage service returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - TagCondition - - Optional Tag expression statement to check match condition. The blob request will fail when the blob tags does not match the given expression. See details in https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Storage.Blob.CloudBlob - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - - - - - - - - - - ------------ Example 1: Stop copy operation by name ------------ - Stop-AzStorageBlobCopy -Container "ContainerName" -Blob "BlobName" -CopyId "CopyID" - - This command stops the copy operation by name. - - - - - - ----- Example 2: Stop copy operation by using the pipeline ----- - Get-AzStorageContainer container* | Stop-AzStorageBlobCopy -Blob "BlobName" - - This command stops the copy operation by passing the container on the pipeline from Get-AzStorageContainer . - - - - - - Example 3: Stop copy operation by using the pipeline and Get-AzStorageBlob - Get-AzStorageBlob -Container "ContainerName" | Stop-AzStorageBlobCopy -Force - - This example stops the copy operation by passing the container on the pipeline from the Get-AzStorageBlob cmdlet. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/stop-azstorageblobcopy - - - Get-AzStorageBlob - - - - Get-AzStorageContainer - - - - Start-AzStorageBlobCopy - - - - Get-AzStorageBlobCopyState - - - - - - - Stop-AzStorageFileCopy - Stop - AzStorageFileCopy - - Stops a copy operation to the specified destination file. - - - - The Stop-AzStorageFileCopy cmdlet stops copying a file to a destination file. - - - - Stop-AzStorageFileCopy - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - FilePath - - Specifies the path of a file. - - System.String - - System.String - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the ID of the copy operation. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - - System.Management.Automation.SwitchParameter - - - False - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Stop-AzStorageFileCopy - - ShareFileClient - - ShareFileClient object indicated the file to Stop Copy. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the ID of the copy operation. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - ClientTimeoutPerRequest - - Specifies the client-side time-out interval, in seconds, for one service request. If the previous call fails in the specified interval, this cmdlet retries the request. If this cmdlet does not receive a successful response before the interval elapses, this cmdlet returns an error. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ConcurrentTaskCount - - Specifies the maximum concurrent network calls. You can use this parameter to limit the concurrency to throttle local CPU and bandwidth usage by specifying the maximum number of concurrent network calls. The specified value is an absolute count and is not multiplied by the core count. This parameter can help reduce network connection problems in low bandwidth environments, such as 100 kilobits per second. The default value is 10. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext (./New-AzStorageContext.md)cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - CopyId - - Specifies the ID of the copy operation. - - System.String - - System.String - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DisAllowTrailingDot - - Disallow trailing dot (.) to suffix directory and file names. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - FilePath - - Specifies the path of a file. - - System.String - - System.String - - - None - - - Force - - Forces the command to run without asking for user confirmation. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServerTimeoutPerRequest - - Specifies the length of the time-out period for the server part of a request. - - System.Nullable`1[System.Int32] - - System.Nullable`1[System.Int32] - - - None - - - ShareFileClient - - ShareFileClient object indicated the file to Stop Copy. - - Azure.Storage.Files.Shares.ShareFileClient - - Azure.Storage.Files.Shares.ShareFileClient - - - None - - - ShareName - - Specifies the name of a share. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Azure.Storage.Files.Shares.ShareFileClient - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.Void - - - - - - - - - - - - - - --------------- Example 1: Stop a copy operation --------------- - Stop-AzStorageFileCopy -ShareName "ContosoShare" -FilePath "FilePath" -CopyId "CopyId" - - This command stops copying a file that has the specified name. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/stop-azstoragefilecopy - - - Get-AzStorageFile - - - - Get-AzStorageFileCopyState - - - - New-AzStorageContext - - - - Start-AzStorageFileCopy - - - - - - - Update-AzDataLakeGen2AclRecursive - Update - AzDataLakeGen2AclRecursive - - Update ACL recursively on the specified path. - - - - The Update-AzDataLakeGen2AclRecursive cmdlet updates ACL recursively on the specified path. The input ACL will merge the the original ACL: If ACL entry with same AccessControlType/EntityId/DefaultScope exist, update permission; else add a new ACL entry. - - - - Update-AzDataLakeGen2AclRecursive - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - The POSIX access control list to set recursively for the file or directory. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - AsJob - - Run cmdlet in the background - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - BatchSize - - If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked. Batch size should be between 1 and 2000. Default is 2000. - - System.Int32 - - System.Int32 - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - ContinuationToken - - Continuation Token. - - System.String - - System.String - - - None - - - ContinueOnFailure - - Set this parameter to ignore failures and continue proceeing with the operation on other sub-entities of the directory. Default the operation will terminate quickly on encountering failures. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - MaxBatchCount - - Maximum number of batches that single change Access Control operation can execute. If data set size exceeds MaxBatchCount multiply BatchSize, continuation token will be return. - - System.Int32 - - System.Int32 - - - None - - - Path - - The path in the specified FileSystem that to change Acl recursively. Can be a file or directory. In the format 'directory/file.txt' or 'directory1/directory2/'. Skip set this parameter to change Acl recursively from root directory of the Filesystem. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - System.String - - - - - - - - - - - - - - Example 1: Update ACL recursively on a root directiry of filesystem - $acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rw-" -InputObject $acl -Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Acl $acl -Context $ctx - -FailedEntries : -TotalDirectoriesSuccessfulCount : 7 -TotalFilesSuccessfulCount : 5 -TotalFailureCount : 0 -ContinuationToken : - - This command first creates an ACL object with 3 acl entries, then updates ACL recursively on a root directory of a file system. - - - - - - Example 2: Update ACL recursively on a directory, and resume from failure with ContinuationToken - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -Context $ctx - -$result - -FailedEntries : {dir1/dir2/file4} -TotalDirectoriesSuccessfulCount : 500 -TotalFilesSuccessfulCount : 2500 -TotalFailureCount : 1 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -$result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinuationToken $result.ContinuationToken -Context $ctx - -$result - -FailedEntries : -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 1000 -TotalFailureCount : 0 -ContinuationToken : - - This command first updateds ACL recursively to a directory and failed, then resume with ContinuationToken after user fix the failed file. - - - - - - ------- Example 3: Update ACL recursively chunk by chunk ------- - $ContinueOnFailure = $true # Set it to $false if want to terminate the operation quickly on encountering failures -$token = $null -$TotalDirectoriesSuccess = 0 -$TotalFilesSuccess = 0 -$totalFailure = 0 -$FailedEntries = New-Object System.Collections.Generic.List[System.Object] -do -{ - - if ($ContinueOnFailure) - { - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 100 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx -ContinueOnFailure - } - else - { - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -BatchSize 100 -MaxBatchCount 50 -ContinuationToken $token -Context $ctx - } - - # echo $result - $TotalFilesSuccess += $result.TotalFilesSuccessfulCount - $TotalDirectoriesSuccess += $result.TotalDirectoriesSuccessfulCount - $totalFailure += $result.TotalFailureCount - $FailedEntries += $result.FailedEntries - $token = $result.ContinuationToken -}while (($null -ne $token) -and (($ContinueOnFailure) -or ($result.TotalFailureCount -eq 0))) -echo "" -echo "[Result Summary]" -echo "TotalDirectoriesSuccessfulCount: `t$($TotalDirectoriesSuccess)" -echo "TotalFilesSuccessfulCount: `t`t`t$($TotalFilesSuccess)" -echo "TotalFailureCount: `t`t`t`t`t$($totalFailure)" -echo "ContinuationToken: `t`t`t`t`t$($token)" -echo "FailedEntries:"$($FailedEntries | ft) - - This script will update ACL rescursively on directory chunk by chunk, with chunk size as BatchSize * MaxBatchCount. Chunk size is 5000 in this script. - - - - - - Example 4: Update ACL recursively on a directory and ContinueOnFailure, then resume from failures one by one - $result = Update-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path "dir1" -Acl $acl -ContinueOnFailure -Context $ctx - -$result - -FailedEntries : {dir0/dir1/file1, dir0/dir2/file4} -TotalDirectoriesSuccessfulCount : 100 -TotalFilesSuccessfulCount : 500 -TotalFailureCount : 2 -ContinuationToken : VBaHi5TfyO2ai1wYTRhIL2FjbGNibjA2c3RmATAxRDVEN0UzRENFQzZCRTAvYWRsc3Rlc3QyATAxRDY2M0ZCQTZBN0JGQTkvZGlyMC9kaXIxL2ZpbGUzFgAAAA== - -$result.FailedEntries - -Name IsDirectory ErrorMessage ----- ----------- ------------ -dir0/dir1/file1 False This request is not authorized to perform this operation using this permission. -dir0/dir2/file4 False This request is not authorized to perform this operation using this permission. - -# user need fix the failed item , then can resume with ContinuationToken - -foreach ($path in $result.FailedEntries.Name) - { - # user code to fix failed entry in $path - - #set ACL again - Set-AzDataLakeGen2AclRecursive -FileSystem "filesystem1" -Path $path -Acl $acl -Context $ctx - } - - This command first updateds ACL recursively to a directory with ContinueOnFailure, and some items failed, then resume the failed items one by one. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azdatalakegen2aclrecursive - - - - - - Update-AzDataLakeGen2Item - Update - AzDataLakeGen2Item - - Update a file or directory on properties, metadata, permission, ACL, and owner. - - - - The Update-AzDataLakeGen2Item cmdlet updates a file or directory on properties, metadata, permission, ACL, and owner. This cmdlet only works if Hierarchical Namespace is enabled for the Storage account. This kind of account can be created by run "New-AzStorageAccount" cmdlet with "-EnableHierarchicalNamespace $true". - - - - Update-AzDataLakeGen2Item - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Acl - - Sets POSIX access control rights on files and directories. Create this object with New-AzDataLakeGen2ItemAclObject. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Group - - Sets the owning group of the blob. - - System.String - - System.String - - - None - - - Metadata - - Specifies metadata for the directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Owner - - Sets the owner of the blob. - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be updated. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter will update the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set.Invalid in conjunction with ACL. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-AzDataLakeGen2Item - - Acl - - Sets POSIX access control rights on files and directories. Create this object with New-AzDataLakeGen2ItemAclObject. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - Group - - Sets the owning group of the blob. - - System.String - - System.String - - - None - - - InputObject - - Azure Datalake Gen2 Item Object to update - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Metadata - - Specifies metadata for the directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Owner - - Sets the owner of the blob. - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set.Invalid in conjunction with ACL. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Acl - - Sets POSIX access control rights on files and directories. Create this object with New-AzDataLakeGen2ItemAclObject. - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry[] - - - None - - - Context - - Azure Storage Context Object - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - FileSystem - - FileSystem name - - System.String - - System.String - - - None - - - Group - - Sets the owning group of the blob. - - System.String - - System.String - - - None - - - InputObject - - Azure Datalake Gen2 Item Object to update - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - None - - - Metadata - - Specifies metadata for the directory or file. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Owner - - Sets the owner of the blob. - - System.String - - System.String - - - None - - - Path - - The path in the specified Filesystem that should be updated. Can be a file or directory In the format 'directory/file.txt' or 'directory1/directory2/'. Not specify this parameter will update the root directory of the Filesystem. - - System.String - - System.String - - - None - - - Permission - - Sets POSIX access permissions for the file owner, the file owning group, and others. Each class may be granted read, write, or execute permission. Symbolic (rwxrw-rw-) is supported. The sticky bit is also supported and its represented either by the letter t or T in the final character-place depending on whether the execution bit for the others category is set or unset respectively, absence of t or T indicates sticky bit not set.Invalid in conjunction with ACL. - - System.String - - System.String - - - None - - - Property - - Specifies properties for the directory or file. The supported properties for file are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentMD5, ContentType. The supported properties for directory are: CacheControl, ContentDisposition, ContentEncoding, ContentLanguage. - - System.Collections.Hashtable - - System.Collections.Hashtable - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - System.String - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - - - - - - - - - - Example 1: Create an ACL object with 3 ACL entry, and update ACL to all items in a Filesystem recursively - $acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType group -Permission rw- -InputObject $acl -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType other -Permission "rwt" -InputObject $acl -Get-AzDataLakeGen2ChildItem -FileSystem "filesystem1" -Recurse | Update-AzDataLakeGen2Item -ACL $acl - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1 True 2020-03-13 13:07:34Z rwxrw-rwt $superuser $superuser -dir1/file1 False 1024 2020-03-23 09:29:18Z rwxrw-rwt $superuser $superuser -dir2 True 2020-03-23 09:28:36Z rwxrw-rwt $superuser $superuser - - This command first creates an ACL object with 3 acl entry (use -InputObject parameter to add acl entry to existing acl object), then get all items in a filesystem and update acl on the items. - - - - - - -- Example 2: Update all properties on a file, and show them -- - $file = Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path "dir1/file1" ` - -Acl $acl ` - -Property @{"ContentType" = "image/jpeg"; "ContentMD5" = "i727sP7HigloQDsqadNLHw=="; "ContentEncoding" = "UDF8"; "CacheControl" = "READ"; "ContentDisposition" = "True"; "ContentLanguage" = "EN-US"} ` - -Metadata @{"tag1" = "value1"; "tag2" = "value2" } ` - -Permission rw-rw-rwx ` - -Owner '$superuser' ` - -Group '$superuser' - -$file - - FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/file1 False 1024 2020-03-23 09:57:33Z rwxrw-rw- $superuser $superuser - -$file.ACL - -DefaultScope AccessControlType EntityId Permissions ------------- ----------------- -------- ----------- -False User rwx -False Group rw- -False Other rw- - -$file.Permissions - -Owner : Execute, Write, Read -Group : Write, Read -Other : Write, Read -StickyBit : False -ExtendedAcls : False - -$file.Properties.Metadata - -Key Value ---- ----- -tag2 value2 -tag1 value1 - -$file.Properties - - -LastModified : 3/23/2020 9:57:33 AM +00:00 -CreatedOn : 3/23/2020 9:29:18 AM +00:00 -Metadata : {[tag2, value2], [tag1, value1]} -CopyCompletedOn : 1/1/0001 12:00:00 AM +00:00 -CopyStatusDescription : -CopyId : -CopyProgress : -CopySource : -CopyStatus : Pending -IsIncrementalCopy : False -LeaseDuration : Infinite -LeaseState : Available -LeaseStatus : Unlocked -ContentLength : 1024 -ContentType : image/jpeg -ETag : "0x8D7CF109B9878CC" -ContentHash : {139, 189, 187, 176...} -ContentEncoding : UDF8 -ContentDisposition : True -ContentLanguage : EN-US -CacheControl : READ -AcceptRanges : bytes -IsServerEncrypted : True -EncryptionKeySha256 : -AccessTier : Cool -ArchiveStatus : -AccessTierChangedOn : 1/1/0001 12:00:00 AM +00:00 - - This command updates all properties on a file (ACL, permission,owner, group, metadata, property can be updated with any conbination), and show them in Powershell console. - - - - - - ---------- Example 3: Add an ACL entry to a directory ---------- - ## Get the origin ACL -$acl = (Get-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/').ACL - -# Update permission of a new ACL entry (if ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry) -$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $id -Permission rw- -InputObject $acl - -# set the new acl to the directory -Update-AzDataLakeGen2Item -FileSystem "filesystem1" -Path 'dir1/dir3/' -ACL $acl - -FileSystem Name: filesystem1 - -Path IsDirectory Length LastModified Permissions Owner Group ----- ----------- ------ ------------ ----------- ----- ----- -dir1/dir3 True 2020-03-23 09:34:31Z rwxrw-rw-+ $superuser $superuser - - This command gets ACL from a directory, updates/adds an ACL entry, and sets back to the directory. If ACL entry with same AccessControlType/EntityId/DefaultScope not exist, will add a new ACL entry, else update permission of existing ACL entry. - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azdatalakegen2item - - - - - - Update-AzStorageServiceProperty - Update - AzStorageServiceProperty - - Modifies the properties for the Azure Storage service. - - - - The Update-AzStorageServiceProperty cmdlet modifies the properties for the Azure Storage service. - - - - Update-AzStorageServiceProperty - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - - Blob - Table - Queue - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request's version is not specified. Possible values include version 2008-10-27 and all more recent versions. See more details in https://learn.microsoft.com/rest/api/storageservices/versioning-for-the-azure-storage-services - - System.String - - System.String - - - None - - - PassThru - - Display ServiceProperties - - - System.Management.Automation.SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Context - - Specifies an Azure storage context. To obtain a storage context, use the New-AzStorageContext cmdlet. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - None - - - DefaultProfile - - The credentials, account, tenant, and subscription used for communication with Azure. - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer - - - None - - - DefaultServiceVersion - - DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request's version is not specified. Possible values include version 2008-10-27 and all more recent versions. See more details in https://learn.microsoft.com/rest/api/storageservices/versioning-for-the-azure-storage-services - - System.String - - System.String - - - None - - - PassThru - - Display ServiceProperties - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - ServiceType - - Specifies the storage service type. This cmdlet gets the logging properties for the service type that this parameter specifies. The acceptable values for this parameter are: - Blob - - Table - - Queue - - File - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - Microsoft.WindowsAzure.Commands.Storage.Common.StorageServiceType - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext - - - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - - - - - - - - - - - - - Example 1: Set Blob Service DefaultServiceVersion to 2017-04-17 - Update-AzStorageServiceProperty -ServiceType Blob -DefaultServiceVersion 2017-04-17 - - This command Set the DefaultServiceVersion of Blob Service to 2017-04-17 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/az.storage/update-azstorageserviceproperty - - - - \ No newline at end of file diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Common.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Common.dll deleted file mode 100644 index 0f91a78c21be..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Common.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll deleted file mode 100644 index 511e202fd091..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Blob.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Blob.dll deleted file mode 100644 index 48df07335288..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Blob.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Common.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Common.dll deleted file mode 100644 index d1046d78ca84..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Common.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.DataMovement.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.DataMovement.dll deleted file mode 100644 index ba9fb651d90f..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.DataMovement.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.File.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.File.dll deleted file mode 100644 index 7a25af32b593..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.File.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Queue.dll b/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Queue.dll deleted file mode 100644 index b1d0270d1cad..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Azure.Storage.Queue.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.OData.Core.dll b/Modules/Az.Storage/8.1.0/Microsoft.OData.Core.dll deleted file mode 100644 index caf31559cc7c..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.OData.Core.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.OData.Edm.dll b/Modules/Az.Storage/8.1.0/Microsoft.OData.Edm.dll deleted file mode 100644 index 24b70c0727d3..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.OData.Edm.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Microsoft.Spatial.dll b/Modules/Az.Storage/8.1.0/Microsoft.Spatial.dll deleted file mode 100644 index e1382163d88a..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Microsoft.Spatial.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/PSGetModuleInfo.xml b/Modules/Az.Storage/8.1.0/PSGetModuleInfo.xml deleted file mode 100644 index 7153aee3fd54..000000000000 --- a/Modules/Az.Storage/8.1.0/PSGetModuleInfo.xml +++ /dev/null @@ -1,493 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - Az.Storage - 8.1.0 - Module - Microsoft Azure PowerShell - Storage service data plane and management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. Creates and manages storage accounts in Azure Resource Manager._x000D__x000A__x000D__x000A_For more information on Storage, please visit the following: https://learn.microsoft.com/azure/storage/ - Microsoft Corporation - azure-sdk - Microsoft Corporation. All rights reserved. -
2025-01-14T03:10:24-05:00
- - - https://aka.ms/azps-license - https://github.com/Azure/azure-powershell - - - - System.Object[] - System.Array - System.Object - - - Azure - ResourceManager - ARM - Storage - StorageAccount - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - RoleCapability - - - - - - - Function - - - - Get-AzStorageAccountMigration - Start-AzStorageAccountMigration - - - - - Cmdlet - - - - Add-AzRmStorageContainerLegalHold - Add-AzStorageAccountManagementPolicyAction - Add-AzStorageAccountNetworkRule - Close-AzStorageFileHandle - Copy-AzStorageBlob - Disable-AzStorageBlobDeleteRetentionPolicy - Disable-AzStorageBlobLastAccessTimeTracking - Disable-AzStorageBlobRestorePolicy - Disable-AzStorageContainerDeleteRetentionPolicy - Disable-AzStorageDeleteRetentionPolicy - Disable-AzStorageStaticWebsite - Enable-AzStorageBlobDeleteRetentionPolicy - Enable-AzStorageBlobLastAccessTimeTracking - Enable-AzStorageBlobRestorePolicy - Enable-AzStorageContainerDeleteRetentionPolicy - Enable-AzStorageDeleteRetentionPolicy - Enable-AzStorageStaticWebsite - Get-AzDataLakeGen2ChildItem - Get-AzDataLakeGen2DeletedItem - Get-AzDataLakeGen2Item - Get-AzDataLakeGen2ItemContent - Get-AzRmStorageContainer - Get-AzRmStorageContainerImmutabilityPolicy - Get-AzRmStorageShare - Get-AzStorageAccount - Get-AzStorageAccountKey - Get-AzStorageAccountManagementPolicy - Get-AzStorageAccountNameAvailability - Get-AzStorageAccountNetworkRuleSet - Get-AzStorageBlob - Get-AzStorageBlobByTag - Get-AzStorageBlobContent - Get-AzStorageBlobCopyState - Get-AzStorageBlobInventoryPolicy - Get-AzStorageBlobQueryResult - Get-AzStorageBlobServiceProperty - Get-AzStorageBlobTag - Get-AzStorageContainer - Get-AzStorageContainerStoredAccessPolicy - Get-AzStorageCORSRule - Get-AzStorageEncryptionScope - Get-AzStorageFile - Get-AzStorageFileContent - Get-AzStorageFileCopyState - Get-AzStorageFileHandle - Get-AzStorageFileServiceProperty - Get-AzStorageLocalUser - Get-AzStorageLocalUserKey - Get-AzStorageObjectReplicationPolicy - Get-AzStorageQueue - Get-AzStorageQueueStoredAccessPolicy - Get-AzStorageServiceLoggingProperty - Get-AzStorageServiceMetricsProperty - Get-AzStorageServiceProperty - Get-AzStorageShare - Get-AzStorageShareStoredAccessPolicy - Get-AzStorageTable - Get-AzStorageTableStoredAccessPolicy - Get-AzStorageUsage - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - Invoke-AzStorageAccountFailover - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - Lock-AzRmStorageContainerImmutabilityPolicy - Move-AzDataLakeGen2Item - New-AzDataLakeGen2Item - New-AzDataLakeGen2SasToken - New-AzRmStorageContainer - New-AzRmStorageShare - New-AzStorageAccount - New-AzStorageAccountKey - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - New-AzStorageAccountManagementPolicyFilter - New-AzStorageAccountManagementPolicyRule - New-AzStorageAccountSASToken - New-AzStorageBlobInventoryPolicyRule - New-AzStorageBlobQueryConfig - New-AzStorageBlobRangeToRestore - New-AzStorageBlobSASToken - New-AzStorageContainer - New-AzStorageContainerSASToken - New-AzStorageContainerStoredAccessPolicy - New-AzStorageContext - New-AzStorageDirectory - New-AzStorageEncryptionScope - New-AzStorageFileSASToken - New-AzStorageLocalUserPermissionScope - New-AzStorageLocalUserSshPassword - New-AzStorageLocalUserSshPublicKey - New-AzStorageObjectReplicationPolicyRule - New-AzStorageQueue - New-AzStorageQueueSASToken - New-AzStorageQueueStoredAccessPolicy - New-AzStorageShare - New-AzStorageShareSASToken - New-AzStorageShareStoredAccessPolicy - New-AzStorageTable - New-AzStorageTableSASToken - New-AzStorageTableStoredAccessPolicy - Remove-AzDataLakeGen2AclRecursive - Remove-AzDataLakeGen2Item - Remove-AzRmStorageContainer - Remove-AzRmStorageContainerImmutabilityPolicy - Remove-AzRmStorageContainerLegalHold - Remove-AzRmStorageShare - Remove-AzStorageAccount - Remove-AzStorageAccountManagementPolicy - Remove-AzStorageAccountNetworkRule - Remove-AzStorageBlob - Remove-AzStorageBlobImmutabilityPolicy - Remove-AzStorageBlobInventoryPolicy - Remove-AzStorageContainer - Remove-AzStorageContainerStoredAccessPolicy - Remove-AzStorageCORSRule - Remove-AzStorageDirectory - Remove-AzStorageFile - Remove-AzStorageLocalUser - Remove-AzStorageObjectReplicationPolicy - Remove-AzStorageQueue - Remove-AzStorageQueueStoredAccessPolicy - Remove-AzStorageShare - Remove-AzStorageShareStoredAccessPolicy - Remove-AzStorageTable - Remove-AzStorageTableStoredAccessPolicy - Rename-AzStorageDirectory - Rename-AzStorageFile - Restore-AzDataLakeGen2DeletedItem - Restore-AzRmStorageShare - Restore-AzStorageBlobRange - Restore-AzStorageContainer - Revoke-AzStorageAccountUserDelegationKeys - Set-AzCurrentStorageAccount - Set-AzDataLakeGen2AclRecursive - Set-AzDataLakeGen2ItemAclObject - Set-AzRmStorageContainerImmutabilityPolicy - Set-AzStorageAccount - Set-AzStorageAccountManagementPolicy - Set-AzStorageBlobContent - Set-AzStorageBlobImmutabilityPolicy - Set-AzStorageBlobInventoryPolicy - Set-AzStorageBlobLegalHold - Set-AzStorageBlobTag - Set-AzStorageContainerAcl - Set-AzStorageContainerStoredAccessPolicy - Set-AzStorageCORSRule - Set-AzStorageFileContent - Set-AzStorageLocalUser - Set-AzStorageObjectReplicationPolicy - Set-AzStorageQueueStoredAccessPolicy - Set-AzStorageServiceLoggingProperty - Set-AzStorageServiceMetricsProperty - Set-AzStorageShareQuota - Set-AzStorageShareStoredAccessPolicy - Set-AzStorageTableStoredAccessPolicy - Start-AzStorageBlobCopy - Start-AzStorageBlobIncrementalCopy - Start-AzStorageFileCopy - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - Stop-AzStorageBlobCopy - Stop-AzStorageFileCopy - Update-AzDataLakeGen2AclRecursive - Update-AzDataLakeGen2Item - Update-AzRmStorageContainer - Update-AzRmStorageShare - Update-AzStorageAccountNetworkRuleSet - Update-AzStorageBlobServiceProperty - Update-AzStorageEncryptionScope - Update-AzStorageFileServiceProperty - Update-AzStorageServiceProperty - - - - - DscResource - - - - Workflow - - - - Command - - - - Add-AzRmStorageContainerLegalHold - Add-AzStorageAccountManagementPolicyAction - Add-AzStorageAccountNetworkRule - Close-AzStorageFileHandle - Copy-AzStorageBlob - Disable-AzStorageBlobDeleteRetentionPolicy - Disable-AzStorageBlobLastAccessTimeTracking - Disable-AzStorageBlobRestorePolicy - Disable-AzStorageContainerDeleteRetentionPolicy - Disable-AzStorageDeleteRetentionPolicy - Disable-AzStorageStaticWebsite - Enable-AzStorageBlobDeleteRetentionPolicy - Enable-AzStorageBlobLastAccessTimeTracking - Enable-AzStorageBlobRestorePolicy - Enable-AzStorageContainerDeleteRetentionPolicy - Enable-AzStorageDeleteRetentionPolicy - Enable-AzStorageStaticWebsite - Get-AzDataLakeGen2ChildItem - Get-AzDataLakeGen2DeletedItem - Get-AzDataLakeGen2Item - Get-AzDataLakeGen2ItemContent - Get-AzRmStorageContainer - Get-AzRmStorageContainerImmutabilityPolicy - Get-AzRmStorageShare - Get-AzStorageAccount - Get-AzStorageAccountKey - Get-AzStorageAccountManagementPolicy - Get-AzStorageAccountNameAvailability - Get-AzStorageAccountNetworkRuleSet - Get-AzStorageBlob - Get-AzStorageBlobByTag - Get-AzStorageBlobContent - Get-AzStorageBlobCopyState - Get-AzStorageBlobInventoryPolicy - Get-AzStorageBlobQueryResult - Get-AzStorageBlobServiceProperty - Get-AzStorageBlobTag - Get-AzStorageContainer - Get-AzStorageContainerStoredAccessPolicy - Get-AzStorageCORSRule - Get-AzStorageEncryptionScope - Get-AzStorageFile - Get-AzStorageFileContent - Get-AzStorageFileCopyState - Get-AzStorageFileHandle - Get-AzStorageFileServiceProperty - Get-AzStorageLocalUser - Get-AzStorageLocalUserKey - Get-AzStorageObjectReplicationPolicy - Get-AzStorageQueue - Get-AzStorageQueueStoredAccessPolicy - Get-AzStorageServiceLoggingProperty - Get-AzStorageServiceMetricsProperty - Get-AzStorageServiceProperty - Get-AzStorageShare - Get-AzStorageShareStoredAccessPolicy - Get-AzStorageTable - Get-AzStorageTableStoredAccessPolicy - Get-AzStorageUsage - Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - Invoke-AzStorageAccountFailover - Invoke-AzStorageAccountHierarchicalNamespaceUpgrade - Lock-AzRmStorageContainerImmutabilityPolicy - Move-AzDataLakeGen2Item - New-AzDataLakeGen2Item - New-AzDataLakeGen2SasToken - New-AzRmStorageContainer - New-AzRmStorageShare - New-AzStorageAccount - New-AzStorageAccountKey - New-AzStorageAccountManagementPolicyBlobIndexMatchObject - New-AzStorageAccountManagementPolicyFilter - New-AzStorageAccountManagementPolicyRule - New-AzStorageAccountSASToken - New-AzStorageBlobInventoryPolicyRule - New-AzStorageBlobQueryConfig - New-AzStorageBlobRangeToRestore - New-AzStorageBlobSASToken - New-AzStorageContainer - New-AzStorageContainerSASToken - New-AzStorageContainerStoredAccessPolicy - New-AzStorageContext - New-AzStorageDirectory - New-AzStorageEncryptionScope - New-AzStorageFileSASToken - New-AzStorageLocalUserPermissionScope - New-AzStorageLocalUserSshPassword - New-AzStorageLocalUserSshPublicKey - New-AzStorageObjectReplicationPolicyRule - New-AzStorageQueue - New-AzStorageQueueSASToken - New-AzStorageQueueStoredAccessPolicy - New-AzStorageShare - New-AzStorageShareSASToken - New-AzStorageShareStoredAccessPolicy - New-AzStorageTable - New-AzStorageTableSASToken - New-AzStorageTableStoredAccessPolicy - Remove-AzDataLakeGen2AclRecursive - Remove-AzDataLakeGen2Item - Remove-AzRmStorageContainer - Remove-AzRmStorageContainerImmutabilityPolicy - Remove-AzRmStorageContainerLegalHold - Remove-AzRmStorageShare - Remove-AzStorageAccount - Remove-AzStorageAccountManagementPolicy - Remove-AzStorageAccountNetworkRule - Remove-AzStorageBlob - Remove-AzStorageBlobImmutabilityPolicy - Remove-AzStorageBlobInventoryPolicy - Remove-AzStorageContainer - Remove-AzStorageContainerStoredAccessPolicy - Remove-AzStorageCORSRule - Remove-AzStorageDirectory - Remove-AzStorageFile - Remove-AzStorageLocalUser - Remove-AzStorageObjectReplicationPolicy - Remove-AzStorageQueue - Remove-AzStorageQueueStoredAccessPolicy - Remove-AzStorageShare - Remove-AzStorageShareStoredAccessPolicy - Remove-AzStorageTable - Remove-AzStorageTableStoredAccessPolicy - Rename-AzStorageDirectory - Rename-AzStorageFile - Restore-AzDataLakeGen2DeletedItem - Restore-AzRmStorageShare - Restore-AzStorageBlobRange - Restore-AzStorageContainer - Revoke-AzStorageAccountUserDelegationKeys - Set-AzCurrentStorageAccount - Set-AzDataLakeGen2AclRecursive - Set-AzDataLakeGen2ItemAclObject - Set-AzRmStorageContainerImmutabilityPolicy - Set-AzStorageAccount - Set-AzStorageAccountManagementPolicy - Set-AzStorageBlobContent - Set-AzStorageBlobImmutabilityPolicy - Set-AzStorageBlobInventoryPolicy - Set-AzStorageBlobLegalHold - Set-AzStorageBlobTag - Set-AzStorageContainerAcl - Set-AzStorageContainerStoredAccessPolicy - Set-AzStorageCORSRule - Set-AzStorageFileContent - Set-AzStorageLocalUser - Set-AzStorageObjectReplicationPolicy - Set-AzStorageQueueStoredAccessPolicy - Set-AzStorageServiceLoggingProperty - Set-AzStorageServiceMetricsProperty - Set-AzStorageShareQuota - Set-AzStorageShareStoredAccessPolicy - Set-AzStorageTableStoredAccessPolicy - Start-AzStorageBlobCopy - Start-AzStorageBlobIncrementalCopy - Start-AzStorageFileCopy - Stop-AzStorageAccountHierarchicalNamespaceUpgrade - Stop-AzStorageBlobCopy - Stop-AzStorageFileCopy - Update-AzDataLakeGen2AclRecursive - Update-AzDataLakeGen2Item - Update-AzRmStorageContainer - Update-AzRmStorageShare - Update-AzStorageAccountNetworkRuleSet - Update-AzStorageBlobServiceProperty - Update-AzStorageEncryptionScope - Update-AzStorageFileServiceProperty - Update-AzStorageServiceProperty - Get-AzStorageAccountMigration - Start-AzStorageAccountMigration - - - - - - - * Upgraded nuget package to signed package._x000D__x000A_* Added warning message for account migration cmdlet._x000D__x000A_ - 'Start-AzStorageAccountMigration'_x000D__x000A_* Fixed error message when creating OAuth based Storage context without first login with Connect-AzAccount._x000D__x000A_ - 'New-AzStorageContext'_x000D__x000A_* Upgraded Azure.Storage.Blobs to 12.23.0_x000D__x000A_* Upgraded Azure.Storage.Files.Shares to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Files.DataLake to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Queues to 12.21.0_x000D__x000A_* Supported ClientName property when listing file handles _x000D__x000A_ - 'Get-AzStorageFileHandle'_x000D__x000A_* Upgraded Azure.Core to 1.44.1. - - - - - - System.Collections.Specialized.OrderedDictionary - System.Object - - - - Name - Az.Accounts - - - MinimumVersion - 4.0.1 - - - CanonicalId - nuget:Az.Accounts/4.0.1 - - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Azure PowerShell - Storage service data plane and management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. Creates and manages storage accounts in Azure Resource Manager._x000D__x000A__x000D__x000A_For more information on Storage, please visit the following: https://learn.microsoft.com/azure/storage/ - True - * Upgraded nuget package to signed package._x000D__x000A_* Added warning message for account migration cmdlet._x000D__x000A_ - 'Start-AzStorageAccountMigration'_x000D__x000A_* Fixed error message when creating OAuth based Storage context without first login with Connect-AzAccount._x000D__x000A_ - 'New-AzStorageContext'_x000D__x000A_* Upgraded Azure.Storage.Blobs to 12.23.0_x000D__x000A_* Upgraded Azure.Storage.Files.Shares to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Files.DataLake to 12.21.0_x000D__x000A_* Upgraded Azure.Storage.Queues to 12.21.0_x000D__x000A_* Supported ClientName property when listing file handles _x000D__x000A_ - 'Get-AzStorageFileHandle'_x000D__x000A_* Upgraded Azure.Core to 1.44.1. - True - True - 6713475 - 219543588 - 5381932 - 1/14/2025 3:10:24 AM -05:00 - 1/14/2025 3:10:24 AM -05:00 - 1/30/2025 5:40:00 PM -05:00 - Azure ResourceManager ARM Storage StorageAccount PSModule PSEdition_Core PSEdition_Desktop - False - 2025-01-30T17:40:00Z - 8.1.0 - Microsoft Corporation - false - Module - Az.Storage.nuspec|Azure.Storage.Files.DataLake.dll|Microsoft.Azure.Cosmos.Table.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll-Help.xml|Microsoft.Azure.Storage.Blob.dll|Microsoft.Azure.Storage.File.dll|Microsoft.OData.Edm.dll|Storage.format.ps1xml|Storage.Management.format.ps1xml|Storage.Autorest\Az.Storage.format.ps1xml|Storage.Autorest\bin\Az.Storage.private.dll|Storage.Autorest\custom\Start-AzStorageAccountMigration.ps1|Storage.Autorest\internal\Az.Storage.internal.psm1|Storage.Autorest\utils\Get-SubscriptionIdTestSafe.ps1|Azure.Data.Tables.dll|Azure.Storage.Files.Shares.dll|Microsoft.Azure.DocumentDB.Core.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.dll-Help.xml|Microsoft.Azure.PowerShell.Storage.Common.dll|Microsoft.Azure.Storage.Common.dll|Microsoft.Azure.Storage.Queue.dll|Microsoft.Spatial.dll|Storage.generated.format.ps1xml|System.IO.Hashing.dll|Storage.Autorest\Az.Storage.psm1|Storage.Autorest\custom\Az.Storage.custom.psm1|Storage.Autorest\exports\ProxyCmdletDefinitions.ps1|Storage.Autorest\internal\ProxyCmdletDefinitions.ps1|Storage.Autorest\utils\Unprotect-SecureString.ps1|Az.Storage.psd1|Azure.Storage.Blobs.dll|Azure.Storage.Queues.dll|Microsoft.Azure.KeyVault.Core.dll|Microsoft.Azure.PowerShell.Cmdlets.Storage.Management.dll|Microsoft.Azure.PowerShell.Storage.Management.Sdk.dll|Microsoft.Azure.Storage.DataMovement.dll|Microsoft.OData.Core.dll|Az.Storage.psm1|Azure.Storage.Common.dll|.signature.p7s - Add-AzRmStorageContainerLegalHold Add-AzStorageAccountManagementPolicyAction Add-AzStorageAccountNetworkRule Close-AzStorageFileHandle Copy-AzStorageBlob Disable-AzStorageBlobDeleteRetentionPolicy Disable-AzStorageBlobLastAccessTimeTracking Disable-AzStorageBlobRestorePolicy Disable-AzStorageContainerDeleteRetentionPolicy Disable-AzStorageDeleteRetentionPolicy Disable-AzStorageStaticWebsite Enable-AzStorageBlobDeleteRetentionPolicy Enable-AzStorageBlobLastAccessTimeTracking Enable-AzStorageBlobRestorePolicy Enable-AzStorageContainerDeleteRetentionPolicy Enable-AzStorageDeleteRetentionPolicy Enable-AzStorageStaticWebsite Get-AzDataLakeGen2ChildItem Get-AzDataLakeGen2DeletedItem Get-AzDataLakeGen2Item Get-AzDataLakeGen2ItemContent Get-AzRmStorageContainer Get-AzRmStorageContainerImmutabilityPolicy Get-AzRmStorageShare Get-AzStorageAccount Get-AzStorageAccountKey Get-AzStorageAccountManagementPolicy Get-AzStorageAccountNameAvailability Get-AzStorageAccountNetworkRuleSet Get-AzStorageBlob Get-AzStorageBlobByTag Get-AzStorageBlobContent Get-AzStorageBlobCopyState Get-AzStorageBlobInventoryPolicy Get-AzStorageBlobQueryResult Get-AzStorageBlobServiceProperty Get-AzStorageBlobTag Get-AzStorageContainer Get-AzStorageContainerStoredAccessPolicy Get-AzStorageCORSRule Get-AzStorageEncryptionScope Get-AzStorageFile Get-AzStorageFileContent Get-AzStorageFileCopyState Get-AzStorageFileHandle Get-AzStorageFileServiceProperty Get-AzStorageLocalUser Get-AzStorageLocalUserKey Get-AzStorageObjectReplicationPolicy Get-AzStorageQueue Get-AzStorageQueueStoredAccessPolicy Get-AzStorageServiceLoggingProperty Get-AzStorageServiceMetricsProperty Get-AzStorageServiceProperty Get-AzStorageShare Get-AzStorageShareStoredAccessPolicy Get-AzStorageTable Get-AzStorageTableStoredAccessPolicy Get-AzStorageUsage Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration Invoke-AzStorageAccountFailover Invoke-AzStorageAccountHierarchicalNamespaceUpgrade Lock-AzRmStorageContainerImmutabilityPolicy Move-AzDataLakeGen2Item New-AzDataLakeGen2Item New-AzDataLakeGen2SasToken New-AzRmStorageContainer New-AzRmStorageShare New-AzStorageAccount New-AzStorageAccountKey New-AzStorageAccountManagementPolicyBlobIndexMatchObject New-AzStorageAccountManagementPolicyFilter New-AzStorageAccountManagementPolicyRule New-AzStorageAccountSASToken New-AzStorageBlobInventoryPolicyRule New-AzStorageBlobQueryConfig New-AzStorageBlobRangeToRestore New-AzStorageBlobSASToken New-AzStorageContainer New-AzStorageContainerSASToken New-AzStorageContainerStoredAccessPolicy New-AzStorageContext New-AzStorageDirectory New-AzStorageEncryptionScope New-AzStorageFileSASToken New-AzStorageLocalUserPermissionScope New-AzStorageLocalUserSshPassword New-AzStorageLocalUserSshPublicKey New-AzStorageObjectReplicationPolicyRule New-AzStorageQueue New-AzStorageQueueSASToken New-AzStorageQueueStoredAccessPolicy New-AzStorageShare New-AzStorageShareSASToken New-AzStorageShareStoredAccessPolicy New-AzStorageTable New-AzStorageTableSASToken New-AzStorageTableStoredAccessPolicy Remove-AzDataLakeGen2AclRecursive Remove-AzDataLakeGen2Item Remove-AzRmStorageContainer Remove-AzRmStorageContainerImmutabilityPolicy Remove-AzRmStorageContainerLegalHold Remove-AzRmStorageShare Remove-AzStorageAccount Remove-AzStorageAccountManagementPolicy Remove-AzStorageAccountNetworkRule Remove-AzStorageBlob Remove-AzStorageBlobImmutabilityPolicy Remove-AzStorageBlobInventoryPolicy Remove-AzStorageContainer Remove-AzStorageContainerStoredAccessPolicy Remove-AzStorageCORSRule Remove-AzStorageDirectory Remove-AzStorageFile Remove-AzStorageLocalUser Remove-AzStorageObjectReplicationPolicy Remove-AzStorageQueue Remove-AzStorageQueueStoredAccessPolicy Remove-AzStorageShare Remove-AzStorageShareStoredAccessPolicy Remove-AzStorageTable Remove-AzStorageTableStoredAccessPolicy Rename-AzStorageDirectory Rename-AzStorageFile Restore-AzDataLakeGen2DeletedItem Restore-AzRmStorageShare Restore-AzStorageBlobRange Restore-AzStorageContainer Revoke-AzStorageAccountUserDelegationKeys Set-AzCurrentStorageAccount Set-AzDataLakeGen2AclRecursive Set-AzDataLakeGen2ItemAclObject Set-AzRmStorageContainerImmutabilityPolicy Set-AzStorageAccount Set-AzStorageAccountManagementPolicy Set-AzStorageBlobContent Set-AzStorageBlobImmutabilityPolicy Set-AzStorageBlobInventoryPolicy Set-AzStorageBlobLegalHold Set-AzStorageBlobTag Set-AzStorageContainerAcl Set-AzStorageContainerStoredAccessPolicy Set-AzStorageCORSRule Set-AzStorageFileContent Set-AzStorageLocalUser Set-AzStorageObjectReplicationPolicy Set-AzStorageQueueStoredAccessPolicy Set-AzStorageServiceLoggingProperty Set-AzStorageServiceMetricsProperty Set-AzStorageShareQuota Set-AzStorageShareStoredAccessPolicy Set-AzStorageTableStoredAccessPolicy Start-AzStorageBlobCopy Start-AzStorageBlobIncrementalCopy Start-AzStorageFileCopy Stop-AzStorageAccountHierarchicalNamespaceUpgrade Stop-AzStorageBlobCopy Stop-AzStorageFileCopy Update-AzDataLakeGen2AclRecursive Update-AzDataLakeGen2Item Update-AzRmStorageContainer Update-AzRmStorageShare Update-AzStorageAccountNetworkRuleSet Update-AzStorageBlobServiceProperty Update-AzStorageEncryptionScope Update-AzStorageFileServiceProperty Update-AzStorageServiceProperty - Get-AzStorageAccountMigration Start-AzStorageAccountMigration - dfa9e4ea-1407-446d-9111-79122977ab20 - 5.1 - 4.7.2 - Microsoft Corporation - - - C:\GitHub\CIPP Workspace\CIPP-API\Modules\Az.Storage\8.1.0 -
-
-
diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.format.ps1xml deleted file mode 100644 index bffffc49f2fa..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.format.ps1xml +++ /dev/null @@ -1,3841 +0,0 @@ - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountImmutabilityPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountImmutabilityPolicyProperties#Multiple - - - - - - - - - - - - - - - - - - AllowProtectedAppendWrite - - - ImmutabilityPeriodSinceCreationInDay - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AccountSasParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IPAddressOrRange - - - KeyToSign - - - Permission - - - Protocol - - - ResourceType - - - Service - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ActiveDirectoryProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ActiveDirectoryProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccountType - - - AzureStorageSid - - - DomainGuid - - - DomainName - - - DomainSid - - - ForestName - - - NetBiosDomainName - - - SamAccountName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AzureFilesIdentityBasedAuthentication - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.AzureFilesIdentityBasedAuthentication#Multiple - - - - - - - - - - - - - - - DefaultSharePermission - - - DirectoryServiceOption - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryCreationTime - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryCreationTime#Multiple - - - - - - - - - - - - LastNDay - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicy#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyDefinition - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyDefinition#Multiple - - - - - - - - - - - - - - - - - - Format - - - ObjectType - - - Schedule - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyFilter - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyFilter#Multiple - - - - - - - - - - - - - - - - - - IncludeBlobVersion - - - IncludeDeleted - - - IncludeSnapshot - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyProperties#Multiple - - - - - - - - - - - - LastModifiedTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicyRule#Multiple - - - - - - - - - - - - - - - - - - Destination - - - Enabled - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicySchema - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobInventoryPolicySchema#Multiple - - - - - - - - - - - - - - - Destination - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreParameters#Multiple - - - - - - - - - - - - TimeToRestore - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreRange - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreRange#Multiple - - - - - - - - - - - - - - - EndRange - - - StartRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreStatus - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.BlobRestoreStatus#Multiple - - - - - - - - - - - - - - - - - - FailureReason - - - RestoreId - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CheckNameAvailabilityResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CheckNameAvailabilityResult#Multiple - - - - - - - - - - - - - - - - - - Message - - - NameAvailable - - - Reason - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CloudErrorBody - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CloudErrorBody#Multiple - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CustomDomain - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.CustomDomain#Multiple - - - - - - - - - - - - - - - Name - - - UseSubDomainName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterCreation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterCreation#Multiple - - - - - - - - - - - - - - - DaysAfterCreationGreaterThan - - - DaysAfterLastTierChangeGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterModification - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DateAfterModification#Multiple - - - - - - - - - - - - - - - - - - - - - DaysAfterCreationGreaterThan - - - DaysAfterLastAccessTimeGreaterThan - - - DaysAfterLastTierChangeGreaterThan - - - DaysAfterModificationGreaterThan - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccount - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccount#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountListResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.DeletedAccountProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - CreationTime - - - DeletionTime - - - Location - - - RestoreReference - - - StorageAccountResourceId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Dimension - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Dimension#Multiple - - - - - - - - - - - - - - - DisplayName - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Encryption - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Encryption#Multiple - - - - - - - - - - - - - - - KeySource - - - RequireInfrastructureEncryption - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionIdentity#Multiple - - - - - - - - - - - - - - - EncryptionFederatedIdentityClientId - - - EncryptionUserAssignedIdentity - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScope - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScope#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeKeyVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeKeyVaultProperties#Multiple - - - - - - - - - - - - - - - - - - CurrentVersionedKeyIdentifier - - - KeyUri - - - LastKeyRotationTimestamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeListResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionScopeProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - CreationTime - - - LastModifiedTime - - - RequireInfrastructureEncryption - - - Source - - - State - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionService - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.EncryptionService#Multiple - - - - - - - - - - - - - - - - - - Enabled - - - KeyType - - - LastEnabledTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Endpoints - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Endpoints#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Queue - - - Table - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorDetail - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorDetail#Multiple - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorResponseBody - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ErrorResponseBody#Multiple - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ExtendedLocation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ExtendedLocation#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.GeoReplicationStats - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.GeoReplicationStats#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CanFailover - - - CanPlannedFailover - - - LastSyncTime - - - PostFailoverRedundancy - - - PostPlannedFailoverRedundancy - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Identity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Identity#Multiple - - - - - - - - - - - - - - - PrincipalId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ImmutableStorageAccount - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ImmutableStorageAccount#Multiple - - - - - - - - - - - - Enabled - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IPRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IPRule#Multiple - - - - - - - - - - - - - - - Action - - - IPAddressOrRange - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyCreationTime - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyCreationTime#Multiple - - - - - - - - - - - - - - - Key1 - - - Key2 - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyPolicy#Multiple - - - - - - - - - - - - KeyExpirationPeriodInDay - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyVaultProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.KeyVaultProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CurrentVersionedKeyExpirationTimestamp - - - CurrentVersionedKeyIdentifier - - - KeyName - - - KeyVaultUri - - - KeyVersion - - - LastKeyRotationTimestamp - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListAccountSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListAccountSasResponse#Multiple - - - - - - - - - - - - AccountSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListServiceSasResponse - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ListServiceSasResponse#Multiple - - - - - - - - - - - - ServiceSasToken - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUser - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUser#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserKeys - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserKeys#Multiple - - - - - - - - - - - - SharedKey - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - HasSharedKey - - - HasSshKey - - - HasSshPassword - - - HomeDirectory - - - Sid - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserRegeneratePasswordResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.LocalUserRegeneratePasswordResult#Multiple - - - - - - - - - - - - SshPassword - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicy#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyBaseBlob - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyBaseBlob#Multiple - - - - - - - - - - - - EnableAutoTierToHotFromCool - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyProperties#Multiple - - - - - - - - - - - - LastModifiedTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ManagementPolicyRule#Multiple - - - - - - - - - - - - - - - Enabled - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.MetricSpecification - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.MetricSpecification#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AggregationType - - - Category - - - DisplayDescription - - - DisplayName - - - FillGapWithZero - - - Name - - - ResourceIdDimensionNameOverride - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.NetworkRuleSet - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.NetworkRuleSet#Multiple - - - - - - - - - - - - - - - Bypass - - - DefaultAction - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicy#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyFilter - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyFilter#Multiple - - - - - - - - - - - - MinCreationTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyProperties#Multiple - - - - - - - - - - - - - - - - - - - - - DestinationAccount - - - EnabledTime - - - PolicyId - - - SourceAccount - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ObjectReplicationPolicyRule#Multiple - - - - - - - - - - - - - - - - - - DestinationContainer - - - RuleId - - - SourceContainer - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Operation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Operation#Multiple - - - - - - - - - - - - - - - Name - - - Origin - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.OperationDisplay - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.OperationDisplay#Multiple - - - - - - - - - - - - - - - - - - - - - Description - - - Operation - - - Provider - - - Resource - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PermissionScope - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PermissionScope#Multiple - - - - - - - - - - - - - - - - - - Permission - - - ResourceName - - - Service - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnection - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnection#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnectionProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateEndpointConnectionProperties#Multiple - - - - - - - - - - - - ProvisioningState - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResource#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResourceProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkResourceProperties#Multiple - - - - - - - - - - - - GroupId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkServiceConnectionState - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.PrivateLinkServiceConnectionState#Multiple - - - - - - - - - - - - - - - - - - ActionRequired - - - Description - - - Status - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ProxyResource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ProxyResource#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Resource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Resource#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ResourceAccessRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ResourceAccessRule#Multiple - - - - - - - - - - - - - - - ResourceId - - - TenantId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Restriction - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Restriction#Multiple - - - - - - - - - - - - ReasonCode - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.RoutingPreference - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.RoutingPreference#Multiple - - - - - - - - - - - - - - - - - - PublishInternetEndpoint - - - PublishMicrosoftEndpoint - - - RoutingChoice - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SasPolicy - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SasPolicy#Multiple - - - - - - - - - - - - - - - ExpirationAction - - - SasExpirationPeriod - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ServiceSasParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.ServiceSasParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CacheControl - - - CanonicalizedResource - - - ContentDisposition - - - ContentEncoding - - - ContentLanguage - - - ContentType - - - IPAddressOrRange - - - Identifier - - - KeyToSign - - - PartitionKeyEnd - - - PartitionKeyStart - - - Permission - - - Protocol - - - Resource - - - RowKeyEnd - - - RowKeyStart - - - SharedAccessExpiryTime - - - SharedAccessStartTime - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Sku - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Sku#Multiple - - - - - - - - - - - - - - - Name - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuCapability - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuCapability#Multiple - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuInformation - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SkuInformation#Multiple - - - - - - - - - - - - - - - - - - - - - Kind - - - Name - - - ResourceType - - - Tier - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SshPublicKey - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SshPublicKey#Multiple - - - - - - - - - - - - - - - Description - - - Key - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccount - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccount#Multiple - - - - - - - - - - - - - - - - - - - - - Location - - - Name - - - Kind - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCheckNameAvailabilityParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCheckNameAvailabilityParameters#Multiple - - - - - - - - - - - - Name - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParameters#Multiple - - - - - - - - - - - - - - - Kind - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountCreateParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountInternetEndpoints - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountInternetEndpoints#Multiple - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountKey - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountKey#Multiple - - - - - - - - - - - - - - - - - - - - - CreationTime - - - KeyName - - - Permission - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountListResult - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountListResult#Multiple - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMicrosoftEndpoints - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMicrosoftEndpoints#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - Blob - - - Df - - - File - - - Queue - - - Table - - - Web - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigration - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigration#Multiple - - - - - - - - - - - - - - - Name - - - ResourceGroupName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigrationProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountMigrationProperties#Multiple - - - - - - - - - - - - - - - - - - - - - MigrationFailedDetailedReason - - - MigrationFailedReason - - - MigrationStatus - - - TargetSkuName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountProperties - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountProperties#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AccountMigrationInProgress - - - AllowBlobPublicAccess - - - AllowCrossTenantReplication - - - AllowSharedKeyAccess - - - AllowedCopyScope - - - CreationTime - - - DefaultToOAuthAuthentication - - - DnsEndpointType - - - EnableHttpsTrafficOnly - - - EnableNfsV3 - - - FailoverInProgress - - - IsHnsEnabled - - - IsLocalUserEnabled - - - IsSftpEnabled - - - IsSkuConversionBlocked - - - LargeFileSharesState - - - LastGeoFailoverTime - - - MinimumTlsVersion - - - PrimaryLocation - - - ProvisioningState - - - PublicNetworkAccess - - - SecondaryLocation - - - StatusOfPrimary - - - StatusOfSecondary - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesCreateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesCreateParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowCrossTenantReplication - - - AllowSharedKeyAccess - - - AllowedCopyScope - - - DefaultToOAuthAuthentication - - - DnsEndpointType - - - EnableHttpsTrafficOnly - - - EnableNfsV3 - - - IsHnsEnabled - - - IsLocalUserEnabled - - - IsSftpEnabled - - - LargeFileSharesState - - - MinimumTlsVersion - - - PublicNetworkAccess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountPropertiesUpdateParameters#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccessTier - - - AllowBlobPublicAccess - - - AllowCrossTenantReplication - - - AllowSharedKeyAccess - - - AllowedCopyScope - - - DefaultToOAuthAuthentication - - - DnsEndpointType - - - EnableHttpsTrafficOnly - - - IsLocalUserEnabled - - - IsSftpEnabled - - - LargeFileSharesState - - - MinimumTlsVersion - - - PublicNetworkAccess - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountRegenerateKeyParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountRegenerateKeyParameters#Multiple - - - - - - - - - - - - KeyName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountSkuConversionStatus - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountSkuConversionStatus#Multiple - - - - - - - - - - - - - - - - - - - - - EndTime - - - SkuConversionStatus - - - StartTime - - - TargetSkuName - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParameters - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParameters#Multiple - - - - - - - - - - - - Kind - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParametersTags - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageAccountUpdateParametersTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.StorageIdentity#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccountName - - - BlobInventoryPolicyName - - - DeletedAccountName - - - EncryptionScopeName - - - Location - - - ManagementPolicyName - - - MigrationName - - - ObjectReplicationPolicyId - - - PrivateEndpointConnectionName - - - ResourceGroupName - - - SubscriptionId - - - Username - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SystemData - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.SystemData#Multiple - - - - - - - - - - - - - - - - - - - - - - - - - - - CreatedAt - - - CreatedBy - - - CreatedByType - - - LastModifiedAt - - - LastModifiedBy - - - LastModifiedByType - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TagFilter - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TagFilter#Multiple - - - - - - - - - - - - - - - - - - Name - - - Op - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResource - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResource#Multiple - - - - - - - - - - - - - - - Name - - - Location - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResourceTags - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.TrackedResourceTags#Multiple - - - - - - - - - - - - Item - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Usage - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Usage#Multiple - - - - - - - - - - - - - - - - - - CurrentValue - - - Limit - - - Unit - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UsageName - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UsageName#Multiple - - - - - - - - - - - - - - - LocalizedValue - - - Value - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UserAssignedIdentity - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.UserAssignedIdentity#Multiple - - - - - - - - - - - - - - - ClientId - - - PrincipalId - - - - - - - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.VirtualNetworkRule - - Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.VirtualNetworkRule#Multiple - - - - - - - - - - - - - - - - - - Action - - - State - - - VirtualNetworkResourceId - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.psm1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.psm1 deleted file mode 100644 index 06cc98bd6220..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/Az.Storage.psm1 +++ /dev/null @@ -1,337 +0,0 @@ -# region Generated - # ---------------------------------------------------------------------------------- - # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. - # ---------------------------------------------------------------------------------- - # Load required Az.Accounts module - $accountsName = 'Az.Accounts' - $accountsModule = Get-Module -Name $accountsName - if(-not $accountsModule) { - $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules' - if(Test-Path -Path $localAccountsPath) { - $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 - if($localAccounts) { - $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru - } - } - if(-not $accountsModule) { - $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 - if($hasAdequateVersion) { - $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru - } - } - } - - if(-not $accountsModule) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://learn.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop - } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { - Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop - } - Write-Information "Loaded Module '$($accountsModule.Name)'" - - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.Storage.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Storage.Module]::Instance - - # Ask for the shared functionality table - $VTable = Register-AzModule - - # Tweaks the pipeline on module load - $instance.OnModuleLoad = $VTable.OnModuleLoad - - # Following two delegates are added for telemetry - $instance.GetTelemetryId = $VTable.GetTelemetryId - $instance.Telemetry = $VTable.Telemetry - - # Delegate to sanitize the output object - $instance.SanitizeOutput = $VTable.SanitizerHandler - - # Delegate to get the telemetry info - $instance.GetTelemetryInfo = $VTable.GetTelemetryInfo - - # Tweaks the pipeline per call - $instance.OnNewRequest = $VTable.OnNewRequest - - # Gets shared parameter values - $instance.GetParameterValue = $VTable.GetParameterValue - - # Allows shared module to listen to events from this module - $instance.EventListener = $VTable.EventListener - - # Gets shared argument completers - $instance.ArgumentCompleter = $VTable.ArgumentCompleter - - # The name of the currently selected Azure profile - $instance.ProfileName = $VTable.ProfileName - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Az.Storage.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDBSpO4nLgVZZiE -# p1iRBhK5XCm0c7tXqZhhGj3VQypBsKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEICoTnpEA1PO8Cs1iKc9nO9Gs -# JFGWx4hSxcUPmz7TINXaMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAaqsJawrU3jxq1i1ErqoZ1fxd1Yc5nrEU4pUuVjeakNLKoXmjSCF9xAsb -# wdMJUe1DvfZeboXvZekVEDskv82lussXdifheiOXXaWXZStaKYC1kNNtOtMLmsP8 -# tslWP2gM54l4BoQ48o6UaV3Y2tPq6JEGBnbP7ioxB5ViG6hoGzJVyfMve3utg5N6 -# cMI+MIWQ70wcJ88VZ7zIdZDRw3x66CvtlYGeCwVstoRaEb6FTjC7oPaZedg7uO+D -# LKPFw2PC1LqwstmbBvthtreO/aOy0qvBTkzvN+fIEDB0byQhPi5txksihIsRAO9p -# eUl0uOhcIZmk5SIimrO1+cIN6WlhmqGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCCqr3NZtRxeX8H0qFP7T6ahe1ZeE8E+cvF57uqaMBuKSwIGZ1rLfdML -# GBMyMDI1MDEwOTA2MzY0My45MjNaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w -# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAekPcTB+XfESNgABAAAB6TANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjZaFw0yNTAzMDUxODQ1MjZaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCsmowxQRVgp4TSc3nTa6yrAPJnV6A7aZYnTw/yx90u -# 1DSH89nvfQNzb+5fmBK8ppH76TmJzjHUcImd845A/pvZY5O8PCBu7Gq+x5Xe6plQ -# t4xwVUUcQITxklOZ1Rm9fJ5nh8gnxOxaezFMM41sDI7LMpKwIKQMwXDctYKvCyQy -# 6kO2sVLB62kF892ZwcYpiIVx3LT1LPdMt1IeS35KY5MxylRdTS7E1Jocl30NgcBi -# JfqnMce05eEipIsTO4DIn//TtP1Rx57VXfvCO8NSCh9dxsyvng0lUVY+urq/G8QR -# FoOl/7oOI0Rf8Qg+3hyYayHsI9wtvDHGnT30Nr41xzTpw2I6ZWaIhPwMu5DvdkEG -# zV7vYT3tb9tTviY3psul1T5D938/AfNLqanVCJtP4yz0VJBSGV+h66ZcaUJOxpbS -# IjImaOLF18NOjmf1nwDatsBouXWXFK7E5S0VLRyoTqDCxHG4mW3mpNQopM/U1WJn -# jssWQluK8eb+MDKlk9E/hOBYKs2KfeQ4HG7dOcK+wMOamGfwvkIe7dkylzm8BeAU -# QC8LxrAQykhSHy+FaQ93DAlfQYowYDtzGXqE6wOATeKFI30u9YlxDTzAuLDK073c -# ndMV4qaD3euXA6xUNCozg7rihiHUaM43Amb9EGuRl022+yPwclmykssk30a4Rp3v -# 9QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJF+M4nFCHYjuIj0Wuv+jcjtB+xOMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBWsSp+rmsxFLe61AE90Ken2XPgQHJDiS4S -# bLhvzfVjDPDmOdRE75uQohYhFMdGwHKbVmLK0lHV1Apz/HciZooyeoAvkHQaHmLh -# wBGkoyAAVxcaaUnHNIUS9LveL00PwmcSDLgN0V/Fyk20QpHDEukwKR8kfaBEX83A -# yvQzlf/boDNoWKEgpdAsL8SzCzXFLnDozzCJGq0RzwQgeEBr8E4K2wQ2WXI/ZJxZ -# S/+d3FdwG4ErBFzzUiSbV2m3xsMP3cqCRFDtJ1C3/JnjXMChnm9bLDD1waJ7TPp5 -# wYdv0Ol9+aN0t1BmOzCj8DmqKuUwzgCK9Tjtw5KUjaO6QjegHzndX/tZrY792dfR -# AXr5dGrKkpssIHq6rrWO4PlL3OS+4ciL/l8pm+oNJXWGXYJL5H6LNnKyXJVEw/1F -# bO4+Gz+U4fFFxs2S8UwvrBbYccVQ9O+Flj7xTAeITJsHptAvREqCc+/YxzhIKkA8 -# 8Q8QhJKUDtazatJH7ZOdi0LCKwgqQO4H81KZGDSLktFvNRhh8ZBAenn1pW+5UBGY -# z2GpgcxVXKT1CuUYdlHR9D6NrVhGqdhGTg7Og/d/8oMlPG3YjuqFxidiIsoAw2+M -# hI1zXrIi56t6JkJ75J69F+lkh9myJJpNkx41sSB1XK2jJWgq7VlBuP1BuXjZ3qgy -# m9r1wv0MtTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCr -# aYf1xDk2rMnU/VJo2GGK1nxo8aCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJpTAiGA8yMDI1MDEwODIzMzI1 -# M1oYDzIwMjUwMTA5MjMzMjUzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKYml -# AgEAMAcCAQACAiY0MAcCAQACAhO3MAoCBQDrKtslAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAAQlwho/Cpc2tSYw1vt8Nusm/AJf/Yqg9evZ8PETElVrzhay -# zWqvq1NvLQUDBF/h2v4OUD3KLxjhCUKlA/o7mMBoFc7qpe/AyIaAE19CN0TkdcyL -# Ea/SMG0cUnkOoFF+Oo+eSKd3uznYnmYR9I06LuajHlThXy6N7GOr7J6gOB8vBmPs -# T7MG2CqyCfzRkz32sb2aUq0NAptBFpcJne91zFxwTUaXk5wQRyQe94HO9RW2NESk -# Z9EwvsW2ePzGIpcqLVg7IuOBlV/s89WyfkeoQqlWEdJ4LeuzNFzcn08O6mzom6HB -# rpKEVa7+cHp+6zz+CnEsBGgajWh5fn53NsRbIGoxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAekPcTB+XfESNgABAAAB6TAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCAaMt93KcZj+Zoae05nGYhygRB2Ozdf4Yti4p6AaAXXkDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIKSQkniXaTcmj1TKQWF+x2U4riVo -# rGD8TwmgVbN9qsQlMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHpD3Ewfl3xEjYAAQAAAekwIgQgVsI9sjr04+BLBnuWLK2e0f0duiPI -# futB9xw9G6dDkcIwDQYJKoZIhvcNAQELBQAEggIAkVP/nl7XorhesXfOpeWJyD2p -# /eskPx8yHJdtSAWlKe/qNqj619rdNakVSSxnxjkSLDgv4vZyAva/xOLBcJmL3RMU -# lh8x9YUKTKOi6fR0og7hYfbHpIuZvv4lSPGrnikfRqaXTM7c+qmJoNU40Cw+czNK -# 5kpSKQdxzi1JKfnA5LsI3zS9T8EGuFpgpn5ivMV2CK//f4Fe+rjIvuHm8HWBPKbq -# LfT/GMqqF7l2HEn3ad7tZkyxksrgj5tyrhWiRzwPH5Ju0jb0b1GJFBBM86aXCABa -# HpWU2jVExEFr00n6EuVffmegt4Ygee1fA4W3L2ey4LXUSlR8fA1nKB1LNl9aILvC -# TS96U7/uSIGcrSplCRjD30EaSVrzFdk8os9RLjk6pZeSZY/pbWJGIwKOEfNQVdVc -# 8oduHrNMSnmmScFjrmPkg3heYtk1kvg5dH4ZXD6NM3ylDa2tN/FRvBRdKDQxEM7R -# LFum34rAhEQQyll0/3I09MCRK6vQ0tInvLwjzn6SxEHDJHAe2rYipEECh74h35AJ -# Jr/805QxcbSJIPk62sNXXYxi5xptRL4UxzFl7CLB1MAjzqzfb4F8PnKN46T6rgW2 -# kgeHrqm1ZyVqRYisovm6nPLBoQyRgfdTnHgVfFC9XAyaodJgOdrSBDiXYbjhc/0h -# ms+gtA6decjG9rHAbhY= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/bin/Az.Storage.private.dll b/Modules/Az.Storage/8.1.0/Storage.Autorest/bin/Az.Storage.private.dll deleted file mode 100644 index d173a782c043..000000000000 Binary files a/Modules/Az.Storage/8.1.0/Storage.Autorest/bin/Az.Storage.private.dll and /dev/null differ diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Az.Storage.custom.psm1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Az.Storage.custom.psm1 deleted file mode 100644 index 305315b2e392..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Az.Storage.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Storage.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Az.Storage.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA5y03H/4iWEUzs -# t4OdHhPLBv3R0cG86hsmM72gSRcR6aCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOHSuBgUYxzLUsV0MV7ZWCny -# uNrsCjc7uJNDqt/jRYdhMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAEUgXVduLhk7X1cm7C9G3nNIRU1OI+V///Vlpn/U3ExCj/xr49J+uDtFo -# ycH74E+ZEQICg8zyjFUFITRw5H6jiK2gGwKzfgQoAh0DngVlTz3we4m+JIZ1KMxh -# 8xu5sKK/IHktIX2Wd4UVrOTKvUO+cr4+m+d2SpPGMpO0WsN1GKnmN4VrZgtdr1os -# WiMNZogIDOlYdnv6/fs0f2AL8O345LXpo99iXXk/fdshjl/4oRlePCDXXYyN0Fw8 -# QyYagFJAPJILlVosrynql0oD5DJdUqgIPsWt+CqWHhgHRVM6Xty7PpTd3dJSNoIs -# l91OvAwl+Fvck3lP/cQGnDfhUFS2XaGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAGQrI1wfmZTmcJHP/HFmFxHRYJsYIiCXP1I2TjYoPXogIGZ1rRdmVn -# GBMyMDI1MDEwOTA2MzY0Mi41MzJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAecujy+TC08b6QABAAAB5zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MTlaFw0yNTAzMDUxODQ1MTlaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDCV58v4IuQ659XPM1DtaWMv9/HRUC5kdiEF89YBP6/ -# Rn7kjqMkZ5ESemf5Eli4CLtQVSefRpF1j7S5LLKisMWOGRaLcaVbGTfcmI1vMRJ1 -# tzMwCNIoCq/vy8WH8QdV1B/Ab5sK+Q9yIvzGw47TfXPE8RlrauwK/e+nWnwMt060 -# akEZiJJz1Vh1LhSYKaiP9Z23EZmGETCWigkKbcuAnhvh3yrMa89uBfaeHQZEHGQq -# dskM48EBcWSWdpiSSBiAxyhHUkbknl9PPztB/SUxzRZjUzWHg9bf1mqZ0cIiAWC0 -# EjK7ONhlQfKSRHVLKLNPpl3/+UL4Xjc0Yvdqc88gOLUr/84T9/xK5r82ulvRp2A8 -# /ar9cG4W7650uKaAxRAmgL4hKgIX5/0aIAsbyqJOa6OIGSF9a+DfXl1LpQPNKR79 -# 2scF7tjD5WqwIuifS9YUiHMvRLjjKk0SSCV/mpXC0BoPkk5asfxrrJbCsJePHSOE -# blpJzRmzaP6OMXwRcrb7TXFQOsTkKuqkWvvYIPvVzC68UM+MskLPld1eqdOOMK7S -# bbf2tGSZf3+iOwWQMcWXB9gw5gK3AIYK08WkJJuyzPqfitgubdRCmYr9CVsNOuW+ -# wHDYGhciJDF2LkrjkFUjUcXSIJd9f2ssYitZ9CurGV74BQcfrxjvk1L8jvtN7mul -# IwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM/+4JiAnzY4dpEf/Zlrh1K73o9YMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQB0ofDbk+llWi1cC6nsfie5Jtp09o6b6ARC -# pvtDPq2KFP+hi+UNNP7LGciKuckqXCmBTFIhfBeGSxvk6ycokdQr3815pEOaYWTn -# HvQ0+8hKy86r1F4rfBu4oHB5cTy08T4ohrG/OYG/B/gNnz0Ol6v7u/qEjz48zXZ6 -# ZlxKGyZwKmKZWaBd2DYEwzKpdLkBxs6A6enWZR0jY+q5FdbV45ghGTKgSr5ECAOn -# LD4njJwfjIq0mRZWwDZQoXtJSaVHSu2lHQL3YHEFikunbUTJfNfBDLL7Gv+sTmRi -# DZky5OAxoLG2gaTfuiFbfpmSfPcgl5COUzfMQnzpKfX6+FkI0QQNvuPpWsDU8sR+ -# uni2VmDo7rmqJrom4ihgVNdLaMfNUqvBL5ZiSK1zmaELBJ9a+YOjE5pmSarW5sGb -# n7iVkF2W9JQIOH6tGWLFJS5Hs36zahkoHh8iD963LeGjZqkFusKaUW72yMj/yxTe -# GEDOoIr35kwXxr1Uu+zkur2y+FuNY0oZjppzp95AW1lehP0xaO+oBV1XfvaCur/B -# 5PVAp2xzrosMEUcAwpJpio+VYfIufGj7meXcGQYWA8Umr8K6Auo+Jlj8IeFS6lSv -# KhqQpmdBzAMGqPOQKt1Ow3ZXxehK7vAiim3ZiALlM0K546k0sZrxdZPgpmz7O8w9 -# gHLuyZAQezCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCz -# cgTnGasSwe/dru+cPe1NF/vwQ6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymPnzAiGA8yMDI1MDEwODIzNTgy -# M1oYDzIwMjUwMTA5MjM1ODIzWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKY+f -# AgEAMAcCAQACAgqMMAcCAQACAhNMMAoCBQDrKuEfAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEZtHe+7A3SvgaoN66naRZpTnp73wRcRs8dMBT3/c8PYbwX6 -# vxGPyBv1qSfycPyf9PDPX/Typ8w+8P/annh29uNumbttljO38YGNwi3IUG9QAltD -# SvoglH7QcJm1KiuZLmAzFL2BMD7cA9wCHR78jZR4LHt6D1oOhUKwPLbYbdZWPkLx -# jtfTqqXmcMxoQFvztZBl2qyhuq59akIRrkd2wSsk73bLo2YlaSsElNMFTIyPrpL+ -# /PamnIX0XpSRdWwwiJxNJs0McQpR65/Tmfbv1Z7u0DMlHQWJOyXQl1bRAqOMtisp -# xf389cbnpY4LLkQC73n7bxQVm8Gm4uYVeOOdODMxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAecujy+TC08b6QABAAAB5zAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCDHbxCxbewQjl9Q+rsaf0gXhB23MoSRJnrtZo0bl4UK5jCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIOU2XQ12aob9DeDFXM9UFHeEX74F -# v0ABvQMG7qC51nOtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHnLo8vkwtPG+kAAQAAAecwIgQgRJvjJ1+gVGsNoaDt9U/FTkFEV0dZ -# g7U4j7s6WjWsakEwDQYJKoZIhvcNAQELBQAEggIAk6KVKKvrIRxXrMYjvjCstogf -# NcCDnOgHgOQNSTmzoQ6nqPXN+5WcJmylUKAeTRLapmM8P3F4hIcSxpB/t/wD5YUO -# KBStMggEYjj7gCTAY5rTWtqd+OJp1vSkZ/9aQHpm96DqMGsVthrK8BKiklUGjTVZ -# xuP0DKc//quSMV2KYGRqh/pToKvIzFyjjx+asl6EAb24IhuZajWOrX17ovA8I/Vm -# Bfn6S1zX7+Mq+v9EQEZJXJm5en0QPkfcUrzxXBI1rT2YtYzT139JXutpQD70YsRl -# rJzf9KcVN8xrDmNJrqB7yegVMkuhwEvJ5aUVTjp7Ca2lEmBgSTrRWMJQ+W1TMVU+ -# B6NnAr/wtRyc1/0ryyRhEhBFH/oNymUX/yOcAl0KL7a3AToc83VJpYo1WlQ97pPW -# A/5pkgGAmnrEALTEPc9eFScSGisaEHcBfTOXfbXFXe/LLj2+oSnvotCLot5GKsGM -# yqeNLZ17qCd/dVb/EsdRFVgxAxd6nt5aY82eBq6pZ30actWImo+e2SQ9t1LX2kXe -# EeUB+EBqsGz2t+8WDLfhvpUCLz3glBnSWsfpsY6UFG/2Xo7iheVLWSUbjEaAcdn/ -# k/ZnCotCNZcS00BJyeSJS7cfgRjNwjgxNW5Dc85KkDHPYVAjwxKsysw9XU5hrgtK -# oJIf2F6Q3xDpYv35BXY= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Start-AzStorageAccountMigration.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Start-AzStorageAccountMigration.ps1 deleted file mode 100644 index 2a6dc353a47f..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/custom/Start-AzStorageAccountMigration.ps1 +++ /dev/null @@ -1,426 +0,0 @@ -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Description -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Example -Start-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresourcegroup -TargetSku Standard_LRS -Name migration1 -AsJob -.Example -Get-AzStorageAccount -ResourceGroupName myresourcegroup -Name myaccount | Start-AzStorageAccountMigration -TargetSku Standard_LRS -AsJob -.Example -$properties = '{ - "properties": { - "targetSkuName": "Standard_ZRS" - } -}' - Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonString $properties -AsJob -.Example -# Before executing the cmdlet, make sure you have a json file that contains {"properties": {"targetSkuName": }} -Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonFilePath properties.json -AsJob - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. -.Link -https://learn.microsoft.com/powershell/module/az.storage/start-azstorageaccountmigration -#> -function Start-AzStorageAccountMigration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CustomerExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaJsonFilePath')] - [Parameter(ParameterSetName='CustomerViaJsonString')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.PSArgumentCompleterAttribute("Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS")] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Target sku name for the account - ${TargetSku}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # current value is 'default' for customer initiated migration - ${Name}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # SrpAccountMigrationType in ARM contract which is 'accountMigrations' - ${Type}, - - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Path of Json file supplied to the Customer operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Json string supplied to the Customer operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - - process { - Write-Warning("After your request to convert the account's redundancy configuration is validated, the conversion will typically complete in a few days, but can take a few weeks depending on current resource demands in the region, account size, and other factors. The conversion can't be stopped after being initiated, and for accounts with geo redundancy a failover can't be initiated while conversion is in progress. The data within the storage account will continue to be accessible with no loss of durability or availability.") - Az.Storage.internal\Start-AzStorageAccountMigration @PSBoundParameters - } -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC859puGL2l4nNN -# Dkq3fhgBG4unrW8AxFOXHW596OrkUKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBy1zTT78S7FYAaM4Gd2a5SG -# 8bd6MBypgMurnsdD1uEwMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAGT5WG+NR9Sl1CpQpFZDmLKrIN7q1v+r9bBUmLHMgHpOPBmTGmS1QTSMx -# cmDZqHcVWJ3/IAyjWZ4kV6CeyxfDrw+/yHdJHH9dfi+spPYdpnGnFbrBsh1NGaYl -# JuuLLZ0tMV6QLBdY40p3NLwLj4hHiVQ8HIt7PLhlW0A1etp8SlWlwkfRDJNxmODt -# C7QVmRX0r60heTrdCrxzTRSzzJm/nIZE1s8i8lvNFybfOaFG1Vk51/rBrHMDIkKJ -# BFdVI5B55A573trxykc0X3GAKBvF8bOvhbGjZxP4Kj8GjOJpD2cE+mFdxu007eoJ -# nsEeQ20L3Io0TTtbisTg4gsMPWtgd6GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBG8FIXeLbdA0kRtRQhTWAMH4lomo92loYY0hvT3Q6JeAIGZ1rLW6Cy -# GBMyMDI1MDEwOTA2MzY0NS4wMTRaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAe+JP1ahWMyo2gABAAAB7zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDhaFw0yNTAzMDUxODQ1NDhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCjC1jinwzgHwhOakZqy17oE4BIBKsm5kX4DUmCBWI0 -# lFVpEiK5mZ2Kh59soL4ns52phFMQYGG5kypCipungwP9Nob4VGVE6aoMo5hZ9Nyt -# XR5ZRgb9Z8NR6EmLKICRhD4sojPMg/RnGRTcdf7/TYvyM10jLjmLyKEegMHfvIwP -# mM+AP7hzQLfExDdqCJ2u64Gd5XlnrFOku5U9jLOKk1y70c+Twt04/RLqruv1fGP8 -# LmYmtHvrB4TcBsADXSmcFjh0VgQkX4zXFwqnIG8rgY+zDqJYQNZP8O1Yo4kSckHT -# 43XC0oM40ye2+9l/rTYiDFM3nlZe2jhtOkGCO6GqiTp50xI9ITpJXi0vEek8AejT -# 4PKMEO2bPxU63p63uZbjdN5L+lgIcCNMCNI0SIopS4gaVR4Sy/IoDv1vDWpe+I28 -# /Ky8jWTeed0O3HxPJMZqX4QB3I6DnwZrHiKn6oE38tgBTCCAKvEoYOTg7r2lF0Iu -# bt/3+VPvKtTCUbZPFOG8jZt9q6AFodlvQntiolYIYtqSrLyXAQIlXGhZ4gNcv4dv -# 1YAilnbWA9CsnYh+OKEFr/4w4M69lI+yaoZ3L/t/UfXpT/+yc7hS/FolcmrGFJTB -# YlS4nE1cuKblwZ/UOG26SLhDONWXGZDKMJKN53oOLSSk4ldR0HlsbT4heLlWlOEl -# JQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFO1MWqKFwrCbtrw9P8A63bAVSJzLMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAYGZa3aCDudbk9EVdkP8xcQGZuIAIPRx9K -# 1CA7uRzBt80fC0aWkuYYhQMvHHJRHUobSM4Uw3zN7fHEN8hhaBDb9NRaGnFWdtHx -# mJ9eMz6Jpn6KiIyi9U5Og7QCTZMl17n2w4eddq5vtk4rRWOVvpiDBGJARKiXWB9u -# 2ix0WH2EMFGHqjIhjWUXhPgR4C6NKFNXHvWvXecJ2WXrJnvvQGXAfNJGETJZGpR4 -# 1nUN3ijfiCSjFDxamGPsy5iYu904Hv9uuSXYd5m0Jxf2WNJSXkPGlNhrO27pPxgT -# 111myAR61S3S2hc572zN9yoJEObE98Vy5KEM3ZX53cLefN81F1C9p/cAKkE6u9V6 -# ryyl/qSgxu1UqeOZCtG/iaHSKMoxM7Mq4SMFsPT/8ieOdwClYpcw0CjZe5KBx2xL -# a4B1neFib8J8/gSosjMdF3nHiyHx1YedZDtxSSgegeJsi0fbUgdzsVMJYvqVw52W -# qQNu0GRC79ZuVreUVKdCJmUMBHBpTp6VFopL0Jf4Srgg+zRD9iwbc9uZrn+89odp -# InbznYrnPKHiO26qe1ekNwl/d7ro2ItP/lghz0DoD7kEGeikKJWHdto7eVJoJhkr -# UcanTuUH08g+NYwG6S+PjBSB/NyNF6bHa/xR+ceAYhcjx0iBiv90Mn0JiGfnA2/h -# Lj5evhTcAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBL -# cI81gxbea1Ex2mFbXx7ck+0g/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJiDAiGA8yMDI1MDEwODIzMzIy -# NFoYDzIwMjUwMTA5MjMzMjI0WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKYmI -# AgEAMAoCAQACAhBWAgH/MAcCAQACAhQIMAoCBQDrKtsIAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAFF0rbTmMxkNPz1om4SHJYc5SM7SYKncb0JlkUfCGEYD -# gqofUSHhfk6mHDcJEWMr/8zYmBhRHgPuwpWmY/brBK7db/raMs35QQZbnW+zFh7k -# DWu9SsAIAmMsjCFCidwTPCwvp01uN2bL1Nniofh1TZXX4kibqoDs8lc3a4iBK5HH -# SiV//dtJgcZ3l28OnuUcPy6OMhl1vi1fVfHEsjO3l4dsN7c+KYGWxGrSDF5RT5iF -# 4xikv8W98I8aju/Y88HPZtIF2a/jyxMmXnOrlxQUEw8HECkQVRN4mijQjKMqE74z -# SIhjWxKaMbM94739pPKBb+o5mZFzKnBbaCA13R3zvNMxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe+JP1ahWMyo2gABAAAB -# 7zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCDZajNpLTtWVmoyqNgliimuaVEN/CJUKk/Zl6zz8JcQ -# NTCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPBhKEW4Fo3wUz09NQx2a0Db -# cdsX8jovM5LizHmnyX+jMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHviT9WoVjMqNoAAQAAAe8wIgQgk8GRw07evoBPTcHFRSwwzBm1 -# /c/LPJrR0eUDtfdYEUgwDQYJKoZIhvcNAQELBQAEggIAZRHvJBG4uberm+XrHU96 -# m9WZlTJuxFT9R7b6lIcG0nnoVnog9dK8r67DhPyO7dzrhGSCGeo10lrCe7OS1xNj -# fdr9dL1IE25TXhl4LUbptVKG0IwyT+K9anOIXaSk1XDnrN1AgOinb3koJ1XNj6AL -# ZKM+xcWGa1sLZWN5QBCVjzL/b+BvNFaiPhi9iVblq9v4x1AC8tuDLCHuXg9nKAdy -# gzBfZszTVyI+PSKN7KgQe8vt6dazcsxT4THfpvESPSjEaFAHYUuuNxLXe3ff0Aji -# jMoSDb6xXlff2ZcsEs0BTXb6J2hK58izI99tx9LcJVyp8JpY0qJWdq5GyCybwoi6 -# K7tLte66hsckVSGoHUP5HFpn3oJWvwfBsSftpUEbxrvIHQyYiiNtRmZqdyOa9dol -# S7n+GFeLxVfkYwWaZ0aHOcCH8gwd0JtOuU3uAwQDM9GWwyInlLutn7rP1VK21jZu -# NYsd1VJVJj4XAEb1cMetWmV9EYY+YPcVGJjG/s11kXhD2b36T/fOVB8se8FHG2P2 -# Rb6Vvk5rV0aH6CUwpd343vx9u+FnoyCmVk1XsPNa0sOuh/w3xnf0+SOzFD29ZvS6 -# RumL8/g42W38uDPwTM3E3t4f6k7rl0idGK9jcdHdzd3P+ZukqfcGEKxv9XNIn5sG -# s9z7wsb00Vq/jt1nsLsiwvQ= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/exports/ProxyCmdletDefinitions.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/exports/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index 1ae80bdebdd7..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/exports/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,713 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Gets the status of the ongoing migration for the specified storage account. -.Description -Gets the status of the ongoing migration for the specified storage account. -.Example -Get-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresroucegroup - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. -.Link -https://learn.microsoft.com/powershell/module/az.storage/get-azstorageaccountmigration -#> -function Get-AzStorageAccountMigration { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String[]] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - Get = 'Az.Storage.private\Get-AzStorageAccountMigration_Get'; - GetViaIdentity = 'Az.Storage.private\Get-AzStorageAccountMigration_GetViaIdentity'; - } - if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -<# -.Synopsis -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Description -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Example -Start-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresourcegroup -TargetSku Standard_LRS -Name migration1 -AsJob -.Example -Get-AzStorageAccount -ResourceGroupName myresourcegroup -Name myaccount | Start-AzStorageAccountMigration -TargetSku Standard_LRS -AsJob -.Example -$properties = '{ - "properties": { - "targetSkuName": "Standard_ZRS" - } -}' - Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonString $properties -AsJob -.Example -# Before executing the cmdlet, make sure you have a json file that contains {"properties": {"targetSkuName": }} -Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonFilePath properties.json -AsJob - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. -.Link -https://learn.microsoft.com/powershell/module/az.storage/start-azstorageaccountmigration -#> -function Start-AzStorageAccountMigration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='CustomerExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaJsonString')] - [Parameter(ParameterSetName='CustomerViaJsonFilePath')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='CustomerExpanded', Mandatory)] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.PSArgumentCompleterAttribute("Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS")] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Target sku name for the account - ${TargetSku}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # current value is 'default' for customer initiated migration - ${Name}, - - [Parameter(ParameterSetName='CustomerExpanded')] - [Parameter(ParameterSetName='CustomerViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # SrpAccountMigrationType in ARM contract which is 'accountMigrations' - ${Type}, - - [Parameter(ParameterSetName='CustomerViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Json string supplied to the Customer operation - ${JsonString}, - - [Parameter(ParameterSetName='CustomerViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Path of Json file supplied to the Customer operation - ${JsonFilePath}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $PSVersionTable.PSVersion.ToString() - } - $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - if ($preTelemetryId -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) - } else { - $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - if ($internalCalledCmdlets -eq '') { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name - } else { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' - } - - $mapping = @{ - CustomerExpanded = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - CustomerViaJsonString = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - CustomerViaJsonFilePath = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - CustomerViaIdentityExpanded = 'Az.Storage.custom\Start-AzStorageAccountMigration'; - } - if (('CustomerExpanded', 'CustomerViaJsonString', 'CustomerViaJsonFilePath') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - $cmdInfo = Get-Command -Name $mapping[$parameterSet] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - if ($null -ne $MyInvocation.MyCommand -and [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets -notcontains $MyInvocation.MyCommand.Name -and [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ContainsPreviewAttribute($cmdInfo, $MyInvocation)){ - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PromptedPreviewMessageCmdlets.Enqueue($MyInvocation.MyCommand.Name) - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } - - finally { - $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId - $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - -} -end { - try { - $steppablePipeline.End() - - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets - if ($preTelemetryId -eq '') { - [Microsoft.Azure.PowerShell.Cmdlets.Storage.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - } - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId - - } catch { - [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() - throw - } -} -} - -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDVXnh83FQRdKVL -# Fgzmv94Ihg/Em4x4IJkoeK/gRwHH4qCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIA0I -# oRgBZ5TmBKWt8UzqjqUHihXnmTUsML6qlGmMPxrCMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAPQ5a5YWmnjCs0tqdU62lnEkCg2z0rGtAvAVU -# xlDYKftSsM27SympHR0f+SquSDYhCxX2qu9r+UQx/bynNRr4YjbAxkWcj/nWfU2W -# z5S7LD4FNDnJpZmxkzdEBjPSsXQAZhzBGe8OOcPA8z/eiMPYwYNwefv5teebr1Tv -# RwgXzJvewAAyvuETPAPITFxp95vjQIBdCBm4CNQRS/r5sw2UU5dcI7VYYSWFsh65 -# 6DMty7tY+hQusN7Oyzo7WRHpwS84CLA/tIzTzVuTd2GiYU5L/M0pHDOSwrlSgnPA -# hgYNlx05rUtVEor6M6djEG5XGBAq8OOg7nK1GwaSFYLOfVXAYKGCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCgAyfnYhexHoB+W19w0fbXzmDPDptpPypW -# HGCroHYrhwIGZ1rd48kXGBMyMDI1MDEwOTA2MzY0OC4xMDdaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046OEQwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAfPFCkOuA8wdMQAB -# AAAB8zANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ2MDJaFw0yNTAzMDUxODQ2MDJaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OEQwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQD+n6ba4SuB9iSO5WMhbngq -# YAb+z3IfzNpZIWS/sgfXhlLYmGnsUtrGX3OVcg+8krJdixuNUMO7ZAOqCZsXUjOz -# 8zcn1aUD5D2r2PhzVKjHtivWGgGj4x5wqWe1Qov3vMz8WHsKsfadIlWjfBMnVKVo -# mOybQ7+2jc4afzj2XJQQSmE9jQRoBogDwmqZakeYnIx0EmOuucPr674T6/YaTPiI -# YlGf+XV2u6oQHAkMG56xYPQikitQjjNWHADfBqbBEaqppastxpRNc4id2S1xVQxc -# QGXjnAgeeVbbPbAoELhbw+z3VetRwuEFJRzT6hbWEgvz9LMYPSbioHL8w+ZiWo3x -# uw3R7fJsqe7pqsnjwvniP7sfE1utfi7k0NQZMpviOs//239H6eA6IOVtF8w66ipE -# 71EYrcSNrOGlTm5uqq+syO1udZOeKM0xY728NcGDFqnjuFPbEEm6+etZKftU9jxL -# CSzqXOVOzdqA8O5Xa3E41j3s7MlTF4Q7BYrQmbpxqhTvfuIlYwI2AzeO3OivcezJ -# wBj2FQgTiVHacvMQDgSA7E5vytak0+MLBm0AcW4IPer8A4gOGD9oSprmyAu1J6wF -# kBrf2Sjn+ieNq6Fx0tWj8Ipg3uQvcug37jSadF6q1rUEaoPIajZCGVk+o5wn6rt+ -# cwdJ39REU43aWCwn0C+XxwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFMNkFfalEVEM -# jA3ApoUx9qDrDQokMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDfxByP/NH+79vc -# 3liO4c7nXM/UKFcAm5w61FxRxPxCXRXliNjZ7sDqNP0DzUTBU9tS5DqkqRSiIV15 -# j7q8e6elg8/cD3bv0sW4Go9AML4lhA5MBg3wzKdihfJ0E/HIqcHX11mwtbpTiC2s -# gAUh7+OZnb9TwJE7pbEBPJQUxxuCiS5/r0s2QVipBmi/8MEW2eIi4mJ+vHI5DCaA -# GooT4A15/7oNj9zyzRABTUICNNrS19KfryEN5dh5kqOG4Qgca9w6L7CL+SuuTZi0 -# SZ8Zq65iK2hQ8IMAOVxewCpD4lZL6NDsVNSwBNXOUlsxOAO3G0wNT+cBug/HD43B -# 7E2odVfs6H2EYCZxUS1rgReGd2uqQxgQ2wrMuTb5ykO+qd+4nhaf/9SN3getomtQ -# n5IzhfCkraT1KnZF8TI3ye1Z3pner0Cn/p15H7wNwDkBAiZ+2iz9NUEeYLfMGm9v -# ErDVBDRMjGsE/HqqY7QTSTtDvU7+zZwRPGjiYYUFXT+VgkfdHiFpKw42Xsm0MfL5 -# aOa31FyCM17/pPTIKTRiKsDF370SwIwZAjVziD/9QhEFBu9pojFULOZvzuL5iSEJ -# IcqopVAwdbNdroZi2HN8nfDjzJa8CMTkQeSfQsQpKr83OhBmE3MF2sz8gqe3loc0 -# 5DW8JNvZ328Jps3LJCALt0rQPJYnOzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjhEMDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQBu+gYs2LRha5pFO79g3LkfwKRnKKCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymcDTAi -# GA8yMDI1MDEwOTAwNTEyNVoYDzIwMjUwMTEwMDA1MTI1WjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKZwNAgEAMAcCAQACAhoaMAcCAQACAhHwMAoCBQDrKu2NAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAIi8y/oESDxqpVHfLgHNygwB/Jrt -# mCI3RsQCcgV5VK4R4ZTXPXCVTssT+UA6huQ6d07Y0VWH7wXCrgW/Dj7HmJpYDW4K -# cZ5SZ7+vEZN/jfcVVOVHSlLbzhsgPfPcqw/KzO06ylav4klLg92+ay2tlsZB2PlK -# AFI1zLXsPrDZxNT/A//KsadnbPriUKDxeDGyvWr+0sKMT6VZeE3+UK6fibWBA9eF -# aUKkm3jtXGhMDHtWNmI9q6EfWAhO/KuKlEnGbmqthEjV9QTtxBaMw4KRb0BZrOVB -# FSTuhdPqyMSE0q15PzJ4nKcwfWgicRfebMXnU0KzCADWsXocLPiFkuqGABExggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfPF -# CkOuA8wdMQABAAAB8zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCBwO60rpIJvG4hTHMOQcCU/KcWt -# OIeL4DUp8ruLzW8SLzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIBi82TSL -# tuG4Vkp8wBmJk/T+RAh841sG/aDOwxg6O2LoMIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHzxQpDrgPMHTEAAQAAAfMwIgQgGSjW8MjK -# 1IoOQTxpadsqquBovJDUJRPGCnAABQ9r91gwDQYJKoZIhvcNAQELBQAEggIAOOtu -# hQR9hUBzOQKDKV7wZWdNREmGgVeqbWatEnhu083bC2fcMqhYUxT1gjxjI9PhVixF -# kcAa5SNYV0ig6Ug1IDjYc9P1iJY25F2NlB/qljkDTN5W8d+RxXgzZ8XGzimX50Nk -# p6zCW//fI50CZ8etKxm4OxPFUlGl1WBtOjxaqcXxihWRkyoKb7IfN6ZFjcrZ+rHJ -# B79Kn35P0ErFxUJltXJOu+gQQPsE3xVUyxtWD66bKEK6CHx+EV2dTPj9E6YdK4mH -# ysQt4Aq0bAOqPZgBVQvh5kTCFjOEpf5pIpFm5Km3Dzjq8wgA0MJFc7uWcv/wnVSQ -# uTM+J2+FL06Zp6Z3xh5cREVfT169omNSKjEGbbnsEAp8kB4UXd2ysp4vlqWqCqKU -# 67qp1TbK8ct9IXolz1X+d073M3je2hFRsGj3q91c9io0oPFpsOVxX6VBSJttw7oB -# mg/dEZCfUdJTjJ8Kg3zTF5Z4AImWT/Da0djggvYgEeQ3ROdoElOUXiobLgJQ8b84 -# h9rh/L7Scxgoj0MJGH6TfJEByXHA8O0WlsBVODFucETR9enY01/ZrPly0cV/PS2o -# 9MDrssScH/seyOjpGS6mnyto07QzBKDkX6+o9SE/EhC/pU8qBlndQNc+4jsEQhNr -# qwfdj+bHVa+h0hPhMJPTDMRM+WFLnHWSU0JC8qI= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/Az.Storage.internal.psm1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/Az.Storage.internal.psm1 deleted file mode 100644 index 57bd3e23c7e1..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/Az.Storage.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.Storage.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Azure.PowerShell.Cmdlets.Storage.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCy7aZDAGSyfmFx -# cucI97RlwuRwihoeuqeEAnHkOPtxE6CCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOZ6yYa7DB3+xmD8tDvpbqhN -# Ix970n4cBVEw+6C8mm8TMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAOoykFelKOUq23lgSSA+ITAKouhItqPViUUY/6yw4l6jyITTWWXIuQNCp -# oGzWHmc8gkcB+aKj+G+O2nmXyQN2LoSQ3MB61C+g8bI+Nbva1W3tvSM9nAolqVO5 -# URKB6WWalR0f8/D3A345qrPqe/kWAvutEf7t3nzdIe2DSZa/QcmXVrypw6mp13rV -# P6H8oksF54T/b2dV38M6MGrHlZxAs/okRjoSlswfCJb3UsgA/88iQOfPcpoc9gPY -# D3LsRaLQOONVzFXgReuxzJfJHU39YtTdvfXYlNqp3HYejayQx61FA412OT4fKdxJ -# B43GxiGi5WTcraahnPJo8neflMFahKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDWDPGCO2FuNPxTAb4y7IXdeHAtknHosqRS2PcbW2s/UgIGZ1rou1b1 -# GBMyMDI1MDEwOTA2MzY0Mi44OTFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAehQsIDPK3KZTQABAAAB6DANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# MjJaFw0yNTAzMDUxODQ1MjJaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDhQXdE0WzXG7wzeC9SGdH6eVwdGlF6YgpU7weOFBkp -# W9yuEmJSDE1ADBx/0DTuRBaplSD8CR1QqyQmxRDD/CdvDyeZFAcZ6l2+nlMssmZy -# C8TPt1GTWAUt3GXUU6g0F0tIrFNLgofCjOvm3G0j482VutKS4wZT6bNVnBVsChr2 -# AjmVbGDN/6Qs/EqakL5cwpGel1te7UO13dUwaPjOy0Wi1qYNmR8i7T1luj2JdFdf -# ZhMPyqyq/NDnZuONSbj8FM5xKBoar12ragC8/1CXaL1OMXBwGaRoJTYtksi9njuq -# 4wDkcAwitCZ5BtQ2NqPZ0lLiQB7O10Bm9zpHWn9x1/HmdAn4koMWKUDwH5sd/zDu -# 4vi887FWxm54kkWNvk8FeQ7ZZ0Q5gqGKW4g6revV2IdAxBobWdorqwvzqL70Wdsg -# DU/P5c0L8vYIskUJZedCGHM2hHIsNRyw9EFoSolDM+yCedkz69787s8nIp55icLf -# DoKw5hak5G6MWF6d71tcNzV9+v9RQKMa6Uwfyquredd5sqXWCXv++hek4A15WybI -# c6ufT0ilazKYZvDvoaswgjP0SeLW7mvmcw0FELzF1/uWaXElLHOXIlieKF2i/YzQ -# 6U50K9dbhnMaDcJSsG0hXLRTy/LQbsOD0hw7FuK0nmzotSx/5fo9g7fCzoFjk3tD -# EwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFPo5W8o980kMfRVQba6T34HwelLaMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCWfcJm2rwXtPi74km6PKAkni9+BWotq+Qt -# DGgeT5F3ro7PsIUNKRkUytuGqI8thL3Jcrb03x6DOppYJEA+pb6o2qPjFddO1TLq -# vSXrYm+OgCLL+7+3FmRmfkRu8rHvprab0O19wDbukgO8I5Oi1RegMJl8t5k/UtE0 -# Wb3zAlOHnCjLGSzP/Do3ptwhXokk02IvD7SZEBbPboGbtw4LCHsT2pFakpGOBh+I -# SUMXBf835CuVNfddwxmyGvNSzyEyEk5h1Vh7tpwP7z7rJ+HsiP4sdqBjj6Avopuf -# 4rxUAfrEbV6aj8twFs7WVHNiIgrHNna/55kyrAG9Yt19CPvkUwxYK0uZvPl2WC39 -# nfc0jOTjivC7s/IUozE4tfy3JNkyQ1cNtvZftiX3j5Dt+eLOeuGDjvhJvYMIEkpk -# V68XLNH7+ZBfYa+PmfRYaoFFHCJKEoRSZ3PbDJPBiEhZ9yuxMddoMMQ19Tkyftot -# 6Ez0XhSmwjYBq39DvBFWhlyDGBhrU3GteDWiVd9YGSB2WnxuFMy5fbAK6o8PWz8Q -# RMiptXHK3HDBr2wWWEcrrgcTuHZIJTqepNoYlx9VRFvj/vCXaAFcmkW1nk7VE+ow -# aXr5RJjryDq9ubkyDq1mdrF/geaRALXcNZbfNXIkhXzXA6a8CiamcQW/DgmLJpiV -# QNriZYCHIDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN -# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkRDMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCM -# JG4vg0juMOVn2BuKACUvP80FuqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymm5TAiGA8yMDI1MDEwOTAxMzc0 -# MVoYDzIwMjUwMTEwMDEzNzQxWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDrKabl -# AgEAMAcCAQACAgkfMAcCAQACAhJBMAoCBQDrKvhlAgEAMDYGCisGAQQBhFkKBAIx -# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI -# hvcNAQELBQADggEBAEpuvqYAWimE3aR+q2KcX9oSBl2Vbkx7buLha6IStST4ztD6 -# i7OuKIKiHh2ybmm70omfWKv/4kYvcgElPrlgNhgzwyFXV7uRX1SkPMbH9B+5oj9Z -# WOKE81lgSX0UNsgWlL92N7nGQN3G+J/4ZP3sjZdcdC6j7nqd82IucomvfqPBKX5U -# FFDRNzuxSI2vme97A73cqQ6aHzVw9h1pChOmLz62Cud0nA3xAB6CZIi+Qa2hx2J1 -# IoroWK7dSDndNOjk5ZCMQAhcmdbr4uqkC1ySFtNJbQfp1GGE1vFiI3sNIKbe84XC -# u894GtoRsrGZuN1mOWMN3cTuM+1ec0q6je5corAxggQNMIIECQIBATCBkzB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAehQsIDPK3KZTQABAAAB6DAN -# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G -# CSqGSIb3DQEJBDEiBCDpV1Ps7ZyHm+BrjHaDjcZlY/pTF8m377zuHDVCSBblIDCB -# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICrS2sTVAoQggkHR59pNqige0xfJ -# T2J3U8W1Sc8H+OsdMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAHoULCAzytymU0AAQAAAegwIgQgQV0pW5tgGS+yeJmO/KxxySGk1pYF -# hPEuT2ZdSh5D128wDQYJKoZIhvcNAQELBQAEggIAKS6dWvswkHa8iPQyFP+n7yzI -# QzEAKeQmxVVUmaqCn6ZRNPp9J9U3j/DZw4oxkmKeFGynqozmqnfn0n/Az1+GAPC8 -# tOObDaUQbBzTsYMUPDYiEJ/zeqaYhB2dvRXLkHDHrK38Gc5RNG9L/e4R6G0pupfy -# vHLuI7wrIDNL5eiMiq/EY5G1U56N0KkE6tj4WOgOD0DShY6UkrOJQIENy5ZsSbLB -# AKlMsJbAI56pIxN3+2HEpcfbEOhd/yEwx8HMaGCH+/FQco7x7iVuOgJ5nZZObKBz -# o1u6RETNKqdqcvr1xGQoQhnWJdrZJqmkRbGBXeiv/oEBFwE+TFvrWW3HGYdb49WX -# qMuAAIoz4Q9iJU9O2p2+i9CevFV+oSKKlFxr1L/887q/e9RqZHLxpuBC3w04fnxO -# IeuTfORjXDx3IEq8Rx8BRX3gsTCE5NIk3YrX3mo58KMFSRTriTCqRR4w8cy10Gq8 -# WFmF4epAXgtIP0LtdE5cLPBDZttfpZ43FdlgXX7OAK/raWI7qq55pKBNoRSxAzhm -# sZeY7Wf6yJLiMSOuvwJOeOmSAh0h1FzX/WYf+5gZm7J+AMXh3t3FdyxwAroLb49+ -# 3UP9w++esRVpYTdrjzFS3nqmkHJd9E3VFQdk5CL9YR8RbscwZksChFcHzDWYmZTH -# VB74ayD4fvkS0dIM1lo= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/ProxyCmdletDefinitions.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/ProxyCmdletDefinitions.ps1 deleted file mode 100644 index af35fdb2f8f5..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/internal/ProxyCmdletDefinitions.ps1 +++ /dev/null @@ -1,605 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code -# is regenerated. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Lists all of the available Storage Rest API operations. -.Description -Lists all of the available Storage Rest API operations. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IOperation -.Link -https://learn.microsoft.com/powershell/module/az.storage/get-azstorageoperation -#> -function Get-AzStorageOperation { -[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IOperation])] -[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] -param( - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - List = 'Az.Storage.private\Get-AzStorageOperation_List'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration start the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Description -Account Migration request can be triggered for a storage account to change its redundancy level. -The migration start the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. -Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. -.Example -Start-AzStorageAccountMigration -AccountName myaccount -ResourceGroupName myresourcegroup -TargetSku Standard_LRS -Name migration1 -AsJob -.Example -Get-AzStorageAccount -ResourceGroupName myresourcegroup -Name myaccount | Start-AzStorageAccountMigration -TargetSku Standard_LRS -AsJob -.Example -$properties = '{ - "properties": { - "targetSkuName": "Standard_ZRS" - } -}' - Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonString $properties -AsJob -.Example -# Before executing the cmdlet, make sure you have a json file that contains {"properties": {"targetSkuName": }} -Start-AzStorageAccountMigration -ResourceGroupName myresourcegroup -AccountName myaccount -JsonFilePath properties.json -AsJob - -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration -.Inputs -Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity -.Outputs -System.Boolean -.Notes -COMPLEX PARAMETER PROPERTIES - -To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. - -INPUTOBJECT : Identity Parameter - [AccountName ]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - [BlobInventoryPolicyName ]: The name of the storage account blob inventory policy. It should always be 'default' - [DeletedAccountName ]: Name of the deleted storage account. - [EncryptionScopeName ]: The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. - [Id ]: Resource identity path - [Location ]: The location of the deleted storage account. - [ManagementPolicyName ]: The name of the Storage Account Management Policy. It should always be 'default' - [MigrationName ]: The name of the Storage Account Migration. It should always be 'default' - [ObjectReplicationPolicyId ]: For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. - [PrivateEndpointConnectionName ]: The name of the private endpoint connection associated with the Azure resource - [ResourceGroupName ]: The name of the resource group within the user's subscription. The name is case insensitive. - [SubscriptionId ]: The ID of the target subscription. - [Username ]: The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account. - -PARAMETER : The parameters or status associated with an ongoing or enqueued storage account migration in order to update its current SKU or region. - DetailTargetSkuName : Target sku name for the account - [Name ]: current value is 'default' for customer initiated migration - [Type ]: SrpAccountMigrationType in ARM contract which is 'accountMigrations' -.Link -https://learn.microsoft.com/powershell/module/az.storage/start-azstorageaccountmigration -#> -function Start-AzStorageAccountMigration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='StartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Start', Mandatory)] - [Parameter(ParameterSetName='StartExpanded', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the storage account within the specified resource group. - # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. - ${AccountName}, - - [Parameter(ParameterSetName='Start', Mandatory)] - [Parameter(ParameterSetName='StartExpanded', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonFilePath', Mandatory)] - [Parameter(ParameterSetName='StartViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [System.String] - # The name of the resource group within the user's subscription. - # The name is case insensitive. - ${ResourceGroupName}, - - [Parameter(ParameterSetName='Start')] - [Parameter(ParameterSetName='StartExpanded')] - [Parameter(ParameterSetName='StartViaJsonFilePath')] - [Parameter(ParameterSetName='StartViaJsonString')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] - [System.String] - # The ID of the target subscription. - ${SubscriptionId}, - - [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='StartViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity] - # Identity Parameter - ${InputObject}, - - [Parameter(ParameterSetName='Start', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageAccountMigration] - # The parameters or status associated with an ongoing or enqueued storage account migration in order to update its current SKU or region. - ${Parameter}, - - [Parameter(ParameterSetName='StartExpanded', Mandatory)] - [Parameter(ParameterSetName='StartViaIdentityExpanded', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.PSArgumentCompleterAttribute("Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS")] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Target sku name for the account - ${TargetSku}, - - [Parameter(ParameterSetName='StartExpanded')] - [Parameter(ParameterSetName='StartViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # current value is 'default' for customer initiated migration - ${Name}, - - [Parameter(ParameterSetName='StartExpanded')] - [Parameter(ParameterSetName='StartViaIdentityExpanded')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # SrpAccountMigrationType in ARM contract which is 'accountMigrations' - ${Type}, - - [Parameter(ParameterSetName='StartViaJsonFilePath', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Path of Json file supplied to the Start operation - ${JsonFilePath}, - - [Parameter(ParameterSetName='StartViaJsonString', Mandatory)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')] - [System.String] - # Json string supplied to the Start operation - ${JsonString}, - - [Parameter()] - [Alias('AzureRMContext', 'AzureCredential')] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Azure')] - [System.Management.Automation.PSObject] - # The DefaultProfile parameter is not functional. - # Use the SubscriptionId parameter when available if executing the cmdlet against a different subscription. - ${DefaultProfile}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command as a job - ${AsJob}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Wait for .NET debugger to attach - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be appended to the front of the pipeline - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.SendAsyncStep[]] - # SendAsync Pipeline Steps to be prepended to the front of the pipeline - ${HttpPipelinePrepend}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Run the command asynchronously - ${NoWait}, - - [Parameter()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use the default credentials for the proxy - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Start = 'Az.Storage.private\Start-AzStorageAccountMigration_Start'; - StartExpanded = 'Az.Storage.private\Start-AzStorageAccountMigration_StartExpanded'; - StartViaIdentity = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaIdentity'; - StartViaIdentityExpanded = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaIdentityExpanded'; - StartViaJsonFilePath = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaJsonFilePath'; - StartViaJsonString = 'Az.Storage.private\Start-AzStorageAccountMigration_StartViaJsonString'; - } - if (('Start', 'StartExpanded', 'StartViaJsonFilePath', 'StartViaJsonString') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId') ) { - $testPlayback = $false - $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } } - if ($testPlayback) { - $PSBoundParameters['SubscriptionId'] = . (Join-Path $PSScriptRoot '..' 'utils' 'Get-SubscriptionIdTestSafe.ps1') - } else { - $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id - } - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDG6lXJMpSTwoN6 -# QQU4ZtvepYPJ5w68AZjCvbnmSQlyfqCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEmB/JxAiOPRnhpcCfcc7IPt -# 4jOfCpxUgMd5p/FGa67sMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAbf2+GUJOj8y+xrQ0+Cec/dS+JJuIZTOYnoltAxZFc6RQlUG8rzmlI5j1 -# Ki6SU/UUT9moFUMZ7rUzYd9hjZlEEFbhJssysNoMb/RLzaFM2W3S3/4hghiS4BUV -# uZYqv6/bno5LfPxu7xbR7deG7m+Kdf2eVB2Vd5zTM+lAIHBcA4FdeJdBOYP16C7u -# ttNKnsklvB72Hl8PUU1m/sBc0z3pAjI1cH/hahlfZx3Qny/QcwKFU5JMXiwiME0i -# /ZJtC4hmNcKgM9qQNE76my90wUlh7cAak+thSGEk34CwcMCudW6KaGTc+quU3I4G -# MJtGnx7Hw+26IC8x4ymiz5XqY1luk6GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCANb62iu/9EK+hT8pc+pBpetcAAHBiA2wglOAmeC7CX8QIGZ1rLW6DO -# GBMyMDI1MDEwOTA2MzY0NS43MzFaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAe+JP1ahWMyo2gABAAAB7zANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1 -# NDhaFw0yNTAzMDUxODQ1NDhaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCjC1jinwzgHwhOakZqy17oE4BIBKsm5kX4DUmCBWI0 -# lFVpEiK5mZ2Kh59soL4ns52phFMQYGG5kypCipungwP9Nob4VGVE6aoMo5hZ9Nyt -# XR5ZRgb9Z8NR6EmLKICRhD4sojPMg/RnGRTcdf7/TYvyM10jLjmLyKEegMHfvIwP -# mM+AP7hzQLfExDdqCJ2u64Gd5XlnrFOku5U9jLOKk1y70c+Twt04/RLqruv1fGP8 -# LmYmtHvrB4TcBsADXSmcFjh0VgQkX4zXFwqnIG8rgY+zDqJYQNZP8O1Yo4kSckHT -# 43XC0oM40ye2+9l/rTYiDFM3nlZe2jhtOkGCO6GqiTp50xI9ITpJXi0vEek8AejT -# 4PKMEO2bPxU63p63uZbjdN5L+lgIcCNMCNI0SIopS4gaVR4Sy/IoDv1vDWpe+I28 -# /Ky8jWTeed0O3HxPJMZqX4QB3I6DnwZrHiKn6oE38tgBTCCAKvEoYOTg7r2lF0Iu -# bt/3+VPvKtTCUbZPFOG8jZt9q6AFodlvQntiolYIYtqSrLyXAQIlXGhZ4gNcv4dv -# 1YAilnbWA9CsnYh+OKEFr/4w4M69lI+yaoZ3L/t/UfXpT/+yc7hS/FolcmrGFJTB -# YlS4nE1cuKblwZ/UOG26SLhDONWXGZDKMJKN53oOLSSk4ldR0HlsbT4heLlWlOEl -# JQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFO1MWqKFwrCbtrw9P8A63bAVSJzLMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAYGZa3aCDudbk9EVdkP8xcQGZuIAIPRx9K -# 1CA7uRzBt80fC0aWkuYYhQMvHHJRHUobSM4Uw3zN7fHEN8hhaBDb9NRaGnFWdtHx -# mJ9eMz6Jpn6KiIyi9U5Og7QCTZMl17n2w4eddq5vtk4rRWOVvpiDBGJARKiXWB9u -# 2ix0WH2EMFGHqjIhjWUXhPgR4C6NKFNXHvWvXecJ2WXrJnvvQGXAfNJGETJZGpR4 -# 1nUN3ijfiCSjFDxamGPsy5iYu904Hv9uuSXYd5m0Jxf2WNJSXkPGlNhrO27pPxgT -# 111myAR61S3S2hc572zN9yoJEObE98Vy5KEM3ZX53cLefN81F1C9p/cAKkE6u9V6 -# ryyl/qSgxu1UqeOZCtG/iaHSKMoxM7Mq4SMFsPT/8ieOdwClYpcw0CjZe5KBx2xL -# a4B1neFib8J8/gSosjMdF3nHiyHx1YedZDtxSSgegeJsi0fbUgdzsVMJYvqVw52W -# qQNu0GRC79ZuVreUVKdCJmUMBHBpTp6VFopL0Jf4Srgg+zRD9iwbc9uZrn+89odp -# InbznYrnPKHiO26qe1ekNwl/d7ro2ItP/lghz0DoD7kEGeikKJWHdto7eVJoJhkr -# UcanTuUH08g+NYwG6S+PjBSB/NyNF6bHa/xR+ceAYhcjx0iBiv90Mn0JiGfnA2/h -# Lj5evhTcAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBL -# cI81gxbea1Ex2mFbXx7ck+0g/6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymJiDAiGA8yMDI1MDEwODIzMzIy -# NFoYDzIwMjUwMTA5MjMzMjI0WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDrKYmI -# AgEAMAoCAQACAhBWAgH/MAcCAQACAhQIMAoCBQDrKtsIAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAFF0rbTmMxkNPz1om4SHJYc5SM7SYKncb0JlkUfCGEYD -# gqofUSHhfk6mHDcJEWMr/8zYmBhRHgPuwpWmY/brBK7db/raMs35QQZbnW+zFh7k -# DWu9SsAIAmMsjCFCidwTPCwvp01uN2bL1Nniofh1TZXX4kibqoDs8lc3a4iBK5HH -# SiV//dtJgcZ3l28OnuUcPy6OMhl1vi1fVfHEsjO3l4dsN7c+KYGWxGrSDF5RT5iF -# 4xikv8W98I8aju/Y88HPZtIF2a/jyxMmXnOrlxQUEw8HECkQVRN4mijQjKMqE74z -# SIhjWxKaMbM94739pPKBb+o5mZFzKnBbaCA13R3zvNMxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe+JP1ahWMyo2gABAAAB -# 7zANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCAT5SS5fvVdl/uF5WAtBQ579zaW0E3zF9OBTuwZEI9K -# jjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPBhKEW4Fo3wUz09NQx2a0Db -# cdsX8jovM5LizHmnyX+jMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAHviT9WoVjMqNoAAQAAAe8wIgQgk8GRw07evoBPTcHFRSwwzBm1 -# /c/LPJrR0eUDtfdYEUgwDQYJKoZIhvcNAQELBQAEggIAXJ6Gogdg8Er3FlB88uFL -# J1IOpbawbpdHFCJJlmmJAZpKpH7I31HPIk7IXan68Cg/2Eg3/tR7G7sKs6yf7vv8 -# 7q6Z/lwscdxJdcPud8PzoNdEESFg4f0/4HBs/ai4a9a1H0GIhe1p5Hv6amas0Red -# R44SvkZmWwha6LkluwofMJIFV2pQihz5Xt2O7gFKKIxg2nI3Nn19EBtaSwsWBxCs -# f9cMeqnRvZWNOku9cldd4D1QLfVkGl6gCWg5xci70gVCh5HFtD43EUgBSklgT3z7 -# 9Lj3KeRSD2kAXAOJDSIn47g4Kx6WK2BtB7yG2i30fIUGix+rGojhJZ9dlaKkxa4U -# Qmo28i5mch46I/d3DF+jCMTEou8PyEyImVsbuK5VWcFEBKmuCY2FylN+ZOqSkGif -# UOJ90mQ1a/FTTyBuwzF1Yz+1p7FUs08Z6Q/x+CMhQ9CUUnDvtby6yrAhIaN4AzgH -# Ag1yOEjZiK6ukh1jllPDnhBRgnI3A1Y5DRZK4g2jLQm2xZzU10QSJmppGsIGWMVu -# diXWIbIrhouHertzqHw43LsXnKIPCYLzXixASlTCbzhmYtr8jsF+164cJqSb6KhK -# bz5JX6pq5gvDlEiXcv042RG/Cs6oV1NO/ieyeeeWmTwQG25LiBl7tn8gKUi9A1kl -# jrfF2VBOxPTCWurhypBwqNc= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 deleted file mode 100644 index 9213c3763627..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 +++ /dev/null @@ -1,224 +0,0 @@ -param() -if ($env:AzPSAutorestTestPlaybackMode) { - $loadEnvPath = Join-Path $PSScriptRoot '..' 'test' 'loadEnv.ps1' - . ($loadEnvPath) - return $env.SubscriptionId -} -return (Get-AzContext).Subscription.Id -# SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCvmGT2RlJhp/rC -# DOiTnt/3S1Bv3biEMflyZwWMS2xRdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz -# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo -# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 -# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF -# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy -# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC -# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj -# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp -# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 -# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X -# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL -# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi -# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 -# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq -# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb -# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ -# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPSNBc+wDke3rcRSTQbfFzLx -# ZjDqn60fWPPP7nkeXd5aMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAIOWv2gqibHDoAsgFKvajYtSyvigIY7LG6+yONh9HcUJdJnIgMxkf+7z/ -# qm0Q7C1aR8JJrAkY+3pKMvBOGYlXRDmicIYAN0EdUyMgxU488QsAjnGWjQXrM1UK -# aob9PRQrhtUBn4ZG5wAbJhh2Mkd1B6OfBaH39wIC9RoNJ82qC+omLBNtcSf1qxxD -# mcok7TsJipQyhezvmyZkp7mZZOCVRnQUzcv8EePP1Mb5XHJxcB9RvJZPdEnNOEor -# /+m5iJXS91Xf1av1uWJ4UtUxLh5wyLuabiujk3tdGllgFevRrW6DU7g19PbWUWFQ -# tDul12Jei/euUx0DggqFpAGcrIUSMKGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq -# hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDuMbkRPjAvxi4QeVb1DOEEpIfpSuM9f5eAc4Y7kh75MAIGZ1rRdmaw -# GBIyMDI1MDEwOTA2MzY1MS44OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy -# aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EeowggcgMIIFCKADAgECAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUx -# OVoXDTI1MDMwNTE4NDUxOVowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5MjAwLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB -# BQADggIPADCCAgoCggIBAMJXny/gi5Drn1c8zUO1pYy/38dFQLmR2IQXz1gE/r9G -# fuSOoyRnkRJ6Z/kSWLgIu1BVJ59GkXWPtLkssqKwxY4ZFotxpVsZN9yYjW8xEnW3 -# MzAI0igKr+/LxYfxB1XUH8Bvmwr5D3Ii/MbDjtN9c8TxGWtq7Ar976dafAy3TrRq -# QRmIknPVWHUuFJgpqI/1nbcRmYYRMJaKCQpty4CeG+HfKsxrz24F9p4dBkQcZCp2 -# yQzjwQFxZJZ2mJJIGIDHKEdSRuSeX08/O0H9JTHNFmNTNYeD1t/WapnRwiIBYLQS -# Mrs42GVB8pJEdUsos0+mXf/5QvheNzRi92pzzyA4tSv/zhP3/Ermvza6W9GnYDz9 -# qv1wbhbvrnS4poDFECaAviEqAhfn/RogCxvKok5ro4gZIX1r4N9eXUulA80pHv3a -# xwXu2MPlarAi6J9L1hSIcy9EuOMqTRJIJX+alcLQGg+STlqx/GuslsKwl48dI4Ru -# WknNGbNo/o4xfBFytvtNcVA6xOQq6qRa+9gg+9XMLrxQz4yyQs+V3V6p044wrtJt -# t/a0ZJl/f6I7BZAxxZcH2DDmArcAhgrTxaQkm7LM+p+K2C5t1EKZiv0JWw065b7A -# cNgaFyIkMXYuSuOQVSNRxdIgl31/ayxiK1n0K6sZXvgFBx+vGO+TUvyO+03ua6Uj -# AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUz/7gmICfNjh2kR/9mWuHUrvej1gwHwYD -# VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO -# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw -# VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc -# BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0 -# cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD -# VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC -# B4AwDQYJKoZIhvcNAQELBQADggIBAHSh8NuT6WVaLVwLqex+J7km2nT2jpvoBEKm -# +0M+rYoU/6GL5Q00/ssZyIq5ySpcKYFMUiF8F4ZLG+TrJyiR1CvfzXmkQ5phZOce -# 9DT7yErLzqvUXit8G7igcHlxPLTxPiiGsb85gb8H+A2fPQ6Xq/u7+oSPPjzNdnpm -# XEobJnAqYplZoF3YNgTDMql0uQHGzoDp6dZlHSNj6rkV1tXjmCEZMqBKvkQIA6cs -# PieMnB+MirSZFlbANlChe0lJpUdK7aUdAvdgcQWKS6dtRMl818EMsvsa/6xOZGIN -# mTLk4DGgsbaBpN+6IVt+mZJ89yCXkI5TN8xCfOkp9fr4WQjRBA2+4+lawNTyxH66 -# eLZWYOjuuaomuibiKGBU10tox81Sq8EvlmJIrXOZoQsEn1r5g6MTmmZJqtbmwZuf -# uJWQXZb0lAg4fq0ZYsUlLkezfrNqGSgeHyIP3rct4aNmqQW6wppRbvbIyP/LFN4Y -# QM6givfmTBfGvVS77OS6vbL4W41jShmOmnOn3kBbWV6E/TFo76gFXVd+9oK6v8Hk -# 9UCnbHOuiwwRRwDCkmmKj5Vh8i58aPuZ5dwZBhYDxSavwroC6j4mWPwh4VLqVK8q -# GpCmZ0HMAwao85Aq3U7DdlfF6Eru8CKKbdmIAuUzQrnjqTSxmvF1k+CmbPs7zD2A -# cu7JkBB7MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG -# 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO -# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy -# MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -# MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -# AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az -# /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2 -# 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa -# ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN -# yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K -# MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf -# NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU -# HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY -# WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5 -# C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8 -# FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS -# BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1 -# Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw -# UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG -# CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB -# hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO -# mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w -# a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr -# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv -# bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3 -# DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz -# tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW -# AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G -# 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye -# ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9 -# 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j -# dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ -# KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB -# Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP -# Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp -# e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00w -# ggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw -# JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAjBgNVBAMT -# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVALNy -# BOcZqxLB792u75w97U0X+/BDoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrKY+fMCIYDzIwMjUwMTA4MjM1ODIz -# WhgPMjAyNTAxMDkyMzU4MjNaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOspj58C -# AQAwBwIBAAICCowwBwIBAAICE0wwCgIFAOsq4R8CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEARm0d77sDdK+Bqg3rqdpFmlOenvfBFxGzx0wFPf9zw9hvBfq/ -# EY/IG/WpJ/Jw/J/08M9f9PKnzD7w/9qeeHb2426Zu22WM7fxgY3CLchQb1ACW0NK -# +iCUftBwmbUqK5kuYDMUvYEwPtwD3AIdHvyNlHgse3oPWg6FQrA8ttht1lY+QvGO -# 19OqpeZwzGhAW/O1kGXarKG6rn1qQhGuR3bBKyTvdsujZiVpKwSU0wVMjI+ukv78 -# 9qachfRelJF1bDCInE0mzQxxClHrn9OZ9u/Vnu7QMyUdBYk7JdCXVtECo4y2KynF -# /fz1xueljgsuRALveftvFBWbwabi5hV44504MzGCBA0wggQJAgEBMIGTMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB5y6PL5MLTxvpAAEAAAHnMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIIZX/FUvXiNbINs5u/kh0fqbsDchKF1hioi+bvU+HGFYMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg5TZdDXZqhv0N4MVcz1QUd4RfvgW/ -# QAG9AwbuoLnWc60wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MAITMwAAAecujy+TC08b6QABAAAB5zAiBCBEm+MnX6BUaw2hoO31T8VOQURXR1mD -# tTiPuzpaNaxqQTANBgkqhkiG9w0BAQsFAASCAgBews9oufEPazqt0EzJChqw/s4w -# ydX6moKL9sZr979ineeCHC3pY//7oxmCLxcJg00KBmEGhRv3wvx5m9qYeKgVhyKw -# sW5Nm0pqmNfKwUcNq/6xUB86UWiHOp5XN3B78HkjrT7IEMc9OA2gbRwGZl9nwLyZ -# /5myqnfj3GTfM6OVW+/bZBxHLQVFEWWDKSLpyIoFMyiTUbipXnrQpkbHgmHtAYxJ -# JhGr6I65aoRJKzHZzCkeB9zX/OMIFTcs3k8h9gjNIdgyG3xmyTG9IzeXuGQhO/BV -# vk88pV/btLDG6HF9QSGI95pOCvyfoG/ySV64L5NascO5yRX6DiwN2QPm1XZzE2zI -# D3Ypm8CrMG5lLwqSYuY/jRrb+pUdre7u61nuasWUWV13iepOjy8dF/wMOucfd8m3 -# 5s93Zb0ThTo6RselEpQOd8Qnxjqoq4DO137VbhCxHzgnY23G/jS+pfCuYSX0jId9 -# RXWO59DknoV01R6u1a9bcNuUbwOXU8k6Iwt203tLmXLrFiTN1JqcDoA0zpB1qV2y -# XIhlV7jY/LMe0IZdwGkkMyAe93DSgNofTjTotiDLLcI3dn5yIepxjGF0P1fUNQuM -# eAVMPxi+ne47AJm4NixZWBP48Qi2Py6mFjs8FMYTL5gVwYWWMLB7JG1lUQqWKoDG -# rFnouitaw1wRQR0WhA== -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Unprotect-SecureString.ps1 b/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Unprotect-SecureString.ps1 deleted file mode 100644 index f186085d93b0..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Autorest/utils/Unprotect-SecureString.ps1 +++ /dev/null @@ -1,233 +0,0 @@ -#This script converts securestring to plaintext - -param( - [Parameter(Mandatory, ValueFromPipeline)] - [System.Security.SecureString] - ${SecureString} -) - -$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) -try { - $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) -} finally { - [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) -} - -return $plaintext -# SIG # Begin signature block -# MIIoOQYJKoZIhvcNAQcCoIIoKjCCKCYCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT7ZbNoY98P1cW -# CLQEXghewcRRqpuzw+uOgG2nbQ8aHaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAmR -# ZNAgxcDFKH97A6YERhvKrSJCqORTlbGk5c1WcUAXMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAfPtlhlRy2E3hutbUEkAOD+7dk7c/QftuRCG3 -# JtEcBxyGQG4SFKjdNfyGA9mU9bcQG7EDyKsTDGaeSxfO20CGY+ge345SXSbS20VD -# E66lqx8no+vYNPDTtYfEUOLzHeGWnWo0iAn0H4j7fwhbL/2eq4mpGdj94cSTUh3g -# ZaXTKsqAy8inZDZCoyX4TMHjuXX+SJU1PLHCt2x79KcDFqoOoUYWlA3GiajtQKS1 -# VP/3aezEpYq7aGFK5aHo/hUQSnEeY/Yr9Os3Rx9lz7ztyn7NVcTQK8JUAOuoR3/S -# mWmUoeRc3k0XBiHZppIi5m9oIevwf4WRMSZhcSx0GNbTicgIy6GCF5QwgheQBgor -# BgEEAYI3AwMBMYIXgDCCF3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDnI7XkFqZmx9eRquXRsqCafUn275vbpU6+ -# eoCsY2oCggIGZ1r0VelAGBMyMDI1MDEwOTA2Mzc0NC45MzVaMASAAgH0oIHRpIHO -# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL -# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk -# IFRTUyBFU046ODkwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgITMwAAAe3hX8vV96VdcwAB -# AAAB7TANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDAeFw0yMzEyMDYxODQ1NDFaFw0yNTAzMDUxODQ1NDFaMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046ODkwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoMMJskrrqapycLxPC1H7z -# D7g88NpbEaQ6SjcTIRbzCVyYQNsz8TaL1pqFTEAPL1X7ojL4/EaEW+UjNqZs/ayM -# yW4YIpFPZP2x4FBMVCddseF2i+aMMjDHi0LcTQZxM2s3mFMrCZAWSfLYXYDIimFB -# z8j0oLWGy3VgLmBTKM4xLqv7DZUz8B2SoAmbEtp62ngSl0hOoN73SFwE+Y24SvGQ -# MWhykpG+vXDwcpWvwDe+TgnrLR7ATRFXN5JS26dm2yy6SYFMRYnME3dMHCQ/UQIQ -# QNC8nLmIvdKkAoWEMXtJsGEo3QrM2S2SBv4PpHRzRukzTtP+UAceGxM9JyrwUQP5 -# OCEmW6YchEyRDSwP4hU9f7B0Ayh14Pw9vJo7jewNjeMPIkmneyLSi0ruv2ox/xRG -# tcJ9yBNC5BaRktjz7stPaojR+PDA2fuBtCo8xKlkt53mUb7AY+CZHHqhLm76pdMF -# 6BHv2TvwlVBeQRN22XjaVVRwCgjgJnNewt7PejcrpUn0qHLgLq+1BN1DzYukWkTr -# 7wT0zl0iXr+NtqUkWSOnWRfe8N21tB6uv3VkW8nFdChtbbZZz24peLtJEZuNrN8X -# f9PTPMzZXDJBI1EciR/91QcGoZFmVbFVb2rUIAs01+ZkewvbhmGVDefX9oZG4/K4 -# gGUsTvTW+r1JZMxUT2MwqQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFM4b8Oz33hAq -# BEfKlAZf0NKh4CIZMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCd1gK2Rd+eGL0e -# Hi+iE6/qDY8sbbsO4emancp6KPN+xq5ZAatiBR4jmRRhm+9Vik0Fo0DLWi/N28bF -# I7dXYw09p3vCipbjy4Eoifm0Nud7/4U30i9+7RvW7XOQ3rx37+U7vq9lk6yYpGCN -# p0jlJ188/CuRPgqJnfq5EdeafH2AoG46hKWTeB7DuXasGt6spJOenGedSre34MWZ -# qeTIQ0raOItZnFuGDy4+xoD1qRz2QW+u2gCHaG8AQjhYUM4uTi9t6kttj6c7Xamr -# 2zrWuceDhz7sKLttLTJ7ws5YrA2I8cTlbMAf2KW0GVjKbYGd+LZGduEK7/7fs4GU -# kMqc51FsNdG1n+zgc7zHu2oGGeCBg4s8ZR0ZFyx7jsgm9sSFCKQ5CsbAvlr/60Nd -# k5TeMR8Js2kNUicu2CqZ03833TsvTgk7iD1KLgfS16HEvjN6m4VKJKgjJ7OJJzab -# tS4JQgUnJrIZfyosk4D18rZni9pUwN03WgTmd10WTwiZOu4g8Un6iKcPMY/iFqTu -# 4ntkzFUxBBpbFG6k1CINZmoirEWmCtG3lyZ2IddmjtIefTkIvGWb4Jxzz7l2m/E2 -# kGOixDJHsahZVmwsoNvhy5ku/inU++dXHzw+hlvqTSFT89rIFVhcmsWPDJPNRSSp -# MhoJ33V2Za/lkKcbkUM0SbQgS9qsdzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNNMIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp -# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjg5MDAtMDVF -# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK -# AQEwBwYFKw4DAhoDFQDuHayKTCaYsYxJh+oWTx6uVPFw+aCBgzCBgKR+MHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6ymygDAi -# GA8yMDI1MDEwOTAyMjcxMloYDzIwMjUwMTEwMDIyNzEyWjB0MDoGCisGAQQBhFkK -# BAExLDAqMAoCBQDrKbKAAgEAMAcCAQACAhbZMAcCAQACAhMSMAoCBQDrKwQAAgEA -# MDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAI -# AgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBACn1b5KnkJiAf9A6R/SjvtbOrGdu -# JWnWonsXKPptDkaQJ/jqh8hZIma3W7JHrYr2Jyv4AXnt4l5fkmspdaMCoq6KGLho -# CdhGggzU70J4s1ohAeSnauOqdS3yV5ddSglwd5dQi7wDyB7Vss6L9hZpZgoljHE+ -# 8LXELYRPEXTUNdh0t/TalsRYXondvormVffUkyXY6nqZlOnUZq26qmr8DCj6dmWc -# cZ+NRtVCuFswqT17sqnw5haDIuCA20MgcRAUAfBOufvyHjb8K/HM76Hm0dtK0j/q -# E0g6Mum/F0YyC9SyYuzJk8mydlwOA4GkkW8gdhmrg7l7SYYRVzpIOeqXVFsxggQN -# MIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAe3h -# X8vV96VdcwABAAAB7TANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0G -# CyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCAlDRlJWdI5GuiftyJi+gDtKruZ -# qEWEfY8tPHfV0pTRgjCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EII0uDWg0 -# CFseKxK3A16l1wrIwrsSDrXZ6xSf0F4xbMo5MIGYMIGApH4wfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAHt4V/L1felXXMAAQAAAe0wIgQgHZJuYFot -# PXySbWtoYQzcjhOI+GdzM2vjq7x+59R0CtQwDQYJKoZIhvcNAQELBQAEggIAZIrQ -# Fu33o8czIck9WXTy7f+Oa+7CJTD7KtQfnM3YL3vgjBt7mopEGazCoqhoa0bWnzr0 -# YkF3ck/7sGUyROa1TQ0/5X+mCJ5yFhlUVdglcq+ARKZBTvXUYljFXfOdP+DqtPUg -# nFG8l6/JGSNYuCFQuQV6EJh0/Jcjt1jFkHH3PMNlzkryQA23TvJe/WOevn3LfGhv -# uwMJi27rNlvCmF63p3HNJZpJYY8ti/aKNgxnydU5SC87mtuhGotAuKAFYO7SNdjx -# fgTmZx+WfObfkvc9qWAP83Dm6nJQsLqUiYnockovlNDEL56XneV6LGQTy54fZ0t3 -# ETd6xpWXjE8+UAz2iASScHFOCBbkOnRgwLTzrByJPiNeTI4Kbh39Ctm1b6PUDGP9 -# iLDLeehaFAH7sbH0ccOk00pXdNCEL7eDmeXTtu6kMbw/L1/rT10n8X15VRa8Mshy -# 503Fd9hjmkcRvvs9MPL2Z3njc3xuQ7HOg7KblPOqBhngHhHs+dIeTrX9qP1gX1XX -# TcrVBzNqVO2C8Swur7/a2m4W8LuXCpqslYzBwWJgaykQ/tqOO13M9rnx4EXGrjSZ -# 4q4gvNI7FsJb0WsbIIBeF+jwktYBoEfUV9Pv5j0OKdcrcrwfCdJ5VJ2latZCoCaq -# TjHwobcIgvCSPH9GiXZgWG2uSWRinDsCc60jJkI= -# SIG # End signature block diff --git a/Modules/Az.Storage/8.1.0/Storage.Management.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.Management.format.ps1xml deleted file mode 100644 index 1682493cf2a7..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.Management.format.ps1xml +++ /dev/null @@ -1,1420 +0,0 @@ - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - StorageAccountName - - - Left - ResourceGroupName - - - Left - PrimaryLocation - - - Left - $_.Sku.Name - - - Left - Kind - - - Left - AccessTier - - - Left - CreationTime - - - Left - ProvisioningState - - - Left - EnableHttpsTrafficOnly - - - Left - LargeFileSharesState - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - Microsoft.Azure.Commands.Management.Storage.Models.PSNetworkRuleSet - - - - - - - Bypass - - - - DefaultAction - - - - if (($_.ipRules -ne $null) -and ($_.ipRules.Count -ne 0)) {"[" + $_.ipRules[0].IPAddressOrRange + ",...]"} else {$null} - - - - if ($_.virtualNetworkRules[0] -ne $null) {"[" + $_.virtualNetworkRules[0].VirtualNetworkResourceId + ",...]"} else {$null} - - - - if ($_.ResourceAccessRules[0] -ne $null) {"[(" + $_.ResourceAccessRules[0].TenantId + "," + $_.ResourceAccessRules[0].ResourceId + "),...]"} else {$null} - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - Microsoft.Azure.Commands.Management.Storage.Models.PSContainer - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - - Left - - - - Left - 20 - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Name - - - $_.PublicAccess - - - $_.LastModifiedTime.ToUniversalTime().ToString("u") - - - $_.HasLegalHold - - - $_.HasImmutabilityPolicy - - - $_.Deleted - - - $_.Version - - - $_.ImmutableStorageWithVersioning.Enabled - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicy - - - - - - - ResourceGroupName - - - - StorageAccountName - - - - Id - - - - Type - - - - LastModifiedTime - - - - ConvertTo-Json $_.Rules -Depth 10 - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyActionGroup - - - - - - - $_.BaseBlob.TierToCool.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToCool.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToCool.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.EnableAutoTierToHotFromCool - - - - $_.BaseBlob.TierToArchive.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToArchive.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToArchive.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.TierToArchive.DaysAfterLastTierChangeGreaterThan - - - - $_.BaseBlob.Delete.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.Delete.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.Delete.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.TierToCold.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToCold.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToCold.DaysAfterCreationGreaterThan - - - - $_.BaseBlob.TierToHot.DaysAfterModificationGreaterThan - - - - $_.BaseBlob.TierToHot.DaysAfterLastAccessTimeGreaterThan - - - - $_.BaseBlob.TierToHot.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToCool.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToArchive.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToArchive.DaysAfterLastTierChangeGreaterThan - - - - $_.Snapshot.Delete.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToCold.DaysAfterCreationGreaterThan - - - - $_.Snapshot.TierToHot.DaysAfterCreationGreaterThan - - - - $_.Version.TierToCool.DaysAfterCreationGreaterThan - - - - $_.Version.TierToArchive.DaysAfterCreationGreaterThan - - - - $_.Version.TierToArchive.DaysAfterLastTierChangeGreaterThan - - - - $_.Version.Delete.DaysAfterCreationGreaterThan - - - - $_.Version.TierToCold.DaysAfterCreationGreaterThan - - - - $_.Version.TierToHot.DaysAfterCreationGreaterThan - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule - - Microsoft.Azure.Commands.Management.Storage.Models.PSManagementPolicyRule - - - - - - - Enabled - - - - Name - - - - ConvertTo-Json $_.Definition -Depth 10 - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - Microsoft.Azure.Commands.Management.Storage.Models.PSFileServiceProperties - - - - - - - StorageAccountName - - - - ResourceGroupName - - - - - $_.ShareDeleteRetentionPolicy.Enabled - - - - $_.ShareDeleteRetentionPolicy.Days - - - - $_.ProtocolSettings.Smb.Multichannel.Enabled - - - - $_.ProtocolSettings.Smb.Versions - - - - $_.ProtocolSettings.Smb.AuthenticationMethods - - - - $_.ProtocolSettings.Smb.KerberosTicketEncryption - - - - $_.ProtocolSettings.Smb.ChannelEncryption - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobServiceProperties - - - - - - - StorageAccountName - - - - ResourceGroupName - - - - DefaultServiceVersion - - - - - $_.DeleteRetentionPolicy.Enabled - - - - $_.DeleteRetentionPolicy.Days - - - - $_.DeleteRetentionPolicy.AllowPermanentDelete - - - - $_.ContainerDeleteRetentionPolicy.Enabled - - - - $_.ContainerDeleteRetentionPolicy.Days - - - - $_.RestorePolicy.Enabled - - - - $_.RestorePolicy.Days - - - - $_.RestorePolicy.MinRestoreTime - - - - $_.ChangeFeed.Enabled - - - - $_.ChangeFeed.RetentionInDays - - - IsVersioningEnabled - - - - - $_.LastAccessTimeTrackingPolicy.Enable - - - - $_.LastAccessTimeTrackingPolicy.Name - - - - $_.LastAccessTimeTrackingPolicy.TrackingGranularityInDays - - - - $_.LastAccessTimeTrackingPolicy.BlobType - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - Microsoft.Azure.Commands.Management.Storage.Models.PSShare - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - QuotaGiB - - - Left - EnabledProtocols - - - Left - AccessTier - - - Left - Deleted - - - Left - Version - - - Left - ShareUsageBytes - - - Left - $_.SnapshotTime.ToUniversalTime().ToString("s")+"Z" - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicy - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - ResourceGroupName - - - Left - StorageAccountName - - - Left - PolicyId - - - Left - EnabledTime - - - Left - SourceAccount - - - Left - DestinationAccount - - - Left - if (($_.Rules -ne $null) -and ($_.Rules.Count -ne 0)) { if ($_.Rules.Count -eq 1) {'[' + $_.Rules[0].RuleId + ']'} else {'[' + $_.Rules[0].RuleId + ',...]'}} else {$null} - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule - - Microsoft.Azure.Commands.Management.Storage.Models.PSObjectReplicationPolicyRule - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - RuleId - - - Left - SourceContainer - - - Left - DestinationContainer - - - Left - '{' + ($_.Filters.PrefixMatch -join ', ') + '}' - - - Left - $_.Filters.MinCreationTime.ToUniversalTime().ToString("s")+"Z" - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobRestoreStatus - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Status - - - Left - RestoreId - - - Left - FailureReason - - - Left - $_.Parameters.TimeToRestore.ToString("o") - - - Left - if ($_.Parameters.BlobRanges[0] -ne $null) {if ($_.Parameters.BlobRanges[1] -ne $null) {'["' + $_.Parameters.BlobRanges[0].StartRange + '" -> "' + $_.Parameters.BlobRanges[0].EndRange + '",...]'} else {'["' + $_.Parameters.BlobRanges[0].StartRange + '" -> "' + $_.Parameters.BlobRanges[0].EndRange + '"]'}} else {$null} - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSRestorePolicy - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Enabled - - - Left - Days - - - Left - MinRestoreTime - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - Microsoft.Azure.Commands.Management.Storage.Models.PSEncryptionScope - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - - Left - - - - Left - 20 - - - - Left - - - - Left - - - - Left - - - - - - - Name - - - State - - - Source - - - $_.KeyVaultProperties.keyUri - - - RequireInfrastructureEncryption - - - - - - - - Microsoft.Azure.Management.Storage.Models.Endpoints - - Microsoft.Azure.Management.Storage.Models.Endpoints - - - - - - - Blob - - - - Queue - - - - Table - - - - File - - - - Web - - - - Dfs - - - - ConvertTo-Json $_.MicrosoftEndpoints -Compress - - - - ConvertTo-Json $_.InternetEndpoints -Compress - - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicyRule - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Enabled - - - Left - Destination - - - Left - $_.Definition.ObjectType - - - Left - $_.Definition.Format - - - Left - $_.Definition.Schedule - - - Left - $_.Definition.Filters.IncludeSnapshots - - - Left - $_.Definition.Filters.IncludeBlobVersions - - - Left - $_.Definition.Filters.IncludeDeleted - - - Left - $_.Definition.Filters.BlobTypes - - - Left - $_.Definition.Filters.PrefixMatch - - - Left - $_.Definition.Filters.ExcludePrefix - - - Left - $_.Definition.SchemaFields - - - Left - if ($_.Definition.Filters.CreationTime.LastNDays -ne $null) {"LastNDays=$($_.Definition.Filters.CreationTime.LastNDays)"} - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - Microsoft.Azure.Commands.Management.Storage.Models.PSBlobInventoryPolicy - - - - - - - StorageAccountName - - - - ResourceGroupName - - - - Name - - - - - Id - - - - Type - - - - LastModifiedTime - - - - $_.Enabled - - - - $_.Rules - - - - - - - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - Microsoft.Azure.Commands.Management.Storage.Models.PSLocalUser - - - $_.ResourceGroupName + ", StorageAccountName: " + $_.StorageAccountName - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - - Left - Name - - - Left - Sid - - - Left - HomeDirectory - - - Left - HasSharedKey - - - Left - HasSshKey - - - Left - HasSshPassword - - - Left - - if (($_.PermissionScopes -ne $null) -and ($_.PermissionScopes.Count -ne 0)) {if ($_.PermissionScopes.Count -eq 1) {"[" + $_.PermissionScopes[0].ResourceName + "]"} else {"[" + $_.PermissionScopes[0].ResourceName + ",...]"}} else {$null} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/Storage.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.format.ps1xml deleted file mode 100644 index bee20e64b4a7..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.format.ps1xml +++ /dev/null @@ -1,837 +0,0 @@ - - - - - Microsoft.Azure.Storage.File.CloudFileShare - - Microsoft.Azure.Storage.File.CloudFileShare - - - $_.ServiceClient.BaseUri - - - - - - - 63 - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Name - - - $_.Properties.LastModified - - - $_.IsSnapshot - - - $_.SnapshotTime - - - - - - - - Microsoft.Azure.Storage.File.CloudFileItems - - Microsoft.Azure.Storage.File.CloudFile - Microsoft.Azure.Storage.File.CloudFileDirectory - - - $_.Parent.SnapshotQualifiedUri - - - - - - - 10 - Left - - - - 15 - Right - - - - Left - - - - - - - $_.DirectoryTag - - - $_.Properties.Length - - - $_.Name - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - Microsoft.Azure.Storage.Blob.CloudBlobContainer - - - $_.ServiceClient.BaseUri - - - - - - - 20 - Left - - - - 60 - Left - - - - Left - - - - - - - $_.Name - - - $_.Uri - - - $_.Properties.LastModified.UtcDateTime.ToString("u") - - - - - - - - Microsoft.Azure.Storage.Blob.ICloudBlob - - Microsoft.Azure.Storage.Blob.ICloudBlob - Microsoft.Azure.Storage.Blob.CloudBlockBlob - Microsoft.Azure.Storage.Blob.CloudPageBlob - Microsoft.Azure.Storage.Blob.CloudAppendBlob - - - $_.Container.Uri - - - - - - - 20 - Left - - - - 15 - Left - - - - Left - 15 - - - - Left - 10 - - - - 10 - Left - - - - 30 - Left - - - - 20 - Left - - - - Left - 10 - - - - 20 - Left - - - - - - - $_.Name - - - $_.BlobType - - - $_.Properties.Length - - - $_.IsDeleted - - - $_.Properties.RemainingDaysBeforePermanentDelete - - - $_.Properties.ContentType - - - $_.Properties.LastModified.UtcDateTime.ToString("u") - - - $_.ICloudBlob.Properties.StandardBlobTier - - - $_.SnapshotTime.UtcDateTime.ToString("u") - - - - - - - - Microsoft.WindowsAzure.Storage.Table.CloudTable - - Microsoft.WindowsAzure.Storage.Table.CloudTable - - - $_.ServiceClient.BaseUri - - - - - - - 40 - Left - - - - 40 - Left - - - - - - - $_.Name - - - $_.Uri - - - - - - - - Azure.Storage.Queues.QueueClient - - Azure.Storage.Queues.QueueClient - - - $_.QueueClient.AccountName - - - - - - - 30 - Left - - - - 20 - Left - - - - 40 - Left - - - - - - - $_.Name - - - - if (!$_.ApproximateMessageCount) - { - ""; - } - else - { - $_.ApproximateMessageCount - } - - - - $_.Uri - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.AzureStorageContext - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.AzureStorageContext - - - - - - - - StorageAccountName - - - - BlobEndPoint - - - - TableEndPoint - - - - QueueEndPoint - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.ServiceProperties - - Microsoft.Azure.Storage.Shared.Protocol.ServiceProperties - - - - - - - - $_.Logging.Version - - - - $_.Logging.LoggingOperations - - - - $_.Logging.RetentionDays - - - - $_.HourMetrics.Version - - - - $_.HourMetrics.MetricsLevel - - - - $_.HourMetrics.RetentionDays - - - - $_.MinuteMetrics.Version - - - - $_.MinuteMetrics.MetricsLevel - - - - $_.MinuteMetrics.RetentionDays - - - - $_.DeleteRetentionPolicy.Enabled - - - - $_.DeleteRetentionPolicy.RetentionDays - - - - $_.StaticWebsite.Enabled - - - - $_.StaticWebsite.IndexDocument - - - - $_.StaticWebsite.ErrorDocument404Path - - - $_.Cors - - - - - DefaultServiceVersion - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties - - - - - - Left - 20 - - - - Left - 30 - - - - Left - 20 - - - - - - - $_.Version - - - $_.LoggingOperations - - - $_.RetentionDays - - - - - - - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties - - - - - - Left - 20 - - - - Left - 30 - - - - Left - 20 - - - - - - - $_.Version - - - $_.MetricsLevel - - - $_.RetentionDays - - - - - - - - Microsoft.Azure.Storage.Blob.CloudBlobDirectory - - Microsoft.Azure.Storage.Blob.CloudBlobDirectory - - - $_.Container.Uri - - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Prefix - - - $_.PathProperties.Owner - - - $_.PathProperties.Group - - - $_.PathProperties.Permissions.ToSymbolicString() - - - $_.Properties.LastModified.UtcDateTime.ToString("u") - - - - - - - - Microsoft.Azure.Storage.Blob.PathPermissions - - Microsoft.Azure.Storage.Blob.PathPermissions - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Owner.ToSymbolicString() - - - $_.Group.ToSymbolicString() - - - $_.Other.ToSymbolicString() - - - StickyBit - - - ExtendedInfoInAcl - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/Storage.generated.format.ps1xml b/Modules/Az.Storage/8.1.0/Storage.generated.format.ps1xml deleted file mode 100644 index e2481638999e..000000000000 --- a/Modules/Az.Storage/8.1.0/Storage.generated.format.ps1xml +++ /dev/null @@ -1,921 +0,0 @@ - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageTable - - - - - Left - - - - Left - - - - - - - - Left - $_.Name - - - Left - $_.Uri - - - - - - - $_.CloudTable.ServiceClient.BaseUri - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageQueue - - - - - Left - - - - Left - - - - Left - - - - - - - - Left - $_.Name - - - Left - $_.Uri - - - Left - $_.ApproximateMessageCount - - - - - - - $_.QueueClient.AccountName - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties - - - - - - - $_.Logging.Version - - - - $_.Logging.LoggingOperations - - - - $_.Logging.RetentionDays - - - - $_.HourMetrics.Version - - - - $_.HourMetrics.MetricsLevel - - - - $_.HourMetrics.RetentionDays - - - - $_.MinuteMetrics.Version - - - - $_.MinuteMetrics.MetricsLevel - - - - $_.MinuteMetrics.RetentionDays - - - - $_.DeleteRetentionPolicy.Enabled - - - - $_.DeleteRetentionPolicy.RetentionDays - - - - - $_.StaticWebsite.Enabled - - - - $_.StaticWebsite.IndexDocument - - - - $_.StaticWebsite.ErrorDocument404Path - - - $_.Cors - - - - DefaultServiceVersion - - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer - - - - - Left - - 20 - - - Left - - 20 - - - Left - - 30 - - - Left - - 10 - - - Left - - 17 - - - - - - - Left - $_.Name - - - Left - PublicAccess - - - Left - LastModified - - - Left - IsDeleted - - - Left - VersionId - - - - - - - $_.BlobContainerClient.AccountName - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob - - - - - Left - - 20 - - - Left - - 9 - - - Left - - 15 - - - Left - - 30 - - - Left - - 20 - - - Left - - 10 - - - Left - - 28 - - - Left - - 10 - - - Left - - 30 - - - - - - - Left - $_.Name - - - Left - if ($_.BlobType -ne "Unspecified") {$_.BlobType} - - - Left - if (($_.BlobType -ne "Unspecified") -or ($_.Length -ne 0 )) {$_.Length} - - - Left - ContentType - - - Left - $_.LastModified.UtcDateTime.ToString("u") - - - Left - $_.AccessTier - - - Left - $_.SnapshotTime.UtcDateTime.ToString("o") - - - Left - IsDeleted - - - Left - if ($_.IsLatestVersion){$_.VersionId + " *"} else {$_.VersionId} - - - - - - - $_.BlobBaseClient.AccountName + ", ContainerName: " + $_.BlobBaseClient.BlobContainerName - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFile - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileDirectory - - - if ($_.ShareDirectoryClient -eq $null) {$_.ShareFileClient.AccountName + ", ShareName: " + $_.ShareFileClient.ShareName} else {$_.ShareDirectoryClient.AccountName + ", ShareName: " + $_.ShareDirectoryClient.ShareName} - - - - - - - 10 - Left - - - - 15 - Right - - - - Left - - - - - - - if ($_.ShareFileClient -eq $null) {"Directory"} else {"File"} - - - $_.Length - - - $_.Name - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageFileShare - - - $_.Context.FileEndPoint - - - - - - Left - - - - Left - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - $_.Name - - - $_.Quota - - - $_.LastModified.UtcDateTime.ToString("o") - - - $_.IsSnapshot - - - $_.SnapshotTime.UtcDateTime.ToString("o") - - - $_.IsDeleted - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2Item - - - - - Left - - 20 - - - Left - - 12 - - - Left - - 15 - - - Left - - 20 - - - - Left - 12 - - - Left - - 20 - - - Left - - 20 - - - - - - - Left - Path - - - Left - IsDirectory - - - Left - if ($_.IsDirectory -eq $false) {$_.Length} - - - Left - $_.LastModified.UtcDateTime.ToString("u") - - - Left - $_.Permissions.ToSymbolicPermissions() - - - Left - Owner - - - Left - Group - - - - - - - if ($_.IsDirectory) {$_.Directory.FileSystemName} else {$_.File.FileSystemName} - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSFileHandle - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - HandleId - - - Path - - - ClientIp - - - ClientPort - - - $_.OpenTime.UtcDateTime.ToString("u") - - - $_.LastReconnectTime.UtcDateTime.ToString("u") - - - FileId - - - ParentId - - - SessionId - - - ClientName - - - - - - - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry - - Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel.PSPathAccessControlEntry - - - - - - Left - - - - Left - - - - Left - - - - Left - - - - - - - DefaultScope - - - AccessControlType - - - EntityId - - - $_.GetSymbolicRolePermissions() - - - - - - - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureDataLakeGen2DeletedItem - - - - - Left - - 20 - - - Left - - 20 - - - Left - - 20 - - - Left - - 22 - - - - - - - Left - Path - - - Left - DeletionId - - - Left - $_.DeletedOn.UtcDateTime.ToString("u") - - - Left - RemainingRetentionDays - - - - - - - $_.FileSystemName - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/Az.Storage/8.1.0/System.IO.Hashing.dll b/Modules/Az.Storage/8.1.0/System.IO.Hashing.dll deleted file mode 100644 index 122d5973b18b..000000000000 Binary files a/Modules/Az.Storage/8.1.0/System.IO.Hashing.dll and /dev/null differ diff --git a/Modules/CIPPCore/CippCore.psd1 b/Modules/CIPPCore/CIPPCore.psd1 similarity index 82% rename from Modules/CIPPCore/CippCore.psd1 rename to Modules/CIPPCore/CIPPCore.psd1 index cfc565177729..92c03ecd3705 100644 Binary files a/Modules/CIPPCore/CippCore.psd1 and b/Modules/CIPPCore/CIPPCore.psd1 differ diff --git a/Modules/CIPPCore/CIPPCore.psm1 b/Modules/CIPPCore/CIPPCore.psm1 index 93ce138d723d..7cd3fd6ee225 100644 --- a/Modules/CIPPCore/CIPPCore.psm1 +++ b/Modules/CIPPCore/CIPPCore.psm1 @@ -1,12 +1,16 @@ -$Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Public\*.ps1") -Recurse -ErrorAction SilentlyContinue) -$Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Private\*.ps1") -Recurse -ErrorAction SilentlyContinue) -$Functions = $Public + $Private -foreach ($import in @($Functions)) { - try { - . $import.FullName - } catch { - Write-Error -Message "Failed to import function $($import.FullName): $_" +# ModuleBuilder will concatenate all function files into this module +# This block is only used when running from source (not built) +if (Test-Path (Join-Path $PSScriptRoot 'Public')) { + $Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Public\*.ps1') -Recurse -ErrorAction SilentlyContinue) + $Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Private\*.ps1') -Recurse -ErrorAction SilentlyContinue) + $Functions = $Public + $Private + foreach ($import in @($Functions)) { + try { + . $import.FullName + } catch { + Write-Error -Message "Failed to import function $($import.FullName): $_" + } } -} -Export-ModuleMember -Function $Public.BaseName -Alias * + Export-ModuleMember -Function $Public.BaseName +} diff --git a/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 b/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 index 60448c409b93..260f8691f0f1 100644 --- a/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 @@ -229,7 +229,7 @@ function Add-CIPPAzDataTableEntity { throw "Error processing entity: $ErrorMessage Linenumber: $($_.InvocationInfo.ScriptLineNumber)" } } else { - Write-Information ($_.Exception | ConvertTo-Json) + try { Write-Information ($_.Exception | ConvertTo-Json) } catch { Write-Information $_.Exception } Write-Information "THE ERROR IS $($_.Exception.message). The size of the entity is $entitySize." Write-Information "Parameters are: $($Parameters | ConvertTo-Json -Compress)" Write-Information $_.InvocationInfo.PositionMessage diff --git a/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 new file mode 100644 index 000000000000..1e15830182fd --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 @@ -0,0 +1,82 @@ +function Add-CIPPDbItem { + <# + .SYNOPSIS + Add items to the CIPP Reporting database + + .DESCRIPTION + Adds items to the CippReportingDB table with support for bulk inserts and count mode + + .PARAMETER TenantFilter + The tenant domain or GUID (used as partition key) + + .PARAMETER Type + The type of data being stored (used in row key) + + .PARAMETER Data + Array of items to add to the database + + .PARAMETER Count + If specified, stores a single row with count of each object property as separate properties + + .EXAMPLE + Add-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' -Data $GroupsData + + .EXAMPLE + Add-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' -Data $GroupsData -Count + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$Type, + + [Parameter(Mandatory = $true)] + [AllowEmptyCollection()] + [array]$Data, + + [Parameter(Mandatory = $false)] + [switch]$Count + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + + if ($Count) { + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = "$Type-Count" + DataCount = [int]$Data.Count + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + + } else { + #Get the existing type entries and nuke them. This ensures we don't have stale data. + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}0'" -f $TenantFilter, $Type + $ExistingEntities = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if ($ExistingEntities) { + Remove-AzDataTableEntity @Table -Entity $ExistingEntities -Force | Out-Null + } + $Entities = foreach ($Item in $Data) { + $ItemId = $Item.id ? $Item.id : $item.skuId + @{ + PartitionKey = $TenantFilter + RowKey = "$Type-$ItemId" + Data = [string]($Item | ConvertTo-Json -Depth 10 -Compress) + Type = $Type + } + } + Add-CIPPAzDataTableEntity @Table -Entity $Entities -Force | Out-Null + + } + + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -message "Added $($Data.Count) items of type $Type$(if ($Count) { ' (count mode)' })" -sev Info + + } catch { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -message "Failed to add items of type $Type : $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 index e06e3493ce0c..2202e25147f9 100644 --- a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 @@ -69,7 +69,8 @@ function Add-CIPPDelegatedPermission { } } - $Translator = Get-Content '.\PermissionsTranslator.json' | ConvertFrom-Json + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $Translator = Get-Content (Join-Path $ModuleBase 'lib\data\PermissionsTranslator.json') | ConvertFrom-Json $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=appId,id,displayName&`$top=999" -tenantid $TenantFilter -skipTokenCache $true -NoAuthCheck $true $ourSVCPrincipal = $ServicePrincipalList | Where-Object -Property appId -EQ $ApplicationId $Results = [System.Collections.Generic.List[string]]::new() diff --git a/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 index 1b6674d6e203..3a5ea194fe18 100644 --- a/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 @@ -1,27 +1,115 @@ -function Add-CIPPGroupMember( - $Headers, - [string]$GroupType, - [string]$GroupId, - [string]$Member, - [string]$TenantFilter, - [string]$APIName = 'Add Group Member' -) { +function Add-CIPPGroupMember { + <# + .SYNOPSIS + Adds one or more members to a specified group in Microsoft Graph. + + .DESCRIPTION + This function adds one or more members to a specified group in Microsoft Graph, supporting different group types such as Distribution lists and Mail-Enabled Security groups. + + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. This is supplied automatically by the API + + .PARAMETER GroupType + The type of group to which the member is being added, such as Security, Distribution list or Mail-Enabled Security. + + .PARAMETER GroupId + The unique identifier of the group to which the member will be added. + + .PARAMETER Member + An array of members to add to the group. + + .PARAMETER TenantFilter + The tenant identifier to filter the request. + + .PARAMETER APIName + The name of the API operation being performed. Defaults to 'Add Group Member'. + #> + [CmdletBinding()] + param( + $Headers, + [string]$GroupType, + [string]$GroupId, + [string[]]$Member, + [string]$TenantFilter, + [string]$APIName = 'Add Group Member' + ) try { if ($Member -like '*#EXT#*') { $Member = [System.Web.HttpUtility]::UrlEncode($Member) } - $MemberIDs = 'https://graph.microsoft.com/v1.0/directoryObjects/' + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Member)" -tenantid $TenantFilter).id - $AddMemberBody = "{ `"members@odata.bind`": $(ConvertTo-Json @($MemberIDs)) }" + $ODataBindString = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' + $Requests = foreach ($m in $Member) { + @{ + id = $m + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } + $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { - $Params = @{ Identity = $GroupId; Member = $Member; BypassSecurityGroupManagerCheck = $true } - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-DistributionGroupMember' -cmdParams $Params -UseSystemMailbox $true + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + + foreach ($User in $Users) { + $Params = @{ Identity = $GroupId; Member = $User.body.userPrincipalName; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Add-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Added member $($User.body.userPrincipalName) to $($GroupId) group" + target = $User.body.userPrincipalName + }) + } + + if ($ExoBulkRequests.Count -gt 0) { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + throw $ExoError + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } + } + } } else { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupId)" -tenantid $TenantFilter -type patch -body $AddMemberBody -Verbose + # Build one bulk request list; New-GraphBulkRequest handles internal chunking + $AddRequests = foreach ($User in $Users) { + @{ + id = $User.body.id + method = 'POST' + url = "/groups/$($GroupId)/members/`$ref" + body = @{ '@odata.id' = ($ODataBindString -f $User.body.id) } + headers = @{ 'Content-Type' = 'application/json' } + } + } + $AddResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($AddRequests) + $SuccessfulUsers = [system.collections.generic.list[string]]::new() + foreach ($Result in $AddResults) { + if ($Result.status -lt 200 -or $Result.status -gt 299) { + $FailedUsername = $Users | Where-Object { $_.body.id -eq $Result.id } | Select-Object -ExpandProperty body | Select-Object -ExpandProperty userPrincipalName + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to add member $($FailedUsername): $($Result.body.error.message)" -Sev 'Error' + } else { + $UserPrincipalName = $Users | Where-Object { $_.body.id -eq $Result.id } | Select-Object -ExpandProperty body | Select-Object -ExpandProperty userPrincipalName + $SuccessfulUsers.Add($UserPrincipalName) + } + } } - $Results = "Successfully added user $($Member) to $($GroupId)." + $UserList = ($SuccessfulUsers -join ', ') + $Results = "Successfully added user $UserList to $($GroupId)." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Info' return $Results } catch { $ErrorMessage = Get-CippException -Exception $_ - $Results = "Failed to add user $($Member) to $($GroupId) - $($ErrorMessage.NormalizedError)" + $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } + $Results = "Failed to add user $UserList to $($GroupId) - $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'error' -LogData $ErrorMessage throw $Results } diff --git a/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 index 4dd7e2a14e77..6728082f8750 100644 --- a/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 @@ -46,6 +46,12 @@ function Add-CIPPScheduledTask { return "Could not run task: $ErrorMessage" } } else { + if (!$Task.RowKey) { + $RowKey = (New-Guid).Guid + } else { + $RowKey = $Task.RowKey + } + if ($DisallowDuplicateName) { $Filter = "PartitionKey eq 'ScheduledTask' and Name eq '$($Task.Name)'" $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) @@ -110,11 +116,7 @@ function Add-CIPPScheduledTask { } $AdditionalProperties = ([PSCustomObject]$AdditionalProperties | ConvertTo-Json -Compress) if ($Parameters -eq 'null') { $Parameters = '' } - if (!$Task.RowKey) { - $RowKey = (New-Guid).Guid - } else { - $RowKey = $Task.RowKey - } + $Recurrence = if ([string]::IsNullOrEmpty($task.Recurrence.value)) { $task.Recurrence @@ -185,6 +187,7 @@ function Add-CIPPScheduledTask { ScheduledTime = [string]$task.ScheduledTime Recurrence = [string]$Recurrence PostExecution = [string]$PostExecution + Reference = [string]$task.Reference AdditionalProperties = [string]$AdditionalProperties Hidden = [bool]$Hidden Results = 'Planned' diff --git a/Modules/CIPPCore/Public/Add-CippTestResult.ps1 b/Modules/CIPPCore/Public/Add-CippTestResult.ps1 new file mode 100644 index 000000000000..4d8bc95bc0f2 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CippTestResult.ps1 @@ -0,0 +1,101 @@ +function Add-CippTestResult { + <# + .SYNOPSIS + Adds a test result to the CIPP test results database + + .DESCRIPTION + Stores test result data in the CippTestResults table with tenant and test ID as keys + + .PARAMETER TenantFilter + The tenant domain or GUID for the test result + + .PARAMETER TestId + Unique identifier for the test + + .PARAMETER Status + Test status (e.g., Pass, Fail, Skip) + + .PARAMETER ResultMarkdown + Markdown formatted result details + + .PARAMETER Risk + Risk level (e.g., High, Medium, Low) + + .PARAMETER Name + Display name of the test + + .PARAMETER Pillar + Security pillar category + + .PARAMETER UserImpact + Impact level on users + + .PARAMETER ImplementationEffort + Effort required for implementation + + .PARAMETER Category + Test category or classification + + .EXAMPLE + Add-CippTestResult -TenantFilter 'contoso.onmicrosoft.com' -TestId 'MFA-001' -Status 'Pass' -Name 'MFA Enabled' -Risk 'High' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$TestId, + + [Parameter(Mandatory = $false)] + [string]$testType = 'identity', + + [Parameter(Mandatory = $true)] + [string]$Status, + + [Parameter(Mandatory = $false)] + [string]$ResultMarkdown, + + [Parameter(Mandatory = $false)] + [string]$Risk, + + [Parameter(Mandatory = $false)] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$Pillar, + + [Parameter(Mandatory = $false)] + [string]$UserImpact, + + [Parameter(Mandatory = $false)] + [string]$ImplementationEffort, + + [Parameter(Mandatory = $false)] + [string]$Category + ) + + try { + $Table = Get-CippTable -tablename 'CippTestResults' + + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = $TestId + Status = $Status + ResultMarkdown = $ResultMarkdown ?? '' + Risk = $Risk ?? '' + Name = $Name ?? '' + Pillar = $Pillar ?? '' + UserImpact = $UserImpact ?? '' + ImplementationEffort = $ImplementationEffort ?? '' + Category = $Category ?? '' + TestType = $TestType + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Added test result: $TestId - $Status" -sev Info + } catch { + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Failed to add test result: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 index 3a1d0d6160c4..f5678cd95421 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertAppleTerms { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -18,13 +18,23 @@ function Get-CIPPAlertAppleTerms { # 4 = Warning try { - $appleterms = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings" -tenantid $TenantFilter + Write-Host "Checking Apple Terms for $($TenantFilter)" + $AppleTerms = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings' -tenantid $TenantFilter } catch { return } - if ($appleterms.lastSyncErrorCode -eq 3) { - $AlertData = "New Apple Business Manager terms are ready to accept." + if ($AppleTerms.lastSyncErrorCode -eq 3) { + $AlertData = [PSCustomObject]@{ + Message = 'New Apple Business Manager terms are ready to accept.' + AppleIdentifier = $AppleTerms.appleIdentifier + TokenName = $AppleTerms.tokenName + TokenExpirationDateTime = $AppleTerms.tokenExpirationDateTime + LastSyncErrorCode = $AppleTerms.lastSyncErrorCode + LastSuccessfulSyncDateTime = $AppleTerms.lastSuccessfulSyncDateTime + LastSyncTriggeredDateTime = $AppleTerms.lastSyncTriggeredDateTime + Tenant = $TenantFilter + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 index ea4812c62548..252b5abe1b78 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 @@ -14,7 +14,18 @@ function Get-CIPPAlertDefenderMalware { try { $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsDeviceMalwareStates?`$top=999&`$filter=tenantId eq '$($TenantId)'" | Where-Object { $_.malwareThreatState -eq 'Active' } | ForEach-Object { - "$($_.managedDeviceName): Malware found and active. Severity: $($_.MalwareSeverity). Malware name: $($_.MalwareDisplayName)" + [PSCustomObject]@{ + DeviceName = $_.managedDeviceName + MalwareName = $_.malwareDisplayName + MalwareSeverity = $_.malwareSeverity + ThreatState = $_.malwareThreatState + AdditionalInformationUrl = $_.additionalInformationUrl + InitialDetectionDateTime = $_.initialDetectionDateTime + LastStateChangeDateTime = $_.lastStateChangeDateTime + DetectionCount = $_.detectionCount + Tenant = $TenantFilter + TenantId = $_.tenantId + } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 index 8dca902b18a5..defef38677a1 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 @@ -13,7 +13,18 @@ function Get-CIPPAlertDefenderStatus { try { $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsProtectionStates?`$top=999&`$filter=tenantId eq '$($TenantId)'" | Where-Object { $_.realTimeProtectionEnabled -eq $false -or $_.MalwareprotectionEnabled -eq $false } | ForEach-Object { - "$($_.managedDeviceName) - Real Time Protection: $($_.realTimeProtectionEnabled) & Malware Protection: $($_.MalwareprotectionEnabled)" + [PSCustomObject]@{ + ManagedDeviceName = $_.managedDeviceName + RealTimeProtectionEnabled = $_.realTimeProtectionEnabled + MalwareProtectionEnabled = $_.malwareProtectionEnabled + NetworkInspectionSystemEnabled = $_.networkInspectionSystemEnabled + ManagedDeviceHealthState = $_.managedDeviceHealthState + AttentionRequired = $_.attentionRequired + LastSyncDateTime = $_.lastSyncDateTime + OsVersion = $_.osVersion + Tenant = $TenantFilter + TenantId = $_.tenantId + } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 index a9816aa5aef6..31ebb125ad83 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 @@ -36,6 +36,8 @@ function Get-CIPPAlertEntraConnectSyncStatus { } } } catch { - Write-AlertMessage -tenant $($TenantFilter) -message "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -LogData (Get-CippException -Exception $_) + Write-Information "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + Write-Information $_.PositionMessage } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 index 1c8046934429..a770812e9c7a 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 @@ -4,24 +4,59 @@ function Get-CIPPAlertExpiringLicenses { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, $TenantFilter ) try { + # Parse input parameters - default to 30 days if not specified + # Support both old format (direct value) and new format (object with properties) + if ($InputValue -is [hashtable] -or $InputValue -is [PSCustomObject]) { + $DaysThreshold = if ($InputValue.ExpiringLicensesDays) { [int]$InputValue.ExpiringLicensesDays } else { 30 } + $UnassignedOnly = if ($null -ne $InputValue.ExpiringLicensesUnassignedOnly) { [bool]$InputValue.ExpiringLicensesUnassignedOnly } else { $false } + } else { + # Backward compatibility: if InputValue is a simple value, treat it as days threshold + $DaysThreshold = if ($InputValue) { [int]$InputValue } else { 30 } + $UnassignedOnly = $false + } + $AlertData = Get-CIPPLicenseOverview -TenantFilter $TenantFilter | ForEach-Object { - $timeTorenew = [int64]$_.TimeUntilRenew - if ($timeTorenew -lt 30 -and $_.TimeUntilRenew -gt 0) { - Write-Host "$($_.License) will expire in $($_.TimeUntilRenew) days. The estimated term is $($_.EstTerm)" - "$($_.License) will expire in $($_.TimeUntilRenew) days. The estimated term is $($_.EstTerm)" + $UnassignedCount = [int]$_.CountAvailable + + # If unassigned only filter is enabled, skip licenses with no unassigned units + if ($UnassignedOnly -and $UnassignedCount -le 0) { + return } + foreach ($Term in $TermData) { + if ($Term.DaysUntilRenew -lt $DaysThreshold -and $Term.DaysUntilRenew -gt 0) { + $Message = if ($UnassignedOnly) { + "$($_.License) has $UnassignedCount unassigned license(s) expiring in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + } else { + "$($_.License) will expire in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + } + + Write-Host $Message + [PSCustomObject]@{ + Message = $Message + License = $_.License + SkuId = $_.skuId + DaysUntilRenew = $Term.DaysUntilRenew + Term = $Term.Term + Status = $Term.Status + TotalLicenses = $Term.TotalLicenses + CountUsed = $_.CountUsed + CountAvailable = $UnassignedCount + NextLifecycle = $Term.NextLifecycle + Tenant = $_.Tenant + } + } + } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } catch { } } - diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 new file mode 100644 index 000000000000..82ae1ebc1cfb --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 @@ -0,0 +1,84 @@ +function Get-CIPPAlertGlobalAdminAllowList { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $AllowedAdmins = @() + $AlertEachAdmin = $false + if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { + $AlertEachAdmin = [bool]($InputValue['AlertEachAdmin']) + $ApprovedValue = if ($InputValue.ContainsKey('ApprovedGlobalAdmins') -or ($InputValue.PSObject.Properties.Name -contains 'ApprovedGlobalAdmins')) { + $InputValue['ApprovedGlobalAdmins'] + } else { + $null + } + $InputValue = $ApprovedValue + } + if ($null -ne $InputValue) { + if ($InputValue -is [string]) { + $AllowedAdmins = $InputValue -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } elseif ($InputValue -is [System.Collections.IEnumerable]) { + $AllowedAdmins = $InputValue | ForEach-Object { $_.ToString().Trim() } | Where-Object { $_ } + } else { + $AllowedAdmins = @("$InputValue") + } + } + $AllowedLookup = $AllowedAdmins | ForEach-Object { $_.ToLowerInvariant() } | Select-Object -Unique + + if (-not $AllowedLookup -or $AllowedLookup.Count -eq 0) { + return + } + + $GlobalAdmins = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members?`$select=id,displayName,userPrincipalName" -tenantid $TenantFilter -AsApp $true -ErrorAction Stop | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.user' -and $_.displayName -ne 'On-Premises Directory Synchronization Service Account' + } + + $UnapprovedAdmins = foreach ($admin in $GlobalAdmins) { + if ([string]::IsNullOrWhiteSpace($admin.userPrincipalName)) { continue } + $UpnPrefix = ($admin.userPrincipalName -split '@')[0].ToLowerInvariant() + if ($AllowedLookup -notcontains $UpnPrefix) { + [PSCustomObject]@{ + Admin = $admin + UpnPrefix = $UpnPrefix + } + } + } + + if ($UnapprovedAdmins) { + if ($AlertEachAdmin) { + $AlertData = foreach ($item in $UnapprovedAdmins) { + $admin = $item.Admin + $UpnPrefix = $item.UpnPrefix + [PSCustomObject]@{ + Message = "$($admin.userPrincipalName) has Global Administrator role but is not in the approved allow list (prefix '$UpnPrefix')." + DisplayName = $admin.displayName + UserPrincipalName = $admin.userPrincipalName + Id = $admin.id + AllowedList = if ($AllowedAdmins) { $AllowedAdmins -join ', ' } else { 'Not provided' } + Tenant = $TenantFilter + } + } + } else { + $NonCompliantUpns = @($UnapprovedAdmins.Admin.userPrincipalName) + $AlertData = @([PSCustomObject]@{ + Message = "Found $($NonCompliantUpns.Count) Global Administrator account(s) not in the approved allow list." + NonCompliantUsers = $NonCompliantUpns -join ', ' + ApprovedPrefixes = if ($AllowedAdmins) { $AllowedAdmins -join ', ' } else { 'Not provided' } + Tenant = $TenantFilter + }) + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to check approved Global Admins: $(Get-NormalizedError -message $_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 index 3d9805f1fa0a..3d3a7db653d9 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertGlobalAdminNoAltEmail { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -22,7 +22,14 @@ function Get-CIPPAlertGlobalAdminNoAltEmail { } if ($adminsWithoutAltEmail.Count -gt 0) { - $AlertData = "The following Global Admin accounts do not have an alternate email address set: $($adminsWithoutAltEmail.userPrincipalName -join ', ')" + $AlertData = foreach ($admin in $adminsWithoutAltEmail) { + [PSCustomObject]@{ + DisplayName = $admin.displayName + UserPrincipalName = $admin.userPrincipalName + Id = $admin.id + Tenant = $TenantFilter + } + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } catch { diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 index 8531738f452b..d43fed315a9a 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 @@ -10,7 +10,7 @@ function Get-CIPPAlertHuntressRogueApps { https://huntresslabs.github.io/rogueapps/ #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 index 2a0fb9ff869e..964e60d5a375 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertInactiveLicensedUsers { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -18,7 +18,7 @@ function Get-CIPPAlertInactiveLicensedUsers { $Lookup = (Get-Date).AddDays(-90).ToUniversalTime() # Build base filter - cannot filter assignedLicenses server-side - $BaseFilter = if ($InputValue -eq $true) { "accountEnabled eq true" } else { "" } + $BaseFilter = if ($InputValue -eq $true) { 'accountEnabled eq true' } else { '' } $Uri = if ($BaseFilter) { "https://graph.microsoft.com/beta/users?`$filter=$BaseFilter&`$select=id,UserPrincipalName,signInActivity,mail,userType,accountEnabled,assignedLicenses" @@ -56,7 +56,13 @@ function Get-CIPPAlertInactiveLicensedUsers { $Message = 'User {0} has been inactive for {1} days but still has a license assigned. Last sign-in: {2}' -f $user.UserPrincipalName, $daysSinceSignIn, $lastSignIn } - $user | Select-Object -Property UserPrincipalName, signInActivity, @{Name = 'Message'; Expression = { $Message } } + [PSCustomObject]@{ + UserPrincipalName = $user.UserPrincipalName + Id = $user.id + lastSignIn = $lastSignIn + Message = $Message + Tenant = $TenantFilter + } } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 new file mode 100644 index 000000000000..684f6bd0fc87 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 @@ -0,0 +1,144 @@ +function Get-CIPPAlertIntunePolicyConflicts { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + # Normalize JSON/string input to object when possible + if ($InputValue -is [string]) { + try { + if ($InputValue.Trim().StartsWith('{')) { + $InputValue = $InputValue | ConvertFrom-Json -ErrorAction Stop + } + } catch { + # Leave as-is if parsing fails + } + } + + $Config = [ordered]@{ + AlertEachIssue = $false # align with AlertEachAdmin convention (false = aggregated) + IncludePolicies = $true + IncludeApplications = $true + AlertConflicts = $true + AlertErrors = $true + } + + if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { + # Primary key follows AlertEach* convention; legacy Aggregate supported (true == aggregated) + if ($null -ne $InputValue.AlertEachIssue) { $Config.AlertEachIssue = [bool]$InputValue.AlertEachIssue } + if ($null -ne $InputValue.Aggregate) { $Config.AlertEachIssue = -not [bool]$InputValue.Aggregate } + + $Config.IncludePolicies = if ($null -ne $InputValue.IncludePolicies) { [bool]$InputValue.IncludePolicies } else { $Config.IncludePolicies } + $Config.IncludeApplications = if ($null -ne $InputValue.IncludeApplications) { [bool]$InputValue.IncludeApplications } else { $Config.IncludeApplications } + $Config.AlertConflicts = if ($null -ne $InputValue.AlertConflicts) { [bool]$InputValue.AlertConflicts } else { $Config.AlertConflicts } + $Config.AlertErrors = if ($null -ne $InputValue.AlertErrors) { [bool]$InputValue.AlertErrors } else { $Config.AlertErrors } + } elseif ($InputValue -is [bool]) { + # Back-compat for boolean toggle used as Aggregate previously + $Config.AlertEachIssue = -not [bool]$InputValue + } + + if (-not $Config.IncludePolicies -and -not $Config.IncludeApplications) { + return + } + + $AlertableStatuses = @() + if ($Config.AlertErrors) { $AlertableStatuses += 'error', 'failed' } + if ($Config.AlertConflicts) { $AlertableStatuses += 'conflict' } + + if (-not $AlertableStatuses) { + return + } + + $HasLicense = Test-CIPPStandardLicense -StandardName 'IntunePolicyStatus' -TenantFilter $TenantFilter -RequiredCapabilities @( + 'INTUNE_A', + 'MDM_Services', + 'EMS', + 'SCCM', + 'MICROSOFTINTUNEPLAN1' + ) + + if (-not $HasLicense) { + return + } + + $Issues = @() + + if ($Config.IncludePolicies) { + try { + $ManagedDevices = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$select=id,deviceName,userPrincipalName&`$expand=deviceConfigurationStates(`$select=displayName,state,settingStates)" -tenantid $TenantFilter + + foreach ($Device in $ManagedDevices) { + $PolicyStates = $Device.deviceConfigurationStates | Where-Object { $_.state -and ($AlertableStatuses -contains $_.state) } + foreach ($State in $PolicyStates) { + $Issues += [PSCustomObject]@{ + Message = "Policy '$($State.displayName)' is $($State.state) on device '$($Device.deviceName)' for $($Device.userPrincipalName)." + Tenant = $TenantFilter + Type = 'Policy' + PolicyName = $State.displayName + IssueStatus = $State.state + DeviceName = $Device.deviceName + UserPrincipalName = $Device.userPrincipalName + DeviceId = $Device.id + } + } + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to query Intune policy states: $(Get-NormalizedError -message $_.Exception.Message)" + } + } + + if ($Config.IncludeApplications) { + try { + $Applications = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps?`$select=id,displayName&`$expand=deviceStatuses(`$select=installState,deviceName,userPrincipalName,deviceId)" -tenantid $TenantFilter + + foreach ($App in $Applications) { + $BadStatuses = $App.deviceStatuses | Where-Object { + $_.installState -and ($AlertableStatuses -contains $_.installState.ToLowerInvariant()) + } + + foreach ($Status in $BadStatuses) { + $Issues += [PSCustomObject]@{ + Message = "App '$($App.displayName)' install is $($Status.installState) on device '$($Status.deviceName)' for $($Status.userPrincipalName)." + Tenant = $TenantFilter + Type = 'Application' + AppName = $App.displayName + IssueStatus = $Status.installState + DeviceName = $Status.deviceName + UserPrincipalName = $Status.userPrincipalName + DeviceId = $Status.deviceId + } + } + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to query Intune application states: $(Get-NormalizedError -message $_.Exception.Message)" + } + } + + if (-not $Issues) { + return + } + + if (-not $Config.AlertEachIssue) { + $PolicyCount = ($Issues | Where-Object { $_.Type -eq 'Policy' }).Count + $AppCount = ($Issues | Where-Object { $_.Type -eq 'Application' }).Count + + $AlertData = @([PSCustomObject]@{ + Message = "Found $PolicyCount policy issues and $AppCount application issues in Intune." + Tenant = $TenantFilter + PolicyIssues = $PolicyCount + AppIssues = $AppCount + Issues = $Issues + }) + } else { + $AlertData = $Issues + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 index f72d83ac37cb..0c44125c4b03 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertLicenseAssignmentErrors { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory)] $TenantFilter, [Alias('input')] @@ -14,24 +14,24 @@ function Get-CIPPAlertLicenseAssignmentErrors { # Define error code translations for human-readable messages $ErrorTranslations = @( @{ - ErrorCode = "CountViolation" - Description = "Not enough licenses available - the organization has exceeded the number of available licenses for this SKU" + ErrorCode = 'CountViolation' + Description = 'Not enough licenses available - the organization has exceeded the number of available licenses for this SKU' }, @{ - ErrorCode = "MutuallyExclusiveViolation" - Description = "Conflicting licenses assigned - this license cannot be assigned alongside another license the user already has" + ErrorCode = 'MutuallyExclusiveViolation' + Description = 'Conflicting licenses assigned - this license cannot be assigned alongside another license the user already has' }, @{ - ErrorCode = "ProhibitedInUsageLocationViolation" + ErrorCode = 'ProhibitedInUsageLocationViolation' Description = "License not available in user's location - this license cannot be assigned to users in the user's current usage location" }, @{ - ErrorCode = "UniquenessViolation" - Description = "Duplicate license assignment - this license can only be assigned once per user" + ErrorCode = 'UniquenessViolation' + Description = 'Duplicate license assignment - this license can only be assigned once per user' }, @{ - ErrorCode = "Unknown" - Description = "Unknown license assignment error - an unspecified error occurred during license assignment" + ErrorCode = 'Unknown' + Description = 'Unknown license assignment error - an unspecified error occurred during license assignment' } ) @@ -44,11 +44,11 @@ function Get-CIPPAlertLicenseAssignmentErrors { $_.licenseAssignmentStates -and ($_.licenseAssignmentStates | Where-Object { $_.error -and ( - $_.error -like "*CountViolation*" -or - $_.error -like "*MutuallyExclusiveViolation*" -or - $_.error -like "*ProhibitedInUsageLocationViolation*" -or - $_.error -like "*UniquenessViolation*" -or - $_.error -like "*Unknown*" + $_.error -like '*CountViolation*' -or + $_.error -like '*MutuallyExclusiveViolation*' -or + $_.error -like '*ProhibitedInUsageLocationViolation*' -or + $_.error -like '*UniquenessViolation*' -or + $_.error -like '*Unknown*' ) }) } @@ -57,11 +57,11 @@ function Get-CIPPAlertLicenseAssignmentErrors { $LicenseAssignmentErrors = foreach ($User in $UsersWithViolations) { $ViolationErrors = $User.licenseAssignmentStates | Where-Object { $_.error -and ( - $_.error -like "*CountViolation*" -or - $_.error -like "*MutuallyExclusiveViolation*" -or - $_.error -like "*ProhibitedInUsageLocationViolation*" -or - $_.error -like "*UniquenessViolation*" -or - $_.error -like "*Unknown*" + $_.error -like '*CountViolation*' -or + $_.error -like '*MutuallyExclusiveViolation*' -or + $_.error -like '*ProhibitedInUsageLocationViolation*' -or + $_.error -like '*UniquenessViolation*' -or + $_.error -like '*Unknown*' ) } @@ -74,9 +74,19 @@ function Get-CIPPAlertLicenseAssignmentErrors { "Unknown license assignment error: $($Violation.error)" } - $PrettyName = Convert-SKUname -skuID $Violation.skuId + $PrettyName = Convert-SKUname -SkuID $Violation.skuId - "$($User.userPrincipalName): $HumanReadableError (License: $PrettyName)" + $Message = "$($User.userPrincipalName): $HumanReadableError (License: $PrettyName)" + [PSCustomObject]@{ + Message = $Message + UserPrincipalName = $User.userPrincipalName + Error = $HumanReadableError + LicenseName = $PrettyName + SkuId = $Violation.skuId + DisplayName = $User.displayName + Id = $User.id + Tenant = $TenantFilter + } } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 index 5e2601a7bc36..e5284435bcdc 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertLowDomainScore { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory)] $TenantFilter, [Alias('input')] @@ -13,10 +13,14 @@ function Get-CIPPAlertLowDomainScore { ) $DomainData = Get-CIPPDomainAnalyser -TenantFilter $TenantFilter - $LowScoreDomains = $DomainData | Where-Object { - $_.ScorePercentage -lt $InputValue -and $_.ScorePercentage -ne '' - } | ForEach-Object { - "$($_.Domain): Domain security score is $($_.ScorePercentage)%, which is below the threshold of $InputValue%. Issues: $($_.ScoreExplanation)" + $LowScoreDomains = $DomainData | Where-Object { $_.ScorePercentage -lt $InputValue -and $_.ScorePercentage -ne '' } | ForEach-Object { + [PSCustomObject]@{ + Message = "$($_.Domain): Domain security score is $($_.ScorePercentage)%, which is below the threshold of $InputValue%. Issues: $($_.ScoreExplanation)" + Domain = $_.Domain + ScorePercentage = $_.ScorePercentage + ScoreExplanation = $_.ScoreExplanation + Tenant = $TenantFilter + } } if ($LowScoreDomains) { diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 index 6e5a304ad013..32170d84b9d0 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertMFAAdmins { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -18,9 +18,20 @@ function Get-CIPPAlertMFAAdmins { } } if (!$DuoActive) { - $users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq true and isMfaRegistered eq false and userType eq 'member'&`$select=userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' } - if ($users.UserPrincipalName) { - $AlertData = "The following admins do not have MFA registered: $($users.UserPrincipalName -join ', ')" + $Users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq true and isMfaRegistered eq false and userType eq 'member'&`$select=id,userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | + Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' } + if ($Users.UserPrincipalName) { + $AlertData = foreach ($user in $Users) { + [PSCustomObject]@{ + Message = "Admin user $($user.userDisplayName) ($($user.userPrincipalName)) does not have MFA registered." + UserPrincipalName = $user.userPrincipalName + DisplayName = $user.userDisplayName + Id = $user.id + LastUpdated = $user.lastUpdatedDateTime + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 index e56ce8fe2b04..32f14ddc1947 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertMFAAlertUsers { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -12,9 +12,16 @@ function Get-CIPPAlertMFAAlertUsers { ) try { - $users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq false and isMfaRegistered eq false and userType eq 'member'&`$select=userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' } - if ($users.UserPrincipalName) { - $AlertData = "The following $($users.Count) users do not have MFA registered: $($users.UserPrincipalName -join ', ')" + $Users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq false and isMfaRegistered eq false and userType eq 'member'&`$select=userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | + Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' -and $_.userPrincipalName -notmatch '^package_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}@' } + if ($Users) { + $AlertData = foreach ($user in $Users) { + [PSCustomObject]@{ + UserPrincipalName = $user.userPrincipalName + DisplayName = $user.userDisplayName + LastUpdated = $user.lastUpdatedDateTime + } + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 index 138ba2870631..f2c268a4ed75 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 @@ -18,8 +18,10 @@ function Get-CIPPAlertMXRecordChanged { $ChangedDomains = foreach ($Domain in $DomainData) { $PreviousDomain = $PreviousResults | Where-Object { $_.Domain -eq $Domain.Domain } - if ($PreviousDomain -and $PreviousDomain.ActualMXRecords -ne $Domain.ActualMXRecords) { - "$($Domain.Domain): MX records changed from [$($PreviousDomain.ActualMXRecords -join ', ')] to [$($Domain.ActualMXRecords -join ', ')]" + $PreviousRecords = $PreviousDomain.ActualMXRecords -split ',' | Sort-Object + $CurrentRecords = $Domain.ActualMXRecords.Hostname | Sort-Object + if ($PreviousDomain -and $PreviousRecords -ne $CurrentRecords) { + "$($Domain.Domain): MX records changed from [$($PreviousRecords -join ', ')] to [$($CurrentRecords -join ', ')]" } } @@ -29,13 +31,14 @@ function Get-CIPPAlertMXRecordChanged { # Update cache with current data foreach ($Domain in $DomainData) { + $CurrentRecords = $Domain.ActualMXRecords.Hostname | Sort-Object $CacheEntity = @{ - PartitionKey = $TenantFilter - RowKey = $Domain.Domain - Domain = $Domain.Domain - ActualMXRecords = $Domain.ActualMXRecords - LastRefresh = $Domain.LastRefresh - MailProvider = $Domain.MailProvider + PartitionKey = [string]$TenantFilter + RowKey = [string]$Domain.Domain + Domain = [string]$Domain.Domain + ActualMXRecords = [string]($CurrentRecords -join ',') + LastRefresh = [string]$Domain.LastRefresh + MailProvider = [string]$Domain.MailProvider } Add-CIPPAzDataTableEntity @CacheTable -Entity $CacheEntity -Force } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 index c6da6950077f..34e8f6a87918 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 @@ -12,41 +12,56 @@ function Get-CIPPAlertNewAppApproval { $TenantFilter, $Headers ) - try { - $Approvals = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests?`$filter=userConsentRequests/any (u:u/status eq 'InProgress')" -tenantid $TenantFilter - if ($Approvals.count -gt 0) { - $TenantGUID = (Get-Tenants -TenantFilter $TenantFilter -SkipDomains).customerId - $AlertData = [System.Collections.Generic.List[PSCustomObject]]::new() - foreach ($App in $Approvals) { - $userConsentRequests = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests/$($App.id)/userConsentRequests" -tenantid $TenantFilter - $userConsentRequests | ForEach-Object { - $consentUrl = if ($App.consentType -eq 'Static') { - # if something is going wrong here you've probably stumbled on a fourth variation - rvdwegen - "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" - } elseif ($App.pendingScopes.displayName) { - "https://login.microsoftonline.com/$($TenantFilter)/v2.0/adminConsent?client_id=$($App.appId)&scope=$($App.pendingScopes.displayName -Join(' '))&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" - } else { - "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + + Measure-CippTask -TaskName 'NewAppApprovalAlert' -EventName 'CIPP.AlertProfile' -Script { + try { + $Approvals = Measure-CippTask -TaskName 'GetAppConsentRequests' -EventName 'CIPP.AlertProfile' -Script { + New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests?`$top=100&`$filter=userConsentRequests/any (u:u/status eq 'InProgress')" -tenantid $TenantFilter + } + + if ($Approvals.count -gt 0) { + Measure-CippTask -TaskName 'ProcessApprovals' -EventName 'CIPP.AlertProfile' -Script { + $TenantGUID = (Get-Tenants -TenantFilter $TenantFilter -SkipDomains).customerId + $AlertData = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($App in $Approvals) { + $userConsentRequests = Measure-CippTask -TaskName 'GetUserConsentRequests' -EventName 'CIPP.AlertProfile' -Script { + New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests/$($App.id)/userConsentRequests" -tenantid $TenantFilter + } + + $userConsentRequests | ForEach-Object { + $consentUrl = if ($App.consentType -eq 'Static') { + # if something is going wrong here you've probably stumbled on a fourth variation - rvdwegen + "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } elseif ($App.pendingScopes.displayName) { + "https://login.microsoftonline.com/$($TenantFilter)/v2.0/adminConsent?client_id=$($App.appId)&scope=$($App.pendingScopes.displayName -Join(' '))&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } else { + "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } + + $Message = [PSCustomObject]@{ + RequestId = $_.id + AppName = $App.appDisplayName + RequestUser = $_.createdBy.user.userPrincipalName + Reason = $_.reason + RequestDate = $_.createdDateTime + Status = $_.status # Will allways be InProgress as we filter to only get these but this will reduce confusion when an alert is generated + AppId = $App.appId + Scopes = ($App.pendingScopes.displayName -join ', ') + ConsentURL = $consentUrl + Tenant = $TenantFilter + TenantId = $TenantGUID + } + $AlertData.Add($Message) + } } - $Message = [PSCustomObject]@{ - RequestId = $_.id - AppName = $App.appDisplayName - RequestUser = $_.createdBy.user.userPrincipalName - Reason = $_.reason - RequestDate = $_.createdDateTime - Status = $_.status # Will allways be InProgress as we filter to only get these but this will reduce confusion when an alert is generated - AppId = $App.appId - Scopes = ($App.pendingScopes.displayName -join ', ') - ConsentURL = $consentUrl - Tenant = $TenantFilter - TenantId = $TenantGUID + Measure-CippTask -TaskName 'WriteAlertTrace' -EventName 'CIPP.AlertProfile' -Script { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } - $AlertData.Add($Message) } } - Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } catch { } - } catch { } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 index 917c833cc074..c0691da7fe0d 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 @@ -33,10 +33,8 @@ function Get-CIPPAlertNewRiskyUsers { Add-CIPPAzDataTableEntity @DeltaTable -Entity $DeltaEntity -Force if ($RiskyUsersDelta) { - $AlertData = $NewDelta | Where-Object { - $_.userPrincipalName -notin $RiskyUsersDelta.userPrincipalName - } | ForEach-Object { - $riskHistory = if ($_.history) { + $AlertData = $NewDelta | Where-Object { $_.userPrincipalName -notin $RiskyUsersDelta.userPrincipalName } | ForEach-Object { + $RiskHistory = if ($_.history) { $latestHistory = $_.history | Sort-Object -Property riskLastUpdatedDateTime -Descending | Select-Object -First 1 "Previous Risk Level: $($latestHistory.riskLevel), Last Updated: $($latestHistory.riskLastUpdatedDateTime)" } else { @@ -44,14 +42,14 @@ function Get-CIPPAlertNewRiskyUsers { } # Map risk level to severity - $severity = switch ($_.riskLevel) { + $Severity = switch ($_.riskLevel) { 'high' { 'Critical' } 'medium' { 'Warning' } 'low' { 'Info' } default { 'Info' } } - @{ + [PSCustomObject]@{ Message = "New risky user detected: $($_.userPrincipalName)" Details = @{ RiskLevel = $_.riskLevel @@ -59,9 +57,10 @@ function Get-CIPPAlertNewRiskyUsers { RiskDetail = $_.riskDetail LastUpdated = $_.riskLastUpdatedDateTime IsProcessing = $_.isProcessing - RiskHistory = $riskHistory - Severity = $severity + RiskHistory = $RiskHistory + Severity = $Severity } + Tenant = $TenantFilter } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 index 04beb6a6d523..68167632b5b3 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertNewRole { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -14,9 +14,9 @@ function Get-CIPPAlertNewRole { try { $Filter = "PartitionKey eq 'AdminDelta' and RowKey eq '{0}'" -f $TenantFilter $AdminDelta = (Get-CIPPAzDataTableEntity @Deltatable -Filter $Filter).delta | ConvertFrom-Json -ErrorAction SilentlyContinue - $NewDelta = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter) | Select-Object displayname, Members | ForEach-Object { + $NewDelta = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter) | Select-Object displayName, Members | ForEach-Object { @{ - GroupName = $_.displayname + GroupName = $_.displayName Members = $_.Members.UserPrincipalName } } @@ -32,7 +32,12 @@ function Get-CIPPAlertNewRole { $AlertData = foreach ($Group in $NewDelta) { $OldDelta = $AdminDelta | Where-Object { $_.GroupName -eq $Group.GroupName } $Group.members | Where-Object { $_ -notin $OldDelta.members } | ForEach-Object { - "$_ has been added to the $($Group.GroupName) Role" + [PSCustomObject]@{ + Message = "$_ has been added to the $($Group.GroupName) Role" + User = $_ + Role = $Group.GroupName + Tenant = $TenantFilter + } } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 index 3c731d4d84c6..48ae1dabff57 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertNoCAConfig { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -21,7 +21,11 @@ function Get-CIPPAlertNoCAConfig { if (('AAD_PREMIUM' -in $CAAvailable.servicePlanName) -or ('AAD_PREMIUM_P2' -in $CAAvailable.servicePlanName)) { $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies' -tenantid $TenantFilter) if (!$CAPolicies.id) { - $AlertData = 'Conditional Access is available, but no policies could be found.' + $AlertData = [PSCustomObject]@{ + Message = 'Conditional Access is available, but no policies could be found.' + Tenant = $TenantFilter + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 index 4fe56c864570..b39ea94d9a48 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 @@ -32,7 +32,15 @@ function Get-CIPPAlertOneDriveQuota { if ($UsagePercent -gt $InputValue) { $GBLeft = [math]::Round(($_.storageAllocatedInBytes - $_.storageUsedInBytes) / 1GB) - "$($_.ownerPrincipalName): OneDrive is $UsagePercent% full. OneDrive has $($GBLeft)GB storage left" + [PSCustomObject]@{ + Message = "$($_.ownerPrincipalName): OneDrive is $UsagePercent% full. OneDrive has $($GBLeft)GB storage left" + Owner = $_.ownerPrincipalName + UsagePercent = $UsagePercent + GBLeft = $GBLeft + StorageUsedInBytes = $_.storageUsedInBytes + StorageAllocatedInBytes = $_.storageAllocatedInBytes + Tenant = $TenantFilter + } } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 index b02a8bb00676..69e4f0254a84 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertOverusedLicenses { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -19,15 +19,24 @@ function Get-CIPPAlertOverusedLicenses { $skuid = $_ foreach ($sku in $skuid) { if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } - $PrettyName = ($ConvertTable | Where-Object { $_.GUID -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 + $PrettyName = Convert-SKUname -SkuID $sku.skuId if (!$PrettyName) { $PrettyName = $sku.skuPartNumber } if ($sku.prepaidUnits.enabled - $sku.consumedUnits -lt 0) { - "$PrettyName has Overused licenses. Using $($_.consumedUnits) of $($_.prepaidUnits.enabled)." + [PSCustomObject]@{ + Message = "$PrettyName has Overused licenses. Using $($sku.consumedUnits) of $($sku.prepaidUnits.enabled)." + LicenseName = $PrettyName + SkuId = $sku.skuId + SkuPartNumber = $sku.skuPartNumber + ConsumedUnits = $sku.consumedUnits + EnabledUnits = $sku.prepaidUnits.enabled + Tenant = $TenantFilter + } } } - } - Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + if ($AlertData) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } } catch { Write-AlertMessage -tenant $($TenantFilter) -message "Overused Licenses Alert Error occurred: $(Get-NormalizedError -message $_.Exception.message)" diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 new file mode 100644 index 000000000000..56182ece6f32 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 @@ -0,0 +1,56 @@ +function Get-CIPPAlertQuarantineReleaseRequests { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + $HasLicense = Test-CIPPStandardLicense -StandardName 'QuarantineReleaseRequests' -TenantFilter $TenantFilter -RequiredCapabilities @( + 'EXCHANGE_S_STANDARD', + 'EXCHANGE_S_ENTERPRISE', + 'EXCHANGE_S_STANDARD_GOV', + 'EXCHANGE_S_ENTERPRISE_GOV', + 'EXCHANGE_LITE' + ) + + if (-not $HasLicense) { + return + } + + try { + $RequestedReleases = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-QuarantineMessage' -cmdParams @{ PageSize = 1000; ReleaseStatus = 'Requested' } -ErrorAction Stop | Select-Object -ExcludeProperty *data.type* + + if ($RequestedReleases) { + # Get the CIPP URL for the Quarantine link + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPUrl = 'https://{0}' -f $CippConfig.Value + + $AlertData = foreach ($Message in $RequestedReleases) { + [PSCustomObject]@{ + Identity = $Message.Identity + MessageId = $Message.MessageId + Subject = $Message.Subject + SenderAddress = $Message.SenderAddress + RecipientAddress = $Message.RecipientAddress -join '; ' + Type = $Message.Type + PolicyName = $Message.PolicyName + ReleaseStatus = $Message.ReleaseStatus + ReceivedTime = $Message.ReceivedTime + QuarantineViewUrl = "$CIPPUrl/email/administration/quarantine?tenantFilter=$TenantFilter" + Tenant = $TenantFilter + } + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "QuarantineReleaseRequests: $(Get-NormalizedError -message $_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 index d4e8c651e490..89d7600aded0 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertQuotaUsed { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -31,9 +31,16 @@ function Get-CIPPAlertQuotaUsed { $Value = 90 } if ($PercentLeft -gt $Value) { - "$($_.userPrincipalName): Mailbox is more than $($value)% full. Mailbox is $PercentLeft% full" + [PSCustomObject]@{ + Message = "$($_.userPrincipalName): Mailbox is more than $($value)% full. Mailbox is $PercentLeft% full" + Owner = $_.userPrincipalName + RecipientType = $_.recipientType + UsagePercent = $PercentLeft + StorageUsedInBytes = $_.storageUsedInBytes + ProhibitSendReceiveQuotaInBytes = $_.prohibitSendReceiveQuotaInBytes + Tenant = $TenantFilter + } } - } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $OverQuota } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 new file mode 100644 index 000000000000..6205c9b6ac40 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 @@ -0,0 +1,42 @@ +function Get-CIPPAlertReportOnlyCA { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Only consider CA available when a SKU that grants it has enabled seats (> 0) + $SubscribedSkus = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus?`$select=prepaidUnits,servicePlans" -tenantid $TenantFilter -ErrorAction Stop + $CAAvailable = foreach ($sku in $SubscribedSkus) { + if ([int]$sku.prepaidUnits.enabled -gt 0) { $sku.servicePlans } + } + + if (('AAD_PREMIUM' -in $CAAvailable.servicePlanName) -or ('AAD_PREMIUM_P2' -in $CAAvailable.servicePlanName)) { + $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -ErrorAction Stop) + + # Filter for policies in report-only mode + $ReportOnlyPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabledForReportingButNotEnforced' } + + if ($ReportOnlyPolicies) { + $AlertData = foreach ($Policy in $ReportOnlyPolicies) { + [PSCustomObject]@{ + PolicyNames = $Policy.displayName + State = $Policy.state + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Report-Only CA Alert: Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } + +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 index 24c1d7b21625..5e3992a1a14e 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 @@ -31,11 +31,12 @@ ExternalCount = $ExternalCount CreatedDatetime = $User.CreatedDatetime Reason = $User.Reason + Tenant = $TenantFilter } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } catch { - Write-AlertMessage -tenant $($TenantFilter) -message "Could not get restricted users for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + # Write-LogMessage -tenant $($TenantFilter) -message "Could not get restricted users for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -severity 'Error' -API 'Get-CIPPAlertRestrictedUsers' -LogData (Get-CippException -Exception $_) } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 index c560d47329cb..6832a61a216f 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertSecDefaultsUpsell { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -15,7 +15,12 @@ function Get-CIPPAlertSecDefaultsUpsell { try { $SecDefaults = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $TenantFilter) if ($SecDefaults.isEnabled -eq $false -and $SecDefaults.securityDefaultsUpsell.action -in @('autoEnable', 'autoEnabledNotify')) { - $AlertData = 'Security Defaults will be automatically enabled on {0}' -f $SecDefaults.securityDefaultsUpsell.dueDateTime + $AlertData = [PSCustomObject]@{ + Message = ('Security Defaults will be automatically enabled on {0}' -f $SecDefaults.securityDefaultsUpsell.dueDateTime) + EnablementDate = $SecDefaults.securityDefaultsUpsell.dueDateTime + Action = $SecDefaults.securityDefaultsUpsell.action + Tenant = $TenantFilter + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 index 2de5890c7f85..9f969037d7b8 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 @@ -4,13 +4,13 @@ function Get-CIPPAlertSharepointQuota { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, $TenantFilter ) - Try { + try { $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter $extraHeaders = @{ 'Accept' = 'application/json' @@ -27,7 +27,13 @@ function Get-CIPPAlertSharepointQuota { } $UsedStoragePercentage = [int](($sharepointQuota.GeoUsedStorageMB / $sharepointQuota.TenantStorageMB) * 100) if ($UsedStoragePercentage -gt $Value) { - $AlertData = "SharePoint Storage is at $($UsedStoragePercentage)% [$([math]::Round($sharepointQuota.GeoUsedStorageMB / 1024, 2)) GB/$([math]::Round($sharepointQuota.TenantStorageMB / 1024, 2)) GB]. Your alert threshold is $($Value)%" + $AlertData = [PSCustomObject]@{ + UsedStoragePercentage = $UsedStoragePercentage + StorageUsed = ([math]::Round($sharepointQuota.GeoUsedStorageMB / 1024, 2)) + StorageQuota = ([math]::Round($sharepointQuota.TenantStorageMB / 1024, 2)) + AlertQuotaThreshold = $Value + Tenant = $TenantFilter + } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 index 703bb86e6ba1..8edc398ff3cc 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertSmtpAuthSuccess { Entrypoint – Check sign-in logs for SMTP AUTH with success status #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -19,7 +19,7 @@ function Get-CIPPAlertSmtpAuthSuccess { $SignIns = New-GraphGetRequest -uri $uri -tenantid $TenantFilter # Select only the properties you care about - $AlertData = $SignIns.value | Select-Object userPrincipalName, createdDateTime, clientAppUsed, ipAddress, status + $AlertData = $SignIns.value | Select-Object userPrincipalName, createdDateTime, clientAppUsed, ipAddress, status, @{Name = 'Tenant'; Expression = { $TenantFilter } } # Write results into the alert pipeline Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 index 68070c18497e..f446ec2e9161 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertSoftDeletedMailboxes { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -14,15 +14,16 @@ function Get-CIPPAlertSoftDeletedMailboxes { $Select = 'ExchangeGuid,ArchiveGuid,WhenSoftDeleted,UserPrincipalName,IsInactiveMailbox' try { - $SoftDeletedMailBoxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'get-mailbox' -cmdParams @{SoftDeletedMailbox = $true} -Select $Select | Select-Object ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, IsInactiveMailbox - + $SoftDeletedMailBoxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'get-mailbox' -cmdParams @{SoftDeletedMailbox = $true } -Select $Select | + Select-Object ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, IsInactiveMailbox, @{ Name = 'Tenant'; Expression = { $TenantFilter } } + # Filter out the mailboxes where IsInactiveMailbox is $true $AlertData = $SoftDeletedMailBoxes | Where-Object { $_.IsInactiveMailbox -ne $true } - + # Write the alert trace with the filtered data Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } catch { Write-AlertMessage -tenant $($TenantFilter) -message "Failed to check for soft deleted mailboxes in $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" } -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 index 4fa7a04e843c..163cfa782469 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertTERRL { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -29,11 +29,12 @@ function Get-CIPPAlertTERRL { EnforcementEnabled = $TerrlStatus.EnforcementEnabled Verdict = $TerrlStatus.Verdict Message = 'Tenant is at {0}% of their TERRL limit (using {1} of {2} messages). Tenant Enforcement Status: {3}' -f $UsagePercentage, $TerrlStatus.ObservedValue, $TerrlStatus.Threshold, $TerrlStatus.Verdict + Tenant = $TenantFilter } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } } } catch { - Write-AlertMessage -tenant $($TenantFilter) -message "Could not get TERRL status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + Write-LogMessage -tenant $($TenantFilter) -message "Could not get TERRL status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -severity 'Error' -API 'CIPPAlertTERRL' -LogData (Get-CippException -Exception $_) } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 index 0917ae0a6127..4db4e400eb1e 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertUnusedLicenses { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -15,13 +15,21 @@ function Get-CIPPAlertUnusedLicenses { $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable $AlertData = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter | ForEach-Object { - $skuId = $_ - foreach ($sku in $skuId) { + $SkuId = $_ + foreach ($sku in $SkuId) { if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } - $PrettyName = ($ConvertTable | Where-Object { $_.GUID -eq $sku.skuId }).'Product_Display_Name' | Select-Object -Last 1 + $PrettyName = Convert-SKUname -SkuID $sku.skuId if (!$PrettyName) { $PrettyName = $sku.skuPartNumber } if ($sku.prepaidUnits.enabled - $sku.consumedUnits -gt 0) { - "$PrettyName has unused licenses. Using $($_.consumedUnits) of $($_.prepaidUnits.enabled)." + [PSCustomObject]@{ + Message = "$PrettyName has unused licenses. Using $($sku.consumedUnits) of $($sku.prepaidUnits.enabled)." + LicenseName = $PrettyName + SkuId = $sku.skuId + SkuPartNumber = $sku.skuPartNumber + ConsumedUnits = $sku.consumedUnits + EnabledUnits = $sku.prepaidUnits.enabled + Tenant = $TenantFilter + } } } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 index 2dab259a662a..f645d9a03ec4 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 @@ -16,10 +16,10 @@ function Get-CIPPAlertVppTokenExpiry { $AlertData = foreach ($Vpp in $VppTokens) { if ($Vpp.state -ne 'valid') { $Message = 'Apple Volume Purchase Program Token is not valid, new token required' - $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } } + $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } }, @{Name = 'Tenant'; Expression = { $TenantFilter } } } elseif ($Vpp.expirationDateTime -lt (Get-Date).AddDays(30).ToUniversalTime() -and $Vpp.expirationDateTime -gt (Get-Date).AddDays(-7).ToUniversalTime()) { $Message = 'Apple Volume Purchase Program token expiring on {0}' -f $Vpp.expirationDateTime - $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } } + $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } }, @{Name = 'Tenant'; Expression = { $TenantFilter } } } } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 index ad1ff546b89c..068a039086ff 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertVulnerabilities { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 new file mode 100644 index 000000000000..94f8037d8477 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 @@ -0,0 +1,78 @@ +function Get-CIPPAzIdentityToken { + <# + .SYNOPSIS + Get the Azure Identity token for Managed Identity + .DESCRIPTION + This function retrieves the Azure Identity token using the Managed Identity endpoint for the specified resource. + Tokens are cached per resource URL until expiration to reduce redundant API calls. + .PARAMETER ResourceUrl + The Azure resource URL to get a token for. Defaults to 'https://management.azure.com/' for Azure Resource Manager. + + Common resources: + - https://management.azure.com/ (Azure Resource Manager - default) + - https://vault.azure.net (Azure Key Vault) + - https://api.loganalytics.io (Log Analytics / Application Insights) + - https://storage.azure.com/ (Azure Storage) + .PARAMETER SkipCache + Force a new token to be fetched, bypassing the cache. + .EXAMPLE + Get-CIPPAzIdentityToken + Gets a token for Azure Resource Manager + .EXAMPLE + Get-CIPPAzIdentityToken -ResourceUrl 'https://vault.azure.net' + Gets a token for Azure Key Vault + .EXAMPLE + Get-CIPPAzIdentityToken -ResourceUrl 'https://api.loganalytics.io' + Gets a token for Log Analytics API + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$ResourceUrl = 'https://management.azure.com/', + [switch]$SkipCache + ) + + $Endpoint = $env:IDENTITY_ENDPOINT + $Secret = $env:IDENTITY_HEADER + + if (-not $Endpoint -or -not $Secret) { + throw 'Managed Identity environment variables (IDENTITY_ENDPOINT/IDENTITY_HEADER) not found. Is Managed Identity enabled on the Function App?' + } + + # Build cache key from resource URL + $TokenKey = "ManagedIdentity-$ResourceUrl" + + try { + # Check if cached token exists and is still valid + if ($script:ManagedIdentityTokens.$TokenKey -and [int](Get-Date -UFormat %s -Millisecond 0) -lt $script:ManagedIdentityTokens.$TokenKey.expires_on -and $SkipCache -ne $true) { + return $script:ManagedIdentityTokens.$TokenKey.access_token + } + + # Get new token + $EncodedResource = [System.Uri]::EscapeDataString($ResourceUrl) + $TokenUri = "$($Endpoint)?resource=$EncodedResource&api-version=2019-08-01" + $Headers = @{ + 'X-IDENTITY-HEADER' = $Secret + } + + $TokenResponse = Invoke-RestMethod -Method Get -Headers $Headers -Uri $TokenUri -ErrorAction Stop + + # Calculate expiration time + $ExpiresOn = [int](Get-Date -UFormat %s -Millisecond 0) + $TokenResponse.expires_in + + # Store in cache (initialize synchronized hash table if needed) + if (-not $script:ManagedIdentityTokens) { + $script:ManagedIdentityTokens = [HashTable]::Synchronized(@{}) + } + + # Add expires_on to token response for tracking + Add-Member -InputObject $TokenResponse -NotePropertyName 'expires_on' -NotePropertyValue $ExpiresOn -Force + + # Cache the token + $script:ManagedIdentityTokens.$TokenKey = $TokenResponse + + return $TokenResponse.access_token + } catch { + throw "Failed to get managed identity token for resource '$ResourceUrl': $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 new file mode 100644 index 000000000000..cd4745d5c1b4 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 @@ -0,0 +1,51 @@ +function Get-CIPPRoleIPRanges { + <# + .SYNOPSIS + Gets combined IP ranges from a list of roles + .DESCRIPTION + This function retrieves IP range restrictions from custom roles and returns a consolidated list. + Superadmin roles are excluded from IP restrictions. + .PARAMETER Roles + Array of role names to check for IP restrictions + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [array]$Roles + ) + + $CombinedIPRanges = [System.Collections.Generic.List[string]]::new() + + # Superadmin is never restricted by IP + if ($Roles -contains 'superadmin') { + return @('Any') + } + + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' + + foreach ($Role in $Roles) { + try { + $IPRangeEntity = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Role.ToLower())'" + if ($IPRangeEntity -and $IPRangeEntity.IPRanges) { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + foreach ($IPRange in $IPRanges) { + if ($IPRange -and -not $CombinedIPRanges.Contains($IPRange)) { + $CombinedIPRanges.Add($IPRange) + } + } + } + } catch { + Write-Information "Failed to get IP ranges for role '$Role': $($_.Exception.Message)" + continue + } + } + + # If no IP ranges were found in any role, allow all + if ($CombinedIPRanges.Count -eq 0) { + return @('Any') + } + + return @($CombinedIPRanges) | Sort-Object -Unique +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 index a52728c6d5d7..27affd350b11 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 @@ -32,7 +32,7 @@ function Get-CippAllowedPermissions { $AllPermissionCacheTable = Get-CIPPTable -tablename 'cachehttppermissions' $AllPermissionsRow = Get-CIPPAzDataTableEntity @AllPermissionCacheTable -Filter "PartitionKey eq 'HttpFunctions' and RowKey eq 'HttpFunctions' and Version eq '$($Version)'" - if (-not $AllPermissionsRow) { + if (-not $AllPermissionsRow.Permissions) { $AllPermissions = Get-CIPPHttpFunctions -ByRole | Select-Object -ExpandProperty Permission $Entity = @{ PartitionKey = 'HttpFunctions' diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 index 3056fdb0c8d9..1c5880fd8be1 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 @@ -4,25 +4,27 @@ function Get-CippApiAuth { [string]$FunctionAppName ) - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Set-AzContext -SubscriptionId $SubscriptionId - } else { - $Context = Get-AzContext - $SubscriptionId = $Context.Subscription.Id + $SubscriptionId = Get-CIPPAzFunctionAppSubId + + try { + # Get auth settings via REST + $uri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" + $response = New-CIPPAzRestRequest -Uri $uri -Method POST -ErrorAction Stop + $AuthSettings = $response.properties + } catch { + Write-Warning "Failed to get auth settings via REST: $($_.Exception.Message)" } - # Get auth settings - $AuthSettings = Invoke-AzRestMethod -Uri "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" -ErrorAction Stop | Select-Object -ExpandProperty Content | ConvertFrom-Json + if (!$AuthSettings -and $env:WEBSITE_AUTH_V2_CONFIG_JSON) { + $AuthSettings = $env:WEBSITE_AUTH_V2_CONFIG_JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + } - if ($AuthSettings.properties) { + if ($AuthSettings) { [PSCustomObject]@{ - ApiUrl = "https://$($FunctionAppName).azurewebsites.net" - TenantID = $AuthSettings.properties.identityProviders.azureActiveDirectory.registration.openIdIssuer -replace 'https://sts.windows.net/', '' -replace '/v2.0', '' - ClientIDs = $AuthSettings.properties.identityProviders.azureActiveDirectory.validation.defaultAuthorizationPolicy.allowedApplications - Enabled = $AuthSettings.properties.identityProviders.azureActiveDirectory.enabled + ApiUrl = "https://$($env:WEBSITE_HOSTNAME)" + TenantID = $AuthSettings.identityProviders.azureActiveDirectory.registration.openIdIssuer -replace 'https://sts.windows.net/', '' -replace '/v2.0', '' + ClientIDs = $AuthSettings.identityProviders.azureActiveDirectory.validation.defaultAuthorizationPolicy.allowedApplications + Enabled = $AuthSettings.identityProviders.azureActiveDirectory.enabled } } else { throw 'No auth settings found' diff --git a/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 b/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 index 43bbee34f7a2..948d2a17f1fa 100644 --- a/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 +++ b/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 @@ -19,7 +19,8 @@ function New-CIPPAPIConfig { try { if ($AppId) { - $APIApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appid='$($AppId)')" -NoAuthCheck $true + $APIApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appid='$($AppId)')" -NoAuthCheck $true -AsApp $true + Write-Information "Found existing app with AppId $AppId" } else { $CreateBody = @{ api = @{ @@ -62,18 +63,23 @@ function New-CIPPAPIConfig { if ($PSCmdlet.ShouldProcess($AppName, 'Create API App')) { Write-Information 'Creating app' Write-Information $CreateBody + $Step = 'Creating Application' $APIApp = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/applications' -AsApp $true -NoAuthCheck $true -type POST -body $CreateBody Write-Information 'Creating password' - $APIPassword = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)/addPassword" -AsApp $true -NoAuthCheck $true -type POST -body "{`"passwordCredential`":{`"displayName`":`"Generated by API Setup`"}}" + $Step = 'Creating Application Password' + $APIPassword = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)/addPassword" -AsApp $true -NoAuthCheck $true -type POST -body "{`"passwordCredential`":{`"displayName`":`"Generated by API Setup`"}}" -maxRetries 3 Write-Information 'Adding App URL' - $APIIdUrl = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)" -AsApp $true -NoAuthCheck $true -type PATCH -body "{`"identifierUris`":[`"api://$($APIApp.appId)`"]}" + $Step = 'Adding Application Identifier URI' + $APIIdUrl = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)" -AsApp $true -NoAuthCheck $true -type PATCH -body "{`"identifierUris`":[`"api://$($APIApp.appId)`"]}" -maxRetries 3 Write-Information 'Adding serviceprincipal' - $ServicePrincipal = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/serviceprincipals' -AsApp $true -NoAuthCheck $true -type POST -body "{`"accountEnabled`":true,`"appId`":`"$($APIApp.appId)`",`"displayName`":`"$AppName`",`"tags`":[`"WindowsAzureActiveDirectoryIntegratedApp`",`"AppServiceIntegratedApp`"]}" + $Step = 'Creating Service Principal' + $ServicePrincipal = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/serviceprincipals' -AsApp $true -NoAuthCheck $true -type POST -body "{`"accountEnabled`":true,`"appId`":`"$($APIApp.appId)`",`"displayName`":`"$AppName`",`"tags`":[`"WindowsAzureActiveDirectoryIntegratedApp`",`"AppServiceIntegratedApp`"]}" -maxRetries 3 Write-LogMessage -headers $Headers -API $APINAME -tenant 'None '-message "Created CIPP-API App with name '$($APIApp.displayName)'." -Sev 'info' } } if ($ResetSecret.IsPresent -and $APIApp) { if ($PSCmdlet.ShouldProcess($APIApp.displayName, 'Reset API Secret')) { + $Step = 'Resetting Application Password' Write-Information 'Removing all old passwords' $Requests = @( @{ @@ -118,7 +124,7 @@ function New-CIPPAPIConfig { } catch { $ErrorMessage = Get-CippException -Exception $_ Write-Information ($ErrorMessage | ConvertTo-Json -Depth 10) - Write-LogMessage -headers $Headers -API $APINAME -tenant 'None' -message "Failed to setup CIPP-API Access: $($ErrorMessage.NormalizedError) Linenumber: $($_.InvocationInfo.ScriptLineNumber)" -Sev 'Error' -LogData $ErrorMessage + Write-LogMessage -headers $Headers -API $APINAME -tenant 'None' -message "CIPP-API Setup failed at step ($Step): $($ErrorMessage.NormalizedError) Linenumber: $($_.InvocationInfo.ScriptLineNumber)" -Sev 'Error' -LogData $ErrorMessage throw "Failed to setup CIPP-API Access: $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 index b6c9278c45a5..91e40acb6290 100644 --- a/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 @@ -7,18 +7,15 @@ function Set-CippApiAuth { [string[]]$ClientIds ) - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Set-AzContext -SubscriptionId $SubscriptionId - } else { - $Context = Get-AzContext - $SubscriptionId = $Context.Subscription.Id - } + # Resolve subscription ID via helper (managed identity environment assumed for ARM). + $SubscriptionId = Get-CIPPAzFunctionAppSubId - # Get auth settings - $AuthSettings = Invoke-AzRestMethod -Uri "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" | Select-Object -ExpandProperty Content | ConvertFrom-Json + # Get auth settings via ARM REST (managed identity) + $getUri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" + $resp = New-CIPPAzRestRequest -Uri $getUri -Method 'GET' + $AuthSettings = $resp | Select-Object -ExpandProperty Content -ErrorAction SilentlyContinue + if ($AuthSettings -is [string]) { $AuthSettings = $AuthSettings | ConvertFrom-Json } + else { $AuthSettings = $resp } Write-Information "AuthSettings: $($AuthSettings | ConvertTo-Json -Depth 10)" @@ -65,11 +62,12 @@ function Set-CippApiAuth { } if ($PSCmdlet.ShouldProcess('Update auth settings')) { - # Update auth settings - $null = Invoke-AzRestMethod -Uri "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2?api-version=2020-06-01" -Method PUT -Payload ($AuthSettings | ConvertTo-Json -Depth 10) + # Update auth settings via ARM REST + $putUri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2?api-version=2020-06-01" + $null = New-CIPPAzRestRequest -Uri $putUri -Method 'PUT' -Body $AuthSettings -ContentType 'application/json' } if ($PSCmdlet.ShouldProcess('Update allowed tenants')) { - $null = Update-AzFunctionAppSetting -Name $FunctionAppName -ResourceGroupName $RGName -AppSetting @{ 'WEBSITE_AUTH_AAD_ALLOWED_TENANTS' = $TenantId } + $null = Update-CIPPAzFunctionAppSetting -Name $FunctionAppName -ResourceGroupName $RGName -AppSetting @{ 'WEBSITE_AUTH_AAD_ALLOWED_TENANTS' = $TenantId } } } diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 index 18dc11668f0f..7def9e058199 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 @@ -1,28 +1,68 @@ function Test-CIPPAccess { param( $Request, - [switch]$TenantList + [switch]$TenantList, + [switch]$GroupList ) + # Initialize per-call profiling + $AccessTimings = @{} + $AccessTotalSw = [System.Diagnostics.Stopwatch]::StartNew() if ($Request.Params.CIPPEndpoint -eq 'ExecSAMSetup') { return $true } # Get function help $FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint - if ($FunctionName -ne 'Invoke-me') { - try { - $Help = Get-Help $FunctionName -ErrorAction Stop - } catch { - Write-Warning "Function '$FunctionName' not found" + $SwPermissions = [System.Diagnostics.Stopwatch]::StartNew() + if (-not $global:CIPPFunctionPermissions) { + $CIPPCoreModule = Get-Module -Name CIPPCore + if ($CIPPCoreModule) { + $PermissionsFileJson = Join-Path $CIPPCoreModule.ModuleBase 'lib' 'data' 'function-permissions.json' + + if (Test-Path $PermissionsFileJson) { + try { + $jsonData = Get-Content -Path $PermissionsFileJson -Raw | ConvertFrom-Json -AsHashtable + $global:CIPPFunctionPermissions = [System.Collections.Hashtable]::new([StringComparer]::OrdinalIgnoreCase) + foreach ($key in $jsonData.Keys) { + $global:CIPPFunctionPermissions[$key] = $jsonData[$key] + } + Write-Debug "Loaded $($global:CIPPFunctionPermissions.Count) function permissions from JSON cache" + } catch { + Write-Warning "Failed to load function permissions from JSON: $($_.Exception.Message)" + } + } } } + $SwPermissions.Stop() + $AccessTimings['FunctionPermissions'] = $SwPermissions.Elapsed.TotalMilliseconds - # Check help for role - $APIRole = $Help.Role + if ($FunctionName -ne 'Invoke-me') { + $swHelp = [System.Diagnostics.Stopwatch]::StartNew() + if ($global:CIPPFunctionPermissions -and $global:CIPPFunctionPermissions.ContainsKey($FunctionName)) { + $PermissionData = $global:CIPPFunctionPermissions[$FunctionName] + $APIRole = $PermissionData['Role'] + $Functionality = $PermissionData['Functionality'] + Write-Debug "Loaded function permission data from cache for '$FunctionName': Role='$APIRole', Functionality='$Functionality'" + } else { + try { + $Help = Get-Help $FunctionName -ErrorAction Stop + $APIRole = $Help.Role + $Functionality = $Help.Functionality + Write-Debug "Loaded function permission data via Get-Help for '$FunctionName': Role='$APIRole', Functionality='$Functionality'" + } catch { + Write-Warning "Function '$FunctionName' not found" + } + } + $swHelp.Stop() + $AccessTimings['GetHelp'] = $swHelp.Elapsed.TotalMilliseconds + } # Get default roles from config + $swRolesLoad = [System.Diagnostics.Stopwatch]::StartNew() $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent $BaseRoles = Get-Content -Path $CIPPRoot\Config\cipp-roles.json | ConvertFrom-Json + $swRolesLoad.Stop() + $AccessTimings['LoadBaseRoles'] = $swRolesLoad.Elapsed.TotalMilliseconds $DefaultRoles = @('superadmin', 'admin', 'editor', 'readonly', 'anonymous', 'authenticated') if ($APIRole -eq 'Public') { @@ -31,6 +71,7 @@ function Test-CIPPAccess { if ($Request.Headers.'x-ms-client-principal-idp' -eq 'aad' -and $Request.Headers.'x-ms-client-principal-name' -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') { $Type = 'APIClient' + $swApiClient = [System.Diagnostics.Stopwatch]::StartNew() # Direct API Access $ForwardedFor = $Request.Headers.'x-forwarded-for' -split ',' | Select-Object -First 1 $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' @@ -91,18 +132,51 @@ function Test-CIPPAccess { } | ConvertTo-Json -Depth 5) }) } + $swApiClient.Stop() + $AccessTimings['ApiClientBranch'] = $swApiClient.Elapsed.TotalMilliseconds } else { $Type = 'User' + $swUserBranch = [System.Diagnostics.Stopwatch]::StartNew() $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json # Check for roles granted via group membership if (($User.userRoles | Measure-Object).Count -eq 2 -and $User.userRoles -contains 'authenticated' -and $User.userRoles -contains 'anonymous') { + $swResolveUserRoles = [System.Diagnostics.Stopwatch]::StartNew() $User = Test-CIPPAccessUserRole -User $User + $swResolveUserRoles.Stop() + $AccessTimings['ResolveUserRoles'] = $swResolveUserRoles.Elapsed.TotalMilliseconds + } + + $swIPCheck = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedIPRanges = Get-CIPPRoleIPRanges -Roles $User.userRoles + + if ($AllowedIPRanges -notcontains 'Any') { + $ForwardedFor = $Request.Headers.'x-forwarded-for' -split ',' | Select-Object -First 1 + $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' + $IPAddress = $ForwardedFor -replace $IPRegex, '$1' -replace '[\[\]]', '' + if ($IPAddress) { + $IPAllowed = $false + foreach ($Range in $AllowedIPRanges) { + if ($IPAddress -eq $Range -or (Test-IpInRange -IPAddress $IPAddress -Range $Range)) { + $IPAllowed = $true + break + } + } + + if (-not $IPAllowed -and -not $Request.Params.CIPPEndpoint -eq 'me') { + throw "Access to this CIPP API endpoint is not allowed, your IP address ($IPAddress) is not in the allowed range for your role(s)" + } + } else { + $IPAllowed = $true + } + } else { + $IPAllowed = $true } - #Write-Information ($User | ConvertTo-Json -Depth 5) - # Return user permissions + $swIPCheck.Stop() + $AccessTimings['IPRangeCheck'] = $swIPCheck.Elapsed.TotalMilliseconds + if ($Request.Params.CIPPEndpoint -eq 'me') { if (!$User.userRoles) { @@ -116,7 +190,22 @@ function Test-CIPPAccess { }) } + if (!$IPAllowed) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = $null + 'permissions' = @() + 'message' = "Your IP address ($IPAddress) is not in the allowed range for your role(s)" + } | ConvertTo-Json -Depth 5) + }) + } + + $swPermsMe = [System.Diagnostics.Stopwatch]::StartNew() $Permissions = Get-CippAllowedPermissions -UserRoles $User.userRoles + $swPermsMe.Stop() + $AccessTimings['GetPermissions(me)'] = $swPermsMe.Elapsed.TotalMilliseconds return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ( @@ -186,8 +275,12 @@ function Test-CIPPAccess { if (@('admin', 'superadmin') -contains $BaseRole.Name) { return $true } else { + $swTenantsLoad = [System.Diagnostics.Stopwatch]::StartNew() $Tenants = Get-Tenants -IncludeErrors + $swTenantsLoad.Stop() + $AccessTimings['LoadTenants'] = $swTenantsLoad.Elapsed.TotalMilliseconds $PermissionsFound = $false + $swRolePerms = [System.Diagnostics.Stopwatch]::StartNew() $PermissionSet = foreach ($CustomRole in $CustomRoles) { try { Get-CIPPRolePermissions -Role $CustomRole @@ -197,9 +290,12 @@ function Test-CIPPAccess { continue } } + $swRolePerms.Stop() + $AccessTimings['GetRolePermissions'] = $swRolePerms.Elapsed.TotalMilliseconds if ($PermissionsFound) { if ($TenantList.IsPresent) { + $swTenantList = [System.Diagnostics.Stopwatch]::StartNew() $LimitedTenantList = foreach ($Permission in $PermissionSet) { if ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or $Permission.AllowedTenants -contains 'AllTenants') -and (($Permission.BlockedTenants | Measure-Object).Count -eq 0)) { @('AllTenants') @@ -239,11 +335,31 @@ function Test-CIPPAccess { $ExpandedAllowedTenants | Where-Object { $ExpandedBlockedTenants -notcontains $_ } } } - return $LimitedTenantList + $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) } $TenantAllowed = $false $APIAllowed = $false + $swPermissionEval = [System.Diagnostics.Stopwatch]::StartNew() foreach ($Role in $PermissionSet) { foreach ($Perm in $Role.Permissions) { if ($Perm -match $APIRole) { @@ -256,12 +372,14 @@ function Test-CIPPAccess { } if ($APIAllowed) { - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Query.tenantId ?? $Request.Body.tenantId ?? $Request.Body.tenantId.value ?? $env:TenantID + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId.value ?? $Request.Body.tenantId ?? $env:TenantID # Check tenant level access if (($Role.BlockedTenants | Measure-Object).Count -eq 0 -and $Role.AllowedTenants -contains 'AllTenants') { $TenantAllowed = $true - } elseif ($TenantFilter -eq 'AllTenants') { + } elseif ($TenantFilter -eq 'AllTenants' -and $ApiRole -match 'Write$') { $TenantAllowed = $false + } elseif ($TenantFilter -eq 'AllTenants' -and $ApiRole -match 'Read$') { + $TenantAllowed = $true } else { $Tenant = ($Tenants | Where-Object { $TenantFilter -eq $_.customerId -or $TenantFilter -eq $_.defaultDomainName }).customerId @@ -312,11 +430,13 @@ function Test-CIPPAccess { } } } + $swPermissionEval.Stop() + $AccessTimings['EvaluatePermissions'] = $swPermissionEval.Elapsed.TotalMilliseconds if (!$APIAllowed) { throw "Access to this CIPP API endpoint is not allowed, you do not have the required permission: $APIRole" } - if (!$TenantAllowed -and $Help.Functionality -notmatch 'AnyTenant') { + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { throw 'Access to this tenant is not allowed' } else { return $true @@ -328,12 +448,11 @@ function Test-CIPPAccess { } return $true if ($APIAllowed) { - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId ?? $env:TenantID + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId.value ?? $Request.Body.tenantId ?? $env:TenantID # Check tenant level access if (($Role.BlockedTenants | Measure-Object).Count -eq 0 -and $Role.AllowedTenants -contains 'AllTenants') { $TenantAllowed = $true } elseif ($TenantFilter -eq 'AllTenants') { - $TenantAllowed = $false } else { $Tenant = ($Tenants | Where-Object { $TenantFilter -eq $_.customerId -or $TenantFilter -eq $_.defaultDomainName }).customerId @@ -355,12 +474,12 @@ function Test-CIPPAccess { } } - if (!$TenantAllowed -and $Help.Functionality -notmatch 'AnyTenant') { + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { if (!$APIAllowed) { throw "Access to this CIPP API endpoint is not allowed, you do not have the required permission: $APIRole" } - if (!$TenantAllowed -and $Help.Functionality -notmatch 'AnyTenant') { + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { Write-Information "Tenant not allowed: $TenantFilter" throw 'Access to this tenant is not allowed' @@ -376,10 +495,22 @@ function Test-CIPPAccess { } return $true } + $swUserBranch.Stop() + $AccessTimings['UserBranch'] = $swUserBranch.Elapsed.TotalMilliseconds } if ($TenantList.IsPresent) { + $AccessTotalSw.Stop() + $AccessTimings['Total'] = $AccessTotalSw.Elapsed.TotalMilliseconds + $AccessTimingsRounded = [ordered]@{} + foreach ($Key in ($AccessTimings.Keys | Sort-Object)) { $AccessTimingsRounded[$Key] = [math]::Round($AccessTimings[$Key], 2) } + Write-Debug "#### Access Timings #### $($AccessTimingsRounded | ConvertTo-Json -Compress)" return @('AllTenants') } + $AccessTotalSw.Stop() + $AccessTimings['Total'] = $AccessTotalSw.Elapsed.TotalMilliseconds + $AccessTimingsRounded = [ordered]@{} + foreach ($Key in ($AccessTimings.Keys | Sort-Object)) { $AccessTimingsRounded[$Key] = [math]::Round($AccessTimings[$Key], 2) } + Write-Debug "#### Access Timings #### $($AccessTimingsRounded | ConvertTo-Json -Compress)" return $true } diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 index d5293966cf77..82fc925e0687 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 @@ -19,48 +19,115 @@ function Test-CIPPAccessUserRole { param( $User ) + # Initialize per-call profiling + $UserRoleTimings = @{} + $UserRoleTotalSw = [System.Diagnostics.Stopwatch]::StartNew() $Roles = @() - $Table = Get-CippTable -TableName cacheAccessUserRoles - $Filter = "PartitionKey eq 'AccessRole' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToString('yyyy-MM-ddTHH:mm:ss'))'" - $UserRole = Get-CIPPAzDataTableEntity @Table -Filter $Filter - if ($UserRole) { - Write-Information "Found cached user role for $($User.userDetails)" - $Roles = $UserRole.Role | ConvertFrom-Json + + # Check AsyncLocal cache first (per-request cache) + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value -and $script:CippUserRolesStorage.Value.ContainsKey($User.userDetails)) { + $Roles = $script:CippUserRolesStorage.Value[$User.userDetails] } else { + # Check table storage cache (persistent cache) try { - $uri = "https://graph.microsoft.com/beta/users/$($User.userDetails)/transitiveMemberOf" - $Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' } - if ($Memberships) { - Write-Information "Found user roles for $($User.userDetails)" - } else { - Write-Information "No user roles found for $($User.userDetails)" - } + $swTableLookup = [System.Diagnostics.Stopwatch]::StartNew() + $Table = Get-CippTable -TableName cacheAccessUserRoles + $Filter = "PartitionKey eq 'AccessUser' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))'" + $UserRole = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $swTableLookup.Stop() + $UserRoleTimings['TableLookup'] = $swTableLookup.Elapsed.TotalMilliseconds } catch { - Write-Information "Could not get user roles for $($User.userDetails). $($_.Exception.Message)" - return $User + Write-Information "Could not access cached user roles table. $($_.Exception.Message)" + $UserRole = $null } + if ($UserRole) { + Write-Information "Found cached user role for $($User.userDetails)" + $Roles = $UserRole.Role | ConvertFrom-Json + + # Store in AsyncLocal cache for this request + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles + } + } else { + try { + $swGraphMemberships = [System.Diagnostics.Stopwatch]::StartNew() + $uri = "https://graph.microsoft.com/beta/users/$($User.userDetails)/transitiveMemberOf" + $Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true -AsApp $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' } + $swGraphMemberships.Stop() + $UserRoleTimings['GraphMemberships'] = $swGraphMemberships.Elapsed.TotalMilliseconds + if ($Memberships) { + Write-Information "Found group memberships for $($User.userDetails)" + } else { + Write-Information "No group memberships found for $($User.userDetails)" + } + } catch { + Write-Information "Could not get user roles for $($User.userDetails). $($_.Exception.Message)" + $UserRoleTotalSw.Stop() + $UserRoleTimings['Total'] = $UserRoleTotalSw.Elapsed.TotalMilliseconds + $timingsRounded = [ordered]@{} + foreach ($Key in ($UserRoleTimings.Keys | Sort-Object)) { $timingsRounded[$Key] = [math]::Round($UserRoleTimings[$Key], 2) } + Write-Debug "#### UserRole Timings #### $($timingsRounded | ConvertTo-Json -Compress)" + return $User + } + + $swAccessGroups = [System.Diagnostics.Stopwatch]::StartNew() + $AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups + $AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable -Filter "PartitionKey eq 'AccessRoleGroups'" + $swAccessGroups.Stop() + $UserRoleTimings['AccessGroupsFetch'] = $swAccessGroups.Elapsed.TotalMilliseconds - $AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups - $AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable + $swCustomRoles = [System.Diagnostics.Stopwatch]::StartNew() + $CustomRolesTable = Get-CippTable -TableName CustomRoles + $CustomRoles = Get-CIPPAzDataTableEntity @CustomRolesTable -Filter "PartitionKey eq 'CustomRoles'" + $swCustomRoles.Stop() + $UserRoleTimings['CustomRolesFetch'] = $swCustomRoles.Elapsed.TotalMilliseconds + $BaseRoles = @('superadmin', 'admin', 'editor', 'readonly') - $Roles = foreach ($AccessGroup in $AccessGroups) { - if ($Memberships.id -contains $AccessGroup.GroupId) { - $AccessGroup.RowKey + $swDeriveRoles = [System.Diagnostics.Stopwatch]::StartNew() + $Roles = foreach ($AccessGroup in $AccessGroups) { + if ($Memberships.id -contains $AccessGroup.GroupId -and ($CustomRoles.RowKey -contains $AccessGroup.RowKey -or $BaseRoles -contains $AccessGroup.RowKey)) { + $AccessGroup.RowKey + } + } + $swDeriveRoles.Stop() + $UserRoleTimings['DeriveRoles'] = $swDeriveRoles.Elapsed.TotalMilliseconds + + $Roles = @($Roles) + @($User.userRoles) + + if ($Roles) { + Write-Information "Roles determined for $($User.userDetails): $($Roles -join ', ')" } - } - $Roles = @($Roles) + @($User.userRoles) + if (($Roles | Measure-Object).Count -gt 2) { + try { + $swCacheWrite = [System.Diagnostics.Stopwatch]::StartNew() + $UserRole = [PSCustomObject]@{ + PartitionKey = 'AccessUser' + RowKey = [string]$User.userDetails + Role = [string](ConvertTo-Json -Compress -InputObject $Roles) + } + Add-CIPPAzDataTableEntity @Table -Entity $UserRole -Force + $swCacheWrite.Stop() + $UserRoleTimings['TableWrite'] = $swCacheWrite.Elapsed.TotalMilliseconds + } catch { + Write-Information "Could not cache user roles for $($User.userDetails). $($_.Exception.Message)" + } + } - if (($Roles | Measure-Object).Count -gt 0) { - $UserRole = [PSCustomObject]@{ - PartitionKey = 'AccessUser' - RowKey = [string]$User.userDetails - Role = [string](ConvertTo-Json -Compress -InputObject $Roles) + # Store in AsyncLocal cache for this request + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles } - Add-CIPPAzDataTableEntity @Table -Entity $UserRole -Force } } $User.userRoles = $Roles + # Log timings summary + $UserRoleTotalSw.Stop() + $UserRoleTimings['Total'] = $UserRoleTotalSw.Elapsed.TotalMilliseconds + $timingsRounded = [ordered]@{} + foreach ($Key in ($UserRoleTimings.Keys | Sort-Object)) { $timingsRounded[$Key] = [math]::Round($UserRoleTimings[$Key], 2) } + Write-Debug "#### UserRole Timings #### $($timingsRounded | ConvertTo-Json -Compress)" + return $User } diff --git a/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 b/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 index 747b754a352a..b2413f38f526 100644 --- a/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 +++ b/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 @@ -1,7 +1,7 @@ function Invoke-ListCippQueue { <# .FUNCTIONALITY - Entrypoint + Entrypoint,AnyTenant .ROLE CIPP.Core.Read #> diff --git a/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 b/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 index 33c48d2adff4..928c6e06285d 100644 --- a/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 +++ b/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 @@ -8,7 +8,8 @@ function Set-CippQueueTask { [string]$TaskId = (New-Guid).Guid.ToString(), [string]$Name, [ValidateSet('Queued', 'Running', 'Completed', 'Failed')] - [string]$Status = 'Queued' + [string]$Status = 'Queued', + [string]$Message ) $CippQueueTasks = Get-CippTable -TableName CippQueueTasks @@ -20,8 +21,11 @@ function Set-CippQueueTask { Name = $Name Status = $Status } + if ($Message) { + $QueueTaskEntry.Message = $Message + } $CippQueueTasks.Entity = $QueueTaskEntry Add-CIPPAzDataTableEntity @CippQueueTasks -Force return $QueueTaskEntry -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Clear-CippDurables.ps1 b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 index 44c77f74e82c..972f3d8fc853 100644 --- a/Modules/CIPPCore/Public/Clear-CippDurables.ps1 +++ b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 @@ -1,57 +1,36 @@ function Clear-CippDurables { [CmdletBinding(SupportsShouldProcess = $true)] - Param() + param() # Collect info - $StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage $FunctionName = $env:WEBSITE_SITE_NAME -replace '-', '' # Get orchestrators $InstancesTable = Get-CippTable -TableName ('{0}Instances' -f $FunctionName) $HistoryTable = Get-CippTable -TableName ('{0}History' -f $FunctionName) + $QueueTable = Get-CippTable -TableName 'CippQueue' + $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' + + Remove-AzDataTable @InstancesTable + Remove-AzDataTable @HistoryTable + Remove-AzDataTable @QueueTable + Remove-AzDataTable @CippQueueTasks - $Queues = Get-AzStorageQueue -Context $StorageContext -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount, QueueClient + $Queues = Get-CIPPAzStorageQueue -Name ('{0}*' -f $FunctionName) $RunningQueues = $Queues | Where-Object { $_.ApproximateMessageCount -gt 0 } foreach ($Queue in $RunningQueues) { Write-Information "- Removing queue: $($Queue.Name), message count: $($Queue.ApproximateMessageCount)" if ($PSCmdlet.ShouldProcess($Queue.Name, 'Clear Queue')) { - $Queue.QueueClient.ClearMessagesAsync() + $null = Clear-CIPPAzStorageQueue -Name $Queue.Name } } - Remove-AzDataTable @InstancesTable - Remove-AzDataTable @HistoryTable $BlobContainer = '{0}-largemessages' -f $FunctionName - if (Get-AzStorageContainer -Name $BlobContainer -Context $StorageContext -ErrorAction SilentlyContinue) { + $containerMatch = Get-CIPPAzStorageContainer -Name $BlobContainer | Where-Object { $_.Name -eq $BlobContainer } + if ($containerMatch) { Write-Information "- Removing blob container: $BlobContainer" if ($PSCmdlet.ShouldProcess($BlobContainer, 'Remove Blob Container')) { - Remove-AzStorageContainer -Name $BlobContainer -Context $StorageContext -Confirm:$false -Force - } - } - - $QueueTable = Get-CippTable -TableName 'CippQueue' - $CippQueue = Invoke-ListCippQueue - $QueueEntities = foreach ($Queue in $CippQueue) { - if ($Queue.Status -eq 'Running') { - $Queue.TotalTasks = $Queue.CompletedTasks - $Queue | Select-Object -Property PartitionKey, RowKey, TotalTasks - } - } - if (($QueueEntities | Measure-Object).Count -gt 0) { - if ($PSCmdlet.ShouldProcess('Queues', 'Mark Failed')) { - Update-AzDataTableEntity -Force @QueueTable -Entity $QueueEntities - } - } - - $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' - $RunningTasks = Get-CIPPAzDataTableEntity @CippQueueTasks -Filter "PartitionKey eq 'Task' and Status eq 'Running'" -Property RowKey, PartitionKey, Status - if (($RunningTasks | Measure-Object).Count -gt 0) { - if ($PSCmdlet.ShouldProcess('Tasks', 'Mark Failed')) { - $UpdatedTasks = foreach ($Task in $RunningTasks) { - $Task.Status = 'Failed' - $Task - } - Update-AzDataTableEntity -Force @CippQueueTasks -Entity $UpdatedTasks + $null = Remove-CIPPAzStorageContainer -Name $BlobContainer } } diff --git a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 index da8f54359689..20f5464d1bfa 100644 --- a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 +++ b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 @@ -28,6 +28,8 @@ function Compare-CIPPIntuneObject { 'qualityUpdatesWillBeRolledBack', 'qualityUpdatesPauseStartDate', 'featureUpdatesPauseStartDate' + 'wslDistributions', + 'lastSuccessfulSyncDateTime' ) $excludeProps = $defaultExcludeProperties + $ExcludeProperties @@ -56,6 +58,13 @@ function Compare-CIPPIntuneObject { [int]$MaxDepth = 20 ) + # Check for arrays at the start of every recursive call - this catches arrays at any nesting level + $isObj1Array = $Object1 -is [Array] -or $Object1 -is [System.Collections.IList] + $isObj2Array = $Object2 -is [Array] -or $Object2 -is [System.Collections.IList] + if ($isObj1Array -or $isObj2Array) { + return + } + if ($Depth -ge $MaxDepth) { $result.Add([PSCustomObject]@{ Property = $PropertyPath @@ -151,34 +160,78 @@ function Compare-CIPPIntuneObject { } } } elseif ($Object1 -is [PSCustomObject] -or $Object1.PSObject.Properties.Count -gt 0) { - $allPropertyNames = @( - $Object1.PSObject.Properties | Select-Object -ExpandProperty Name - $Object2.PSObject.Properties | Select-Object -ExpandProperty Name - ) | Select-Object -Unique + # Skip comparison if either object is an array - arrays can't have custom properties set + $isObj1Array = $Object1 -is [Array] -or $Object1 -is [System.Collections.IList] + $isObj2Array = $Object2 -is [Array] -or $Object2 -is [System.Collections.IList] + if ($isObj1Array -or $isObj2Array) { + return + } + + # Safely get property names - ensure objects are not arrays before accessing PSObject.Properties + $allPropertyNames = @() + try { + if (-not ($Object1 -is [Array] -or $Object1 -is [System.Collections.IList])) { + $allPropertyNames += $Object1.PSObject.Properties | Select-Object -ExpandProperty Name + } + if (-not ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + $allPropertyNames += $Object2.PSObject.Properties | Select-Object -ExpandProperty Name + } + $allPropertyNames = $allPropertyNames | Select-Object -Unique + } catch { + return + } foreach ($propName in $allPropertyNames) { if (ShouldSkipProperty -PropertyName $propName) { continue } $newPath = if ($PropertyPath) { "$PropertyPath.$propName" } else { $propName } - $prop1Exists = $Object1.PSObject.Properties.Name -contains $propName - $prop2Exists = $Object2.PSObject.Properties.Name -contains $propName + # Safely check if properties exist - ensure objects are not arrays + $prop1Exists = $false + $prop2Exists = $false + try { + if (-not ($Object1 -is [Array] -or $Object1 -is [System.Collections.IList])) { + $prop1Exists = $Object1.PSObject.Properties.Name -contains $propName + } + if (-not ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + $prop2Exists = $Object2.PSObject.Properties.Name -contains $propName + } + } catch { + continue + } if ($prop1Exists -and $prop2Exists) { - if ($Object1.$propName -and $Object2.$propName) { - Compare-ObjectsRecursively -Object1 $Object1.$propName -Object2 $Object2.$propName -PropertyPath $newPath -Depth ($Depth + 1) -MaxDepth $MaxDepth + try { + # Double-check arrays before accessing properties + if (($Object1 -is [Array] -or $Object1 -is [System.Collections.IList]) -or + ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + continue + } + if ($Object1.$propName -and $Object2.$propName) { + Compare-ObjectsRecursively -Object1 $Object1.$propName -Object2 $Object2.$propName -PropertyPath $newPath -Depth ($Depth + 1) -MaxDepth $MaxDepth + } + } catch { + throw } } elseif ($prop1Exists) { - $result.Add([PSCustomObject]@{ - Property = $newPath - ExpectedValue = $Object1.$propName - ReceivedValue = '' - }) + try { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = $Object1.$propName + ReceivedValue = '' + }) + } catch { + throw + } } else { - $result.Add([PSCustomObject]@{ - Property = $newPath - ExpectedValue = '' - ReceivedValue = $Object2.$propName - }) + try { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = '' + ReceivedValue = $Object2.$propName + }) + } catch { + throw + } } } } else { diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 index 5474a703529d..09eabf880be8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 @@ -159,7 +159,7 @@ function Push-BECRun { NewUsers = @($NewUsers) MFADevices = @($MFADevices) ChangedPasswords = @($PasswordChanges) - ExtractedAt = (Get-Date).ToString('s') + ExtractedAt = (Get-Date) ExtractResult = $ExtractResult } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 index 8834f1619550..0cc163058e14 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 @@ -45,9 +45,9 @@ function Push-BPACollectData { uri = $field.URL tenantid = $TenantName.defaultDomainName } - if ($Field.parameters.psobject.properties.name) { + if ($Field.Parameters.PSObject.properties.name) { $field.Parameters | ForEach-Object { - $paramsField[$_.psobject.properties.name] = $_.psobject.properties.value + $paramsField[$_.PSObject.properties.name] = $_.PSObject.properties.value } } $FieldInfo = New-GraphGetRequest @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields @@ -55,28 +55,28 @@ function Push-BPACollectData { 'Exchange' { Write-Host "Trying to execute $($field.Command) for $($TenantName.displayName) with GUID $($TenantName.customerId)" if ($field.Command -notlike 'get-*') { - Write-LogMessage -API 'BPA' -tenant $tenant -message 'The BPA only supports get- exchange commands. A set or update command was used.' -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message 'The BPA only supports get- exchange commands. A set or update command was used.' -sev Error break } else { $paramsField = @{ tenantid = $TenantName.defaultDomainName cmdlet = $field.Command } - if ($Field.Parameters) { $paramsfield.'cmdparams' = $field.parameters } + if ($Field.Parameters) { $paramsField.'cmdParams' = $field.parameters } $FieldInfo = New-ExoRequest @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields } } 'CIPPFunction' { if ($field.Command -notlike 'get-CIPP*') { - Write-LogMessage -API 'BPA' -tenant $tenant -message 'The BPA only supports get-CIPP commands. A set or update command was used, or a command that is not allowed.' -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message 'The BPA only supports get-CIPP commands. A set or update command was used, or a command that is not allowed.' -sev Error break } $paramsField = @{ TenantFilter = $TenantName.defaultDomainName } - if ($field.parameters.psobject.properties.name) { + if ($field.Parameters.PSObject.properties.name) { $field.Parameters | ForEach-Object { - $paramsField[$_.psobject.properties.name] = $_.psobject.properties.value + $paramsField[$_.PSObject.properties.name] = $_.PSObject.properties.value } } $FieldInfo = & $field.Command @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields @@ -84,15 +84,15 @@ function Push-BPACollectData { } } catch { Write-Information "Error getting $($field.Name) in $($field.api) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" - Write-LogMessage -API 'BPA' -tenant $tenant -message "Error getting $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error - $fieldinfo = 'FAILED' + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error getting $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + $FieldInfo = 'FAILED' $field.StoreAs = 'string' } try { switch -Wildcard ($field.StoreAs) { '*bool' { if ($field.ExtractFields.Count -gt 1) { - Write-LogMessage -API 'BPA' -tenant $tenant -message "The BPA only supports 1 field for a bool. $($field.ExtractFields.Count) fields were specified." -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "The BPA only supports 1 field for a bool. $($field.ExtractFields.Count) fields were specified." -sev Error break } if ($null -eq $FieldInfo.$($field.ExtractFields)) { $FieldInfo = $false } @@ -100,7 +100,7 @@ function Push-BPACollectData { $Result.Add($field.Name, [bool]$FieldInfo.$($field.ExtractFields)) } 'JSON' { - if ($FieldInfo -eq $null) { $JsonString = '{}' } else { $JsonString = (ConvertTo-Json -Depth 15 -InputObject $FieldInfo -Compress) } + if ($null -eq $FieldInfo) { $JsonString = '{}' } else { $JsonString = (ConvertTo-Json -Depth 15 -InputObject $FieldInfo -Compress) } Write-Host "Adding $($field.Name) to table with value $JsonString" $Result.Add($field.Name, $JSONString) } @@ -112,7 +112,7 @@ function Push-BPACollectData { } } } catch { - Write-LogMessage -API 'BPA' -tenant $tenant -message "Error storing $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error storing $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) $Result.Add($field.Name, 'FAILED') } @@ -122,7 +122,7 @@ function Push-BPACollectData { try { Add-CIPPAzDataTableEntity @Table -Entity $Result -Force } catch { - Write-LogMessage -API 'BPA' -tenant $tenant -message "Error getting saving data for $($template.Name) - $($TenantName.customerId). Error: $($_.Exception.Message)" -LogData (Get-CippException -Exception $_) -sev Error + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error getting saving data for $($template.Name) - $($TenantName.customerId). Error: $($_.Exception.Message)" -LogData (Get-CippException -Exception $_) -sev Error } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 index 08cf028b8704..ed24471113d9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 @@ -145,7 +145,7 @@ function Push-DomainAnalyserDomain { try { $DMARCPolicy = Read-DmarcPolicy -Domain $Domain -ErrorAction Stop - If ([string]::IsNullOrEmpty($DMARCPolicy.Record)) { + if ([string]::IsNullOrEmpty($DMARCPolicy.Record)) { $Result.DMARCPresent = $false $ScoreExplanation.Add('No DMARC Records Found') | Out-Null } else { @@ -320,11 +320,8 @@ function Push-DomainAnalyserDomain { $DomainTable.Entity = $DomainObject $DomainTable.Force = $true Add-CIPPAzDataTableEntity @DomainTable -Entity $DomainObject -Force - - # Final Write to Output - Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message "DNS Analyser Finished For $Domain" -sev Info } catch { Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message "Error saving domain $Domain to table " -sev Error -LogData (Get-CippException -Exception $_) } - return $null + return $Result } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 index d628b652d4bb..43444b4a4101 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 @@ -1,8 +1,8 @@ function Push-DomainAnalyserTenant { <# - .FUNCTIONALITY - Entrypoint - #> + .FUNCTIONALITY + Entrypoint + #> param($Item) $Tenant = Get-Tenants -IncludeAll | Where-Object { $_.customerId -eq $Item.customerId } | Select-Object -First 1 @@ -13,7 +13,7 @@ function Push-DomainAnalyserTenant { $CleanupRows = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter $CleanupCount = ($CleanupRows | Measure-Object).Count if ($CleanupCount -gt 0) { - Write-LogMessage -API 'DomainAnalyser' -tenant $Tenant.defaultDomainName -message "Cleaning up $CleanupCount domain(s) for excluded tenant" -sev Info + Write-LogMessage -API 'DomainAnalyser' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Cleaning up $CleanupCount domain(s) for excluded tenant" -sev Info Remove-AzDataTableEntity -Force @DomainTable -Entity $CleanupRows } } elseif ($Tenant.GraphErrorCount -gt 50) { @@ -23,6 +23,7 @@ function Push-DomainAnalyserTenant { # Remove domains that are not wanted, and used for cloud signature services. Same exclusions also found in Invoke-CIPPStandardAddDKIM $ExclusionDomains = @( '*.microsoftonline.com' + '*.mail.onmicrosoft.com' '*.exclaimer.cloud' '*.excl.cloud' '*.codetwo.online' @@ -32,6 +33,7 @@ function Push-DomainAnalyserTenant { '*.teams.dstny.com' '*.msteams.8x8.com' '*.ucconnect.co.uk' + '*.teams-sbc.dk' ) $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $Tenant.customerId | Where-Object { $_.isVerified -eq $true } | ForEach-Object { $Domain = $_ @@ -59,8 +61,6 @@ function Push-DomainAnalyserTenant { } } - Write-Information ($TenantDomains | ConvertTo-Json -Depth 10) - $DomainCount = ($TenantDomains | Measure-Object).Count if ($DomainCount -gt 0) { Write-Host "############# $DomainCount tenant Domains" @@ -117,21 +117,26 @@ function Push-DomainAnalyserTenant { TenantGUID = $Tenant.customerId } OrchestratorName = "DomainAnalyser_$($Tenant.defaultDomainName)" - SkipLog = $true + PostExecution = @{ + FunctionName = 'GetDomainAnalyserResults' + Parameters = @{ + Tenant = $Tenant + } + } } Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) Write-Host "Started analysis for $DomainCount tenant domains in $($Tenant.defaultDomainName)" - Write-LogMessage -API 'DomainAnalyser' -tenant $Tenant.defaultDomainName -message "Started analysis for $DomainCount tenant domains" -sev Info + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message "Started analysis for $DomainCount tenant domains" -sev Info } catch { - Write-LogMessage -API 'DomainAnalyser' -message 'Domain Analyser GetTenantDomains error' -sev 'Error' -LogData (Get-CippException -Exception $_) + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'Domain Analyser GetTenantDomains error' -sev 'Error' -LogData (Get-CippException -Exception $_) } } catch { - Write-LogMessage -API 'DomainAnalyser' -message 'GetTenantDomains loop error' -sev 'Error' -LogData (Get-CippException -Exception $_) + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'GetTenantDomains loop error' -sev 'Error' -LogData (Get-CippException -Exception $_) } } } catch { #Write-Host (Get-CippException -Exception $_ | ConvertTo-Json) - Write-LogMessage -API 'DomainAnalyser' -tenant $tenant.defaultDomainName -message 'DNS Analyser GraphGetRequest' -LogData (Get-CippException -Exception $_) -sev Error + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'DNS Analyser GraphGetRequest' -LogData (Get-CippException -Exception $_) -sev Error } } return $null diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 new file mode 100644 index 000000000000..9a98b49ceb06 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 @@ -0,0 +1,10 @@ +function Push-GetDomainAnalyserResults { + [CmdletBinding()] + param ( + $Item + ) + + $Tenant = $Item.Parameters.Tenant + Write-LogMessage -API 'DomainAnalyser' -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -message "Domain Analyser completed for tenant $($Tenant.defaultDomainName)" -sev Info -LogData ($Item.Results | Select-Object Domain, @{Name = 'Score'; Expression = { "$($_.Score)/$($_.MaximumScore)" } }) + return +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 index 180c7c06fda9..3f7ceb6009e5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 @@ -25,6 +25,7 @@ function Push-TableCleanupTask { Write-Information "Table $Table not found" } } + Write-Information "#### $($Type) task complete for $($Item.TableName)" } elseif ($Type -eq 'CleanupRule') { if ($Item.Where) { $Where = [scriptblock]::Create($Item.Where) @@ -35,6 +36,8 @@ function Push-TableCleanupTask { $DataTableProps = $Item.DataTableProps | ConvertTo-Json | ConvertFrom-Json -AsHashtable $Table = Get-CIPPTable -tablename $Item.TableName $CleanupCompleted = $false + + $RowsRemoved = 0 do { Write-Information "Fetching entities from $($Item.TableName) with filter: $($DataTableProps.Filter)" try { @@ -43,6 +46,7 @@ function Push-TableCleanupTask { Write-Information "Removing $($Entities.Count) entities from $($Item.TableName)" try { Remove-AzDataTableEntity @Table -Entity $Entities -Force + $RowsRemoved += $Entities.Count if ($DataTableProps.First -and $Entities.Count -lt $DataTableProps.First) { $CleanupCompleted = $true } @@ -59,9 +63,10 @@ function Push-TableCleanupTask { $CleanupCompleted = $true } } while (!$CleanupCompleted) + Write-Information "#### $($Type) task complete for $($Item.TableName). Rows removed: $RowsRemoved" } else { Write-Warning "Unknown task type: $Type" } } - Write-Information "#### $($Type) task complete" + } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 new file mode 100644 index 000000000000..4dbb7b000423 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 @@ -0,0 +1,294 @@ +function Push-CIPPDBCacheData { + <# + .SYNOPSIS + Activity function to collect and cache all data for a single tenant + + .DESCRIPTION + Calls all collection functions sequentially, storing data immediately after each collection + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + Write-Host "Starting cache collection for tenant: $($Item.TenantFilter) - Queue: $($Item.QueueName) (ID: $($Item.QueueId))" + $TenantFilter = $Item.TenantFilter + #This collects all data for a tenant and caches it in the CIPP Reporting database. DO NOT ADD PROCESSING OR LOGIC HERE. + #The point of this file is to always be <10 minutes execution time. + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Starting database cache collection for tenant' -sev Info + + # Check tenant capabilities for license-specific features + $IntuneCapable = Test-CIPPStandardLicense -StandardName 'IntuneLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') -SkipLog + $ConditionalAccessCapable = Test-CIPPStandardLicense -StandardName 'ConditionalAccessLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') -SkipLog + $AzureADPremiumP2Capable = Test-CIPPStandardLicense -StandardName 'AzureADPremiumP2LicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "License capabilities - Intune: $IntuneCapable, Conditional Access: $ConditionalAccessCapable, Azure AD Premium P2: $AzureADPremiumP2Capable" -sev Info + + #region All Licenses - Basic tenant data collection + Write-Host 'Getting cache for Users' + try { Set-CIPPDBCacheUsers -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Users collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Groups' + try { Set-CIPPDBCacheGroups -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Groups collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Guests' + try { Set-CIPPDBCacheGuests -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Guests collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ServicePrincipals' + try { Set-CIPPDBCacheServicePrincipals -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ServicePrincipals collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Apps' + try { Set-CIPPDBCacheApps -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Apps collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Devices' + try { Set-CIPPDBCacheDevices -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Devices collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Organization' + try { Set-CIPPDBCacheOrganization -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Organization collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Roles' + try { Set-CIPPDBCacheRoles -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Roles collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AdminConsentRequestPolicy' + try { Set-CIPPDBCacheAdminConsentRequestPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AdminConsentRequestPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AuthorizationPolicy' + try { Set-CIPPDBCacheAuthorizationPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AuthorizationPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AuthenticationMethodsPolicy' + try { Set-CIPPDBCacheAuthenticationMethodsPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AuthenticationMethodsPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DeviceSettings' + try { Set-CIPPDBCacheDeviceSettings -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DeviceSettings collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DirectoryRecommendations' + try { Set-CIPPDBCacheDirectoryRecommendations -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DirectoryRecommendations collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for CrossTenantAccessPolicy' + try { Set-CIPPDBCacheCrossTenantAccessPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "CrossTenantAccessPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DefaultAppManagementPolicy' + try { Set-CIPPDBCacheDefaultAppManagementPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DefaultAppManagementPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Settings' + try { Set-CIPPDBCacheSettings -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Settings collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for SecureScore' + try { Set-CIPPDBCacheSecureScore -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SecureScore collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for PIMSettings' + try { Set-CIPPDBCachePIMSettings -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "PIMSettings collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Domains' + try { Set-CIPPDBCacheDomains -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Domains collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RoleEligibilitySchedules' + try { Set-CIPPDBCacheRoleEligibilitySchedules -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RoleEligibilitySchedules collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RoleManagementPolicies' + try { Set-CIPPDBCacheRoleManagementPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RoleManagementPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RoleAssignmentScheduleInstances' + try { Set-CIPPDBCacheRoleAssignmentScheduleInstances -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RoleAssignmentScheduleInstances collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for B2BManagementPolicy' + try { Set-CIPPDBCacheB2BManagementPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "B2BManagementPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AuthenticationFlowsPolicy' + try { Set-CIPPDBCacheAuthenticationFlowsPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AuthenticationFlowsPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DeviceRegistrationPolicy' + try { Set-CIPPDBCacheDeviceRegistrationPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DeviceRegistrationPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for CredentialUserRegistrationDetails' + try { Set-CIPPDBCacheCredentialUserRegistrationDetails -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "CredentialUserRegistrationDetails collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for UserRegistrationDetails' + try { Set-CIPPDBCacheUserRegistrationDetails -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "UserRegistrationDetails collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for OAuth2PermissionGrants' + try { Set-CIPPDBCacheOAuth2PermissionGrants -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OAuth2PermissionGrants collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AppRoleAssignments' + try { Set-CIPPDBCacheAppRoleAssignments -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AppRoleAssignments collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoAntiPhishPolicies' + try { Set-CIPPDBCacheExoAntiPhishPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoAntiPhishPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoMalwareFilterPolicies' + try { Set-CIPPDBCacheExoMalwareFilterPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoMalwareFilterPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoSafeLinksPolicies' + try { Set-CIPPDBCacheExoSafeLinksPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoSafeLinksPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoSafeAttachmentPolicies' + try { Set-CIPPDBCacheExoSafeAttachmentPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoSafeAttachmentPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoTransportRules' + try { Set-CIPPDBCacheExoTransportRules -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoTransportRules collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoDkimSigningConfig' + try { Set-CIPPDBCacheExoDkimSigningConfig -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoDkimSigningConfig collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoOrganizationConfig' + try { Set-CIPPDBCacheExoOrganizationConfig -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoOrganizationConfig collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoAcceptedDomains' + try { Set-CIPPDBCacheExoAcceptedDomains -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoAcceptedDomains collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for License Overview' + try { Set-CIPPDBCacheLicenseOverview -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "License Overview collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for MFA State' + try { Set-CIPPDBCacheMFAState -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "MFA State collection failed: $($_.Exception.Message)" -sev Error + } + #endregion All Licenses + + #region Conditional Access Licensed - Azure AD Premium features + if ($ConditionalAccessCapable) { + Write-Host 'Getting cache for ConditionalAccessPolicies' + try { Set-CIPPDBCacheConditionalAccessPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ConditionalAccessPolicies collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Conditional Access data collection - tenant does not have required license' -sev Info + } + #endregion Conditional Access Licensed + + #region Azure AD Premium P2 - Identity Protection features + if ($AzureADPremiumP2Capable) { + Write-Host 'Getting cache for RiskyUsers' + try { Set-CIPPDBCacheRiskyUsers -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RiskyUsers collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RiskyServicePrincipals' + try { Set-CIPPDBCacheRiskyServicePrincipals -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RiskyServicePrincipals collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ServicePrincipalRiskDetections' + try { Set-CIPPDBCacheServicePrincipalRiskDetections -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ServicePrincipalRiskDetections collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RiskDetections' + try { Set-CIPPDBCacheRiskDetections -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RiskDetections collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Azure AD Premium P2 Identity Protection data collection - tenant does not have required license' -sev Info + } + #endregion Azure AD Premium P2 + + #region Intune Licensed - Intune management features + if ($IntuneCapable) { + Write-Host 'Getting cache for ManagedDevices' + try { Set-CIPPDBCacheManagedDevices -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ManagedDevices collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for IntunePolicies' + try { Set-CIPPDBCacheIntunePolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "IntunePolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ManagedDeviceEncryptionStates' + try { Set-CIPPDBCacheManagedDeviceEncryptionStates -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ManagedDeviceEncryptionStates collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for IntuneAppProtectionPolicies' + try { Set-CIPPDBCacheIntuneAppProtectionPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "IntuneAppProtectionPolicies collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Intune data collection - tenant does not have required license' -sev Info + } + #endregion Intune Licensed + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Completed database cache collection for tenant' -sev Info + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to complete database cache collection: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 index 111af213af0e..474ead168783 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 @@ -7,6 +7,12 @@ function Push-ExecScheduledCommand { $item = $Item | ConvertTo-Json -Depth 100 | ConvertFrom-Json Write-Information "We are going to be running a scheduled task: $($Item.TaskInfo | ConvertTo-Json -Depth 10)" + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippScheduledTaskIdStorage) { + $script:CippScheduledTaskIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + $script:CippScheduledTaskIdStorage.Value = $Item.TaskInfo.RowKey + $Table = Get-CippTable -tablename 'ScheduledTasks' $task = $Item.TaskInfo $commandParameters = $Item.Parameters | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable @@ -18,6 +24,60 @@ function Push-ExecScheduledCommand { # We don't need to expand groups here as that's handled in the orchestrator $TenantInfo = Get-Tenants -TenantFilter $Tenant + $CurrentTask = Get-AzDataTableEntity @Table -Filter "PartitionKey eq '$($task.PartitionKey)' and RowKey eq '$($task.RowKey)'" + if (!$CurrentTask) { + Write-Information "The task $($task.Name) for tenant $($task.Tenant) does not exist in the ScheduledTasks table. Exiting." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + if ($CurrentTask.TaskState -eq 'Completed') { + Write-Information "The task $($task.Name) for tenant $($task.Tenant) is already completed. Skipping execution." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + # Task should be 'Pending' (queued by orchestrator) or 'Running' (retry/recovery) + # We accept both to handle edge cases + + # Check for rerun protection - prevent duplicate executions within the recurrence interval + if ($task.Recurrence -and $task.Recurrence -ne '0') { + # Calculate interval in seconds from recurrence string + $IntervalSeconds = switch -Regex ($task.Recurrence) { + '^(\d+)$' { [int64]$matches[1] * 86400 } # Plain number = days + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + if ($IntervalSeconds -gt 0) { + # Round down to nearest 15-minute interval (900 seconds) since that's when orchestrator runs + # This prevents rerun blocking issues due to slight timing variations + $FifteenMinutes = 900 + $AdjustedInterval = [Math]::Floor($IntervalSeconds / $FifteenMinutes) * $FifteenMinutes + + # Ensure we have at least one 15-minute interval + if ($AdjustedInterval -lt $FifteenMinutes) { + $AdjustedInterval = $FifteenMinutes + } + # Use task RowKey as API identifier for rerun cache + $RerunParams = @{ + TenantFilter = $Tenant + Type = 'ScheduledTask' + API = $task.RowKey + Interval = $AdjustedInterval + BaseTime = [int64]$task.ScheduledTime + Headers = $Headers + } + + $IsRerun = Test-CIPPRerun @RerunParams + if ($IsRerun) { + Write-Information "Scheduled task $($task.Name) for tenant $Tenant was recently executed. Skipping to prevent duplicate execution." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + } + } + if ($task.Trigger) { # Extract trigger data from the task and process $Trigger = if (Test-Json -Json $task.Trigger) { $task.Trigger | ConvertFrom-Json } else { $task.Trigger } @@ -59,6 +119,7 @@ function Push-ExecScheduledCommand { TaskState = 'Planned' ScheduledTime = [string]$nextRunUnixTime } + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue return } } @@ -84,6 +145,7 @@ function Push-ExecScheduledCommand { } Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Failed to execute task $($task.Name): The command $($Item.Command) does not exist." -sev Error + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue return } @@ -252,10 +314,15 @@ function Push-ExecScheduledCommand { # Add alert comment if available if ($task.AlertComment) { - $HTML += "

Alert Information

$($task.AlertComment)

" + if ($task.AlertComment -match '%resultcount%') { + $resultCount = if ($Results -is [array]) { $Results.Count } else { 1 } + $task.AlertComment = $task.AlertComment -replace '%resultcount%', "$resultCount" + } + $task.AlertComment = Get-CIPPTextReplacement -Text $task.AlertComment -TenantFilter $Tenant + $HTML += "

Alert Information

$($task.AlertComment)

" } - $title = "$TaskType - $Tenant - $($task.Name)" + $title = "$TaskType - $Tenant - $($task.Name)$(if ($task.Reference) { " - Reference: $($task.Reference)" })" Write-Information 'Scheduler: Sending the results to the target.' Write-Information "The content of results is: $Results" switch -wildcard ($task.PostExecution) { @@ -276,7 +343,7 @@ function Push-ExecScheduledCommand { Write-Information 'Sent the results to the target. Updating the task state.' try { - if ($task.Recurrence -eq '0' -or [string]::IsNullOrEmpty($task.Recurrence) -or $Trigger.ExecutionMode.value -eq 'once') { + if ($task.Recurrence -eq '0' -or [string]::IsNullOrEmpty($task.Recurrence) -or $Trigger.ExecutionMode.value -eq 'once' -or $Trigger.ExecutionMode -eq 'once') { Write-Information 'Recurrence empty or 0. Task is not recurring. Setting task state to completed.' Update-AzDataTableEntity -Force @Table -Entity @{ PartitionKey = $task.PartitionKey @@ -320,4 +387,6 @@ function Push-ExecScheduledCommand { if ($TaskType -ne 'Alert') { Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Successfully executed task: $($task.Name)" -sev Info } + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return 'Task Completed Successfully.' } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 index 562834b46c99..2a9c65d73acb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 @@ -11,16 +11,22 @@ function Push-ListLicensesQueue { $domainName = $Item.defaultDomainName try { Write-Host "Processing $domainName" - $Overview = Get-CIPPLicenseOverview -TenantFilter $domainName + $Licenses = Get-CIPPLicenseOverview -TenantFilter $domainName } catch { - $Overview = [pscustomobject]@{ + $Licenses = [pscustomobject]@{ Tenant = [string]$domainName License = "Could not connect to client: $($_.Exception.Message)" 'PartitionKey' = 'License' - 'RowKey' = "$($domainName)-$((New-Guid).Guid)" + 'RowKey' = "$($domainName)" } } finally { $Table = Get-CIPPTable -TableName cachelicenses + $JSON = ConvertTo-Json -Depth 10 -Compress -InputObject @($Licenses) + $Overview = [pscustomobject]@{ + License = [string]$JSON + 'PartitionKey' = 'License' + 'RowKey' = "$($domainName)" + } Add-CIPPAzDataTableEntity @Table -Entity $Overview -Force | Out-Null } -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 index 0f46c617dd0d..34398c9567bd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 @@ -12,7 +12,7 @@ try { $quarantineMessages = New-ExoRequest -tenantid $domainName -cmdlet 'Get-QuarantineMessage' -cmdParams @{ 'PageSize' = 1000 } | Select-Object -ExcludeProperty *data.type* - $GraphRequest = foreach ($message in $quarantineMessages) { + foreach ($message in $quarantineMessages) { $messageData = @{ QuarantineMessage = [string]($message | ConvertTo-Json -Depth 10 -Compress) RowKey = [string](New-Guid).Guid diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 index 438511222545..bc1d438f1a99 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 @@ -115,6 +115,7 @@ function Push-SchedulerCIPPNotifications { } if ($CurrentStandardsLogs) { + $Data = $CurrentStandardsLogs $JSONContent = New-CIPPAlertTemplate -Data $Data -Format 'json' -InputObject 'table' -CIPPURL $CIPPURL $CurrentStandardsLogs | ConvertTo-Json -Compress Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 index e5d7fe008cbb..bdd3d2d2bf81 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 @@ -12,58 +12,70 @@ function Push-CippDriftManagement { try { $Drift = Get-CIPPDrift -TenantFilter $Item.Tenant if ($Drift.newDeviationsCount -gt 0) { - $Settings = (Get-CIPPTenantAlignment -TenantFilter $Item.Tenant | Where-Object -Property standardType -EQ 'drift') + $Settings = $Drift.driftSettings $email = $Settings.driftAlertEmail $webhook = $Settings.driftAlertWebhook $CippConfigTable = Get-CippTable -tablename Config $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" $CIPPURL = 'https://{0}' -f $CippConfig.Value - $Data = $Drift.currentDeviations | ForEach-Object { - $currentValue = if ($_.receivedValue -and $_.receivedValue.Length -gt 200) { - $_.receivedValue.Substring(0, 200) + '...' + + # Process deviations more efficiently with foreach instead of ForEach-Object + $Data = foreach ($deviation in $Drift.currentDeviations) { + $currentValue = if ($deviation.receivedValue -and $deviation.receivedValue.Length -gt 200) { + $deviation.receivedValue.Substring(0, 200) + '...' } else { - $_.receivedValue + $deviation.receivedValue } [PSCustomObject]@{ - Standard = $_.standardDisplayName ? $_.standardDisplayName : $_.standardName - 'Expected Value' = $_.expectedValue + Standard = $deviation.standardDisplayName ? $deviation.standardDisplayName : $deviation.standardName + 'Expected Value' = $deviation.expectedValue 'Current Value' = $currentValue - Status = $_.status + Status = $deviation.status } } $GenerateEmail = New-CIPPAlertTemplate -format 'html' -data $Data -CIPPURL $CIPPURL -Tenant $Item.Tenant -InputObject 'driftStandard' -AuditLogLink $drift.standardId - $CIPPAlert = @{ - Type = 'email' - Title = $GenerateEmail.title - HTMLContent = $GenerateEmail.htmlcontent - TenantFilter = $Item.Tenant - } - Write-Host 'Going to send the mail' - Send-CIPPAlert @CIPPAlert -altEmail $email - $WebhookData = @{ - Title = $GenerateEmail.title - ActionUrl = $GenerateEmail.ButtonUrl - ActionText = $GenerateEmail.ButtonText - AlertData = $Data - Tenant = $Item.Tenant - } | ConvertTo-Json -Depth 15 -Compress - $CippAlert = @{ - Type = 'webhook' - Title = $GenerateEmail.title - JSONContent = $WebhookData - TenantFilter = $Item.Tenant - } - Write-Host 'Sending Webhook Content' - Send-CIPPAlert @CippAlert -altWebhook $webhook - #Always do PSA. - $CIPPAlert = @{ - Type = 'psa' - Title = $GenerateEmail.title - HTMLContent = $GenerateEmail.htmlcontent - TenantFilter = $Item.Tenant + + # Check if notifications are disabled (default to false if not set) + if (-not $Settings.driftAlertDisableEmail) { + # Send email alert if configured + $CIPPAlert = @{ + Type = 'email' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Write-Information "Sending email alert for tenant $($Item.Tenant)" + Send-CIPPAlert @CIPPAlert -altEmail $email + + # Send webhook alert if configured + $WebhookData = @{ + Title = $GenerateEmail.title + ActionUrl = $GenerateEmail.ButtonUrl + ActionText = $GenerateEmail.ButtonText + AlertData = $Data + Tenant = $Item.Tenant + } | ConvertTo-Json -Depth 5 -Compress + $CippAlert = @{ + Type = 'webhook' + Title = $GenerateEmail.title + JSONContent = $WebhookData + TenantFilter = $Item.Tenant + } + Write-Information "Sending webhook alert for tenant $($Item.Tenant)" + Send-CIPPAlert @CippAlert -altWebhook $webhook + + # Send PSA alert + $CIPPAlert = @{ + Type = 'psa' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Send-CIPPAlert @CIPPAlert + } else { + Write-Information "All notifications disabled for tenant $($Item.Tenant)" } - Send-CIPPAlert @CIPPAlert return $true } else { Write-LogMessage -API 'DriftStandards' -tenant $Item.Tenant -message "No new drift deviations found for tenant $($Item.Tenant)" -sev Info diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 index 04402cf8662f..020ff3a469f9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 @@ -8,24 +8,126 @@ function Push-CIPPStandard { ) Write-Information "Received queue item for $($Item.Tenant) and standard $($Item.Standard)." + $Tenant = $Item.Tenant $Standard = $Item.Standard $FunctionName = 'Invoke-CIPPStandard{0}' -f $Standard + Write-Information "We'll be running $FunctionName" - $Rerun = Test-CIPPRerun -Type Standard -Tenant $Tenant -API "$($Standard)_$($Item.templateId)" + + if ($Standard -in @('IntuneTemplate', 'ConditionalAccessTemplate')) { + $API = "$($Standard)_$($Item.templateId)_$($Item.Settings.TemplateList.value)" + } else { + $API = "$($Standard)_$($Item.templateId)" + } + + $Rerun = Test-CIPPRerun -Type Standard -Tenant $Tenant -API $API if ($Rerun) { Write-Information 'Detected rerun. Exiting cleanly' exit 0 } else { Write-Information "Rerun is set to false. We'll be running $FunctionName" } + + $StandardInfo = @{ + Standard = $Standard + StandardTemplateId = $Item.templateId + } + if ($Standard -eq 'IntuneTemplate') { + $StandardInfo.IntuneTemplateId = $Item.Settings.TemplateList.value + } + if ($Standard -eq 'ConditionalAccessTemplate') { + $StandardInfo.ConditionalAccessTemplateId = $Item.Settings.TemplateList.value + } + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippStandardInfoStorage) { + $script:CippStandardInfoStorage = [System.Threading.AsyncLocal[object]]::new() + } + $script:CippStandardInfoStorage.Value = $StandardInfo + + # ---- Standard execution telemetry ---- + $runId = [guid]::NewGuid().ToString() + $invocationId = if ($ExecutionContext -and $ExecutionContext.InvocationId) { + "$($ExecutionContext.InvocationId)" + } else { + $null + } + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $result = 'Unknown' + $err = $null + + Write-Information -Tag 'CIPPStandardStart' -MessageData (@{ + Kind = 'CIPPStandardStart' + RunId = $runId + InvocationId = $invocationId + Tenant = $Tenant + Standard = $Standard + TemplateId = $Item.templateId + API = $API + FunctionName = $FunctionName + } | ConvertTo-Json -Compress) + # ------------------------------------- + try { - & $FunctionName -Tenant $Item.Tenant -Settings $Item.Settings -ErrorAction Stop + # Convert settings to JSON, replace %variables%, then convert back to object + $SettingsJSON = $Item.Settings | ConvertTo-Json -Depth 10 -Compress + if ($SettingsJSON -match '%') { + $Settings = Get-CIPPTextReplacement -TenantFilter $Item.Tenant -Text $SettingsJSON | ConvertFrom-Json + } else { + $Settings = $Item.Settings + } + + # Prepare telemetry metadata for standard execution + $metadata = @{ + Standard = $Standard + Tenant = $Tenant + TemplateId = $Item.templateId + FunctionName = $FunctionName + TriggerType = 'Standard' + } + + if ($Standard -eq 'IntuneTemplate' -and $Item.Settings.TemplateList.value) { + $metadata['IntuneTemplateId'] = $Item.Settings.TemplateList.value + } + if ($Standard -eq 'ConditionalAccessTemplate' -and $Item.Settings.TemplateList.value) { + $metadata['CATemplateId'] = $Item.Settings.TemplateList.value + } + + Measure-CippTask -TaskName $Standard -EventName 'CIPP.StandardCompleted' -Metadata $metadata -Script { + & $FunctionName -Tenant $Item.Tenant -Settings $Settings -ErrorAction Stop + } + + $result = 'Success' Write-Information "Standard $($Standard) completed for tenant $($Tenant)" } catch { + $result = 'Failed' + $err = $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) Write-Warning "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" Write-Information $_.InvocationInfo.PositionMessage throw $_.Exception.Message + } finally { + $sw.Stop() + + Write-Information -Tag 'CIPPStandardEnd' -MessageData (@{ + Kind = 'CIPPStandardEnd' + RunId = $runId + InvocationId = $invocationId + Tenant = $Tenant + Standard = $Standard + TemplateId = $Item.templateId + API = $API + FunctionName = $FunctionName + Result = $result + ElapsedMs = $sw.ElapsedMilliseconds + Error = $err + } | ConvertTo-Json -Compress) + + if ($script:CippStandardInfoStorage) { + $script:CippStandardInfoStorage.Value = $null + } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 new file mode 100644 index 000000000000..da334d1686a2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 @@ -0,0 +1,41 @@ +function Push-CIPPStandardsApplyBatch { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + # Aggregate all standards from all tenants + $AllStandards = $Item.Results | ForEach-Object { + foreach ($Standard in $_) { + if ($Standard -and $Standard.FunctionName -eq 'CIPPStandard') { + $Standard + } + } + } + + if ($AllStandards.Count -eq 0) { + Write-Information 'No standards to apply across all tenants' + return + } + + Write-Information "Aggregated $($AllStandards.Count) standards from all tenants: $($AllStandards | ConvertTo-Json -Depth 5 -Compress)" + + # Start orchestrator to apply standards + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'StandardsApply' + Batch = @($AllStandards) + SkipLog = $true + } | ConvertTo-Json -Depth 25 -Compress + Write-Host "Standards InputObject: $InputObject" + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject $InputObject + Write-Information "Started standards apply orchestrator with ID = '$InstanceId'" + + } catch { + Write-Warning "Error in standards apply batch aggregation: $($_.Exception.Message)" + } + return @{ + Success = $true + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 new file mode 100644 index 000000000000..9cd477e3b68a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 @@ -0,0 +1,200 @@ +function Push-CIPPStandardsList { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantFilter = $Item.TenantFilter + $runManually = $Item.runManually + $TemplateId = $Item.TemplateId + + try { + # Get standards for this tenant + $GetStandardParams = @{ + TenantFilter = $TenantFilter + runManually = $runManually + } + if ($TemplateId) { + $GetStandardParams['TemplateId'] = $TemplateId + } + + $AllStandards = Get-CIPPStandards @GetStandardParams + + if ($AllStandards.Count -eq 0) { + Write-Information "No standards found for tenant $TenantFilter" + return @() + } + Write-Host "Retrieved $($AllStandards.Count) standards for tenant $TenantFilter before filtering." + # Build hashtable for efficient lookup + $ComputedStandards = @{} + foreach ($Standard in $AllStandards) { + $Key = "$($Standard.Standard)|$($Standard.Settings.TemplateList.value)" + $ComputedStandards[$Key] = $Standard + } + + # Check if IntuneTemplate standards are present + $IntuneTemplateFound = ($ComputedStandards.Keys.Where({ $_ -like '*IntuneTemplate*' }, 'First').Count -gt 0) + + if ($IntuneTemplateFound) { + # Perform license check + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if (-not $TestResult) { + # Remove IntuneTemplate standards and set compare fields + $IntuneKeys = @($ComputedStandards.Keys | Where-Object { $_ -like '*IntuneTemplate*' }) + $BulkFields = [System.Collections.Generic.List[object]]::new() + + foreach ($Key in $IntuneKeys) { + $TemplateKey = ($Key -split '\|', 2)[1] + if ($TemplateKey) { + $BulkFields.Add([PSCustomObject]@{ + FieldName = "standards.IntuneTemplate.$TemplateKey" + FieldValue = 'This tenant does not have the required license for this standard.' + }) + } + [void]$ComputedStandards.Remove($Key) + } + + if ($BulkFields.Count -gt 0) { + Set-CIPPStandardsCompareField -TenantFilter $TenantFilter -BulkFields $BulkFields + } + + Write-Information "Removed IntuneTemplate standards for $TenantFilter - missing required license" + } else { + # License valid - check policy timestamps to filter unchanged templates + $TypeMap = @{ + Device = 'deviceManagement/deviceConfigurations' + Catalog = 'deviceManagement/configurationPolicies' + Admin = 'deviceManagement/groupPolicyConfigurations' + deviceCompliancePolicies = 'deviceManagement/deviceCompliancePolicies' + AppProtection_Android = 'deviceAppManagement/androidManagedAppProtections' + AppProtection_iOS = 'deviceAppManagement/iosManagedAppProtections' + } + + $BulkRequests = $TypeMap.GetEnumerator() | ForEach-Object { + @{ + id = $_.Key + url = "$($_.Value)?`$orderby=lastModifiedDateTime desc&`$select=id,lastModifiedDateTime&`$top=999" + method = 'GET' + } + } + + try { + $TrackingTable = Get-CippTable -tablename 'IntunePolicyTypeTracking' + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter -NoPaginateIds @($BulkRequests.id) + $PolicyTimestamps = @{} + + foreach ($Result in $BulkResults) { + $GraphTime = $Result.body.value[0].lastModifiedDateTime + $GraphId = $Result.body.value[0].id + $GraphCount = ($Result.body.value | Measure-Object).Count + $Cached = Get-CIPPAzDataTableEntity @TrackingTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($Result.id)'" + + $CountChanged = $false + if ($Cached -and $Cached.PolicyCount -ne $null) { + $CountChanged = ($GraphCount -ne $Cached.PolicyCount) + } + + $IdChanged = $false + if ($GraphId -and $Cached -and $Cached.LatestPolicyId) { + $IdChanged = ($GraphId -ne $Cached.LatestPolicyId) + } + + if ($GraphTime) { + $GraphTimeUtc = ([DateTime]$GraphTime).ToUniversalTime() + if ($Cached -and $Cached.LatestPolicyModified -and -not $IdChanged -and -not $CountChanged) { + $CachedTimeUtc = ([DateTimeOffset]$Cached.LatestPolicyModified).UtcDateTime + $TimeDiff = [Math]::Abs(($GraphTimeUtc - $CachedTimeUtc).TotalSeconds) + $Changed = ($TimeDiff -gt 60) + } else { + $Changed = $true + } + Add-CIPPAzDataTableEntity @TrackingTable -Entity @{ + PartitionKey = $TenantFilter + RowKey = $Result.id + LatestPolicyModified = $GraphTime + LatestPolicyId = $GraphId + PolicyCount = $GraphCount + } -Force | Out-Null + } else { + $Changed = $true + } + + $PolicyTimestamps[$Result.id] = $Changed + } + + # Filter unchanged templates + $TemplateTable = Get-CippTable -tablename 'templates' + $StandardTemplateTable = Get-CippTable -tablename 'templates' + $IntuneKeys = @($ComputedStandards.Keys | Where-Object { $_ -like '*IntuneTemplate*' }) + + foreach ($Key in $IntuneKeys) { + $Template = $ComputedStandards[$Key] + $TemplateEntity = Get-CIPPAzDataTableEntity @TemplateTable -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$($Template.Settings.TemplateList.value)'" + + if (-not $TemplateEntity) { continue } + + $ParsedTemplate = $TemplateEntity.JSON | ConvertFrom-Json + if (-not $ParsedTemplate.Type) { continue } + + $PolicyType = $ParsedTemplate.Type + $PolicyChanged = if ($PolicyType -eq 'AppProtection') { + [bool]($PolicyTimestamps['AppProtection_Android'] -or $PolicyTimestamps['AppProtection_iOS']) + } else { + [bool]$PolicyTimestamps[$PolicyType] + } + + # Check StandardTemplate changes + $StandardTemplate = Get-CIPPAzDataTableEntity @StandardTemplateTable -Filter "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$($Template.TemplateId)'" + $StandardTemplateChanged = $false + + if ($StandardTemplate) { + $StandardTimeUtc = ([DateTimeOffset]$StandardTemplate.Timestamp).UtcDateTime + $CachedStandardTemplate = Get-CIPPAzDataTableEntity @TrackingTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq 'StandardTemplate_$($Template.TemplateId)'" + + if ($CachedStandardTemplate -and $CachedStandardTemplate.CachedTimestamp) { + $CachedStandardTimeUtc = ([DateTimeOffset]$CachedStandardTemplate.CachedTimestamp).UtcDateTime + $TimeDiff = [Math]::Abs(($StandardTimeUtc - $CachedStandardTimeUtc).TotalSeconds) + $StandardTemplateChanged = ($TimeDiff -gt 60) + } else { + $StandardTemplateChanged = $true + } + + Add-CIPPAzDataTableEntity @TrackingTable -Entity @{ + PartitionKey = $TenantFilter + RowKey = "StandardTemplate_$($Template.TemplateId)" + CachedTimestamp = $StandardTemplate.Timestamp + } -Force | Out-Null + } + + # Remove if both unchanged + if (-not $PolicyChanged -and -not $StandardTemplateChanged) { +x [void]$ComputedStandards.Remove($Key) + } + } + } catch { + Write-Warning "Timestamp check failed for $TenantFilter : $($_.Exception.Message)" + } + } + } + + Write-Host "Returning $($ComputedStandards.Count) standards for tenant $TenantFilter after filtering." + # Return filtered standards + $FilteredStandards = $ComputedStandards.Values | ForEach-Object { + [PSCustomObject]@{ + Tenant = $_.Tenant + Standard = $_.Standard + Settings = $_.Settings + TemplateId = $_.TemplateId + FunctionName = 'CIPPStandard' + } + } + Write-Host "Sending back $($FilteredStandards.Count) standards: $($FilteredStandards | ConvertTo-Json -Depth 5 -Compress)" + return $FilteredStandards + + } catch { + Write-Warning "Error listing standards for $TenantFilter : $($_.Exception.Message)" + return @() + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPTestsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPTestsRun.ps1 new file mode 100644 index 000000000000..9cc264d9af27 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPTestsRun.ps1 @@ -0,0 +1,78 @@ +function Invoke-CIPPTestsRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Tests.Read + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter = 'allTenants' + ) + + Write-Information "Starting tests run for tenant: $TenantFilter" + + try { + $AllTests = Get-Command -Name 'Invoke-CippTest*' -Module CIPPCore | Select-Object -ExpandProperty Name | ForEach-Object { + $_ -replace '^Invoke-CippTest', '' + } + + if ($AllTests.Count -eq 0) { + Write-LogMessage -API 'Tests' -message 'No test functions found.' -sev Error + return + } + + Write-Information "Found $($AllTests.Count) test functions to run" + $AllTenantsList = if ($TenantFilter -eq 'allTenants') { + $DbCounts = Get-CIPPDbItem -CountsOnly -TenantFilter 'allTenants' + $TenantsWithData = $DbCounts | Where-Object { $_.Count -gt 0 } | Select-Object -ExpandProperty PartitionKey -Unique + Write-Information "Found $($TenantsWithData.Count) tenants with data in database" + $TenantsWithData + } else { + $DbCounts = Get-CIPPDbItem -TenantFilter $TenantFilter -CountsOnly + if (($DbCounts | Measure-Object -Property Count -Sum).Sum -gt 0) { + @($TenantFilter) + } else { + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message 'Tenant has no data in database. Skipping tests.' -sev Info + @() + } + } + + if ($AllTenantsList.Count -eq 0) { + Write-LogMessage -API 'Tests' -message 'No tenants with data found. Exiting.' -sev Info + return + } + + # Build batch: all tests for all tenants + $Batch = foreach ($Tenant in $AllTenantsList) { + foreach ($Test in $AllTests) { + @{ + FunctionName = 'CIPPTest' + TenantFilter = $Tenant + TestId = $Test + } + } + } + + Write-Information "Built batch of $($Batch.Count) test activities ($($AllTests.Count) tests × $($AllTenantsList.Count) tenants)" + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TestsRun' + Batch = @($Batch) + SkipLog = $true + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started tests orchestration with ID = '$InstanceId'" + + return @{ + InstanceId = $InstanceId + Message = "Tests orchestration started: $($AllTests.Count) tests for $($AllTenantsList.Count) tenants" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -message "Failed to start tests orchestration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + throw $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 new file mode 100644 index 000000000000..7492a7c15abc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 @@ -0,0 +1,30 @@ +function Push-CIPPTest { + <# + .FUNCTIONALITY + Entrypoint + #> + param( + $Item + ) + + $TenantFilter = $Item.TenantFilter + $TestId = $Item.TestId + + Write-Information "Running test $TestId for tenant $TenantFilter" + + try { + $FunctionName = "Invoke-CippTest$TestId" + + if (-not (Get-Command $FunctionName -ErrorAction SilentlyContinue)) { + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Test function not found: $FunctionName" -sev Error + return + } + + Write-Information "Executing $FunctionName for $TenantFilter" + & $FunctionName -Tenant $TenantFilter + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Failed to run test $TestId $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 new file mode 100644 index 000000000000..7bea0f014457 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 @@ -0,0 +1,36 @@ +function Push-CIPPTestsRun { + <# + .SYNOPSIS + PostExecution function to run tests after data collection completes + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + $TenantFilter = $Item.Parameters.TenantFilter + Write-Information "PostExecution: Starting tests for tenant: $TenantFilter after data collection completed" + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message 'Starting test run after data collection' -sev Info + + # Call the test run function + $Result = Invoke-CIPPTestsRun -TenantFilter $TenantFilter + + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Test run started. Instance ID: $($Result.InstanceId)" -sev Info + Write-Information "PostExecution: Tests started with Instance ID: $($Result.InstanceId)" + + return @{ + Success = $true + InstanceId = $Result.InstanceId + Message = $Result.Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Failed to start test run: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Write-Warning "PostExecution: Error starting tests - $($ErrorMessage.NormalizedError)" + + return @{ + Success = $false + Error = $ErrorMessage.NormalizedError + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogBundleProcessing.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogBundleProcessing.ps1 deleted file mode 100644 index 20744662daa8..000000000000 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogBundleProcessing.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -function Push-AuditLogBundleProcessing { - Param($Item) - - #return # Disabled for now, as it's not used - exit 0 - try { - $AuditBundleTable = Get-CippTable -tablename 'AuditLogBundles' - $AuditLogBundle = Get-CIPPAzDataTableEntity @AuditBundleTable -Filter "PartitionKey eq '$($Item.TenantFilter)' and RowKey eq '$($Item.ContentId)'" - if ($AuditLogBundle.ProcessingStatus -ne 'Pending') { - Write-Information 'Audit log bundle already processed' - return - } - try { - $AuditLogTest = Test-CIPPAuditLogRules -TenantFilter $Item.TenantFilter -LogType $AuditLogBundle.ContentType -ContentUri $AuditLogBundle.ContentUri - $AuditLogBundle.ProcessingStatus = 'Completed' - $AuditLogBundle.MatchedRules = [string](ConvertTo-Json -Compress -Depth 10 -InputObject $AuditLogTest.MatchedRules) - $AuditLogBundle.MatchedLogs = $AuditLogTest.MatchedLogs - } catch { - $AuditLogBundle.ProcessingStatus = 'Failed' - $AuditLogBundle | Add-Member -NotePropertyName Error -NotePropertyValue $_.InvocationInfo.PositionMessage -TypeName string - } - try { - Add-CIPPAzDataTableEntity @AuditBundleTable -Entity $AuditLogBundle -Force - } catch { - Write-Host ( 'Error logging audit bundle: {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) - } - - $DataToProcess = ($AuditLogTest).DataToProcess - Write-Information "Webhook: Data to process found: $($DataToProcess.count) items" - foreach ($AuditLog in $DataToProcess) { - Write-Information "Processing $($AuditLog.operation)" - $Webhook = @{ - Data = $AuditLog - CIPPURL = [string]$AuditLogBundle.CIPPURL - TenantFilter = $Item.TenantFilter - } - Invoke-CippWebhookProcessing @Webhook - } - } catch { - Write-Host ( 'Audit log error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) - } -} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 new file mode 100644 index 000000000000..03f139511f6d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 @@ -0,0 +1,72 @@ +function Push-AuditLogSearchCreation { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param($Item) + + # Get params from batch item + $Tenant = $Item.Tenant + $StartTime = $Item.StartTime + $EndTime = $Item.EndTime + $ServiceFilters = @($Item.ServiceFilters) + + try { + $LogSearch = @{ + StartTime = $StartTime + EndTime = $EndTime + ServiceFilters = $ServiceFilters + TenantFilter = $Tenant.defaultDomainName + ProcessLogs = $true + RecordTypeFilters = @( + 'exchangeAdmin', 'azureActiveDirectory', 'azureActiveDirectoryAccountLogon', 'dataCenterSecurityCmdlet', + 'complianceDLPSharePoint', 'complianceDLPExchange', 'azureActiveDirectoryStsLogon', 'skypeForBusinessPSTNUsage', + 'skypeForBusinessUsersBlocked', 'securityComplianceCenterEOPCmdlet', 'microsoftFlow', 'aeD', 'microsoftStream', + 'threatFinder', 'project', 'dataGovernance', 'securityComplianceAlerts', 'threatIntelligenceUrl', + 'securityComplianceInsights', 'mipLabel', 'workplaceAnalytics', 'powerAppsApp', 'powerAppsPlan', + 'threatIntelligenceAtpContent', 'labelContentExplorer', 'hygieneEvent', + 'dataInsightsRestApiAudit', 'informationBarrierPolicyApplication', 'microsoftTeamsAdmin', 'hrSignal', + 'informationWorkerProtection', 'campaign', 'dlpEndpoint', 'airInvestigation', 'quarantine', 'microsoftForms', + 'applicationAudit', 'complianceSupervisionExchange', 'customerKeyServiceEncryption', 'officeNative', + 'mipAutoLabelSharePointItem', 'mipAutoLabelSharePointPolicyLocation', 'secureScore', + 'mipAutoLabelExchangeItem', 'cortanaBriefing', 'search', 'wdatpAlerts', 'powerPlatformAdminDlp', + 'powerPlatformAdminEnvironment', 'mdatpAudit', 'sensitivityLabelPolicyMatch', 'sensitivityLabelAction', + 'sensitivityLabeledFileAction', 'attackSim', 'airManualInvestigation', 'securityComplianceRBAC', 'userTraining', + 'airAdminActionInvestigation', 'mstic', 'physicalBadgingSignal', 'aipDiscover', 'aipSensitivityLabelAction', + 'aipProtectionAction', 'aipFileDeleted', 'aipHeartBeat', 'mcasAlerts', 'onPremisesFileShareScannerDlp', + 'onPremisesSharePointScannerDlp', 'exchangeSearch', 'privacyDataMinimization', 'labelAnalyticsAggregate', + 'myAnalyticsSettings', 'securityComplianceUserChange', 'complianceDLPExchangeClassification', + 'complianceDLPEndpoint', 'mipExactDataMatch', 'msdeResponseActions', 'msdeGeneralSettings', 'msdeIndicatorsSettings', + 'ms365DCustomDetection', 'msdeRolesSettings', 'mapgAlerts', 'mapgPolicy', 'mapgRemediation', + 'privacyRemediationAction', 'privacyDigestEmail', 'mipAutoLabelSimulationProgress', 'mipAutoLabelSimulationCompletion', + 'mipAutoLabelProgressFeedback', 'dlpSensitiveInformationType', 'mipAutoLabelSimulationStatistics', + 'largeContentMetadata', 'microsoft365Group', 'cdpMlInferencingResult', 'filteringMailMetadata', + 'cdpClassificationMailItem', 'cdpClassificationDocument', 'officeScriptsRunAction', 'filteringPostMailDeliveryAction', + 'cdpUnifiedFeedback', 'tenantAllowBlockList', 'consumptionResource', 'healthcareSignal', 'dlpImportResult', + 'cdpCompliancePolicyExecution', 'multiStageDisposition', 'privacyDataMatch', 'filteringDocMetadata', + 'filteringEmailFeatures', 'powerBIDlp', 'filteringUrlInfo', 'filteringAttachmentInfo', 'coreReportingSettings', + 'complianceConnector', 'powerPlatformLockboxResourceAccessRequest', 'powerPlatformLockboxResourceCommand', + 'cdpPredictiveCodingLabel', 'cdpCompliancePolicyUserFeedback', 'webpageActivityEndpoint', 'omePortal', + 'cmImprovementActionChange', 'filteringUrlClick', 'mipLabelAnalyticsAuditRecord', 'filteringEntityEvent', + 'filteringRuleHits', 'filteringMailSubmission', 'labelExplorer', 'microsoftManagedServicePlatform', + 'powerPlatformServiceActivity', 'scorePlatformGenericAuditRecord', 'filteringTimeTravelDocMetadata', 'alert', + 'alertStatus', 'alertIncident', 'incidentStatus', 'case', 'caseInvestigation', 'recordsManagement', + 'privacyRemediation', 'dataShareOperation', 'cdpDlpSensitive', 'ehrConnector', 'filteringMailGradingResult', + 'microsoftTodoAudit', 'timeTravelFilteringDocMetadata', 'microsoftDefenderForIdentityAudit', + 'supervisoryReviewDayXInsight', 'defenderExpertsforXDRAdmin', 'cdpEdgeBlockedMessage', 'hostedRpa', + 'cdpContentExplorerAggregateRecord', 'cdpHygieneAttachmentInfo', 'cdpHygieneSummary', 'cdpPostMailDeliveryAction', + 'cdpEmailFeatures', 'cdpHygieneUrlInfo', 'cdpUrlClick', 'cdpPackageManagerHygieneEvent', 'filteringDocScan', + 'timeTravelFilteringDocScan', 'mapgOnboard' + ) + } + if ($PSCmdlet.ShouldProcess('Push-AuditLogSearchCreation', 'Creating Audit Log Search')) { + $NewSearch = New-CippAuditLogSearch @LogSearch + Write-Information "Created audit log search $($Tenant.defaultDomainName) - $($NewSearch.displayName)" + } + } catch { + Write-Information "Error creating audit log search $($Tenant.defaultDomainName) - $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + return $true +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 new file mode 100644 index 000000000000..298d948ba283 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 @@ -0,0 +1,50 @@ +function Invoke-ExecAppInsightsQuery { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.Read + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + $Query = $Request.Body.query ?? $Request.Query.query + if (-not $Query) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'No query provided in request body.' + } + } + } + + try { + $LogData = Get-ApplicationInsightsQuery -Query $Query + + $Body = ConvertTo-Json -Depth 10 -Compress -InputObject @{ + Results = @($LogData) + Metadata = @{ + Query = $Query + } + } + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + } + + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Results = "$($_.Exception.Message)" + Metadata = @{ + Query = $Query + Exception = Get-CippException -Exception $_ + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 new file mode 100644 index 000000000000..2db5725ce7b6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 @@ -0,0 +1,63 @@ +function Invoke-ExecCloneTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.ReadWrite + #> + param( + $Request, + $TriggerMetadata + ) + + $GUID = $Request.Query.GUID ?? $Request.Body.GUID + $Type = $Request.Query.Type ?? $Request.Body.Type + + if ($GUID -and $Type) { + $Table = Get-CIPPTable -tablename templates + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$Type' and RowKey eq '$GUID'" + + if ($Template) { + $NewGuid = [guid]::NewGuid().ToString() + $Template.RowKey = $NewGuid + $Template.JSON = $Template.JSON -replace $GUID, $NewGuid + $Template.Package = $null + $Template.SHA = $null + try { + Add-CIPPAzDataTableEntity @Table -Entity $Template + $body = @{ + Results = @{ + state = 'success' + resultText = 'Template cloned successfully' + } + } + } catch { + $body = @{ + Results = @{ + state = 'error' + resultText = 'Failed to clone template' + details = Get-CIPPException -Exception $_ + } + } + } + } else { + $body = @{ + Results = @{ + state = 'error' + resultText = 'Template not found' + } + } + } + } else { + $body = @{ + Results = @{ + state = 'error' + resultText = 'GUID or Type not provided' + } + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 new file mode 100644 index 000000000000..9cab483eba99 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 @@ -0,0 +1,89 @@ +function Invoke-ExecDiagnosticsPresets { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + try { + $Table = Get-CIPPTable -TableName 'DiagnosticsPresets' + $Action = $Request.Body.action + $GUID = $Request.Body.GUID + + if ($Action -eq 'delete') { + if (-not $GUID) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'GUID is required for delete action' + } + } + } + + Remove-AzDataTableEntity @Table -Entity @{ + PartitionKey = 'Preset' + RowKey = $GUID + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = 'Preset deleted successfully' + } + } + } else { + # Save or update preset + $Name = $Request.Body.name + $Query = $Request.Body.query + + if (-not $Name -or -not $Query) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'Name and query are required' + } + } + } + + # Use provided GUID or generate new one + if (-not $GUID) { + $GUID = (New-Guid).Guid + } + + # Convert query to compressed JSON for storage + $QueryJson = ConvertTo-Json -InputObject @{ query = $Query } -Compress + + $Entity = @{ + PartitionKey = 'Preset' + RowKey = [string]$GUID + name = [string]$Name + data = [string]$QueryJson + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = 'Preset saved successfully' + Metadata = @{ + GUID = $GUID + } + } + } + } + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to manage diagnostics preset: $($_.Exception.Message)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 index 6fa7fd7a04a0..5b47b16aceeb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 @@ -11,16 +11,39 @@ function Invoke-ExecEditTemplate { $APIName = $Request.Params.CIPPEndpoint try { $Table = Get-CippTable -tablename 'templates' - $guid = $request.body.id ? $request.body.id : $request.body.GUID - $JSON = ConvertTo-Json -Compress -Depth 100 -InputObject ($request.body | Select-Object * -ExcludeProperty GUID) - $Type = $request.query.Type + $guid = $request.Body.id ? $request.Body.id : $request.Body.GUID + $JSON = ConvertTo-Json -Compress -Depth 100 -InputObject ($request.Body | Select-Object * -ExcludeProperty GUID) + $Type = $request.Query.Type ?? $Request.Body.Type if ($Type -eq 'IntuneTemplate') { Write-Host 'Intune Template' - $OriginalTemplate = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$GUID'" - $OriginalTemplate = ($OriginalTemplate.JSON | ConvertFrom-Json -Depth 100) - $RawJSON = ConvertTo-Json -Compress -Depth 100 -InputObject $Request.body.parsedRAWJson - Set-CIPPIntuneTemplate -RawJSON $RawJSON -GUID $GUID -DisplayName $Request.body.displayName -Description $Request.body.description -templateType $OriginalTemplate.Type -Headers $Request.Headers + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$GUID'" + $OriginalJSON = $Template.JSON + + $TemplateData = $Template.JSON | ConvertFrom-Json + $TemplateType = $TemplateData.Type + + if ($Template.SHA) { + $NewGuid = [guid]::NewGuid().ToString() + } else { + $NewGuid = $GUID + } + if ($Request.Body.parsedRAWJson) { + $RawJSON = ConvertTo-Json -Compress -Depth 100 -InputObject $Request.Body.parsedRAWJson + } else { + $RawJSON = $OriginalJSON + } + + $IntuneTemplate = @{ + GUID = $NewGuid + RawJson = $RawJSON + DisplayName = $Request.Body.displayName + Description = $Request.Body.description + templateType = $TemplateType + Package = $Template.Package + Headers = $Request.Headers + } + Set-CIPPIntuneTemplate @IntuneTemplate } else { $Table.Force = $true Add-CIPPAzDataTableEntity @Table -Entity @{ @@ -29,7 +52,7 @@ function Invoke-ExecEditTemplate { PartitionKey = "$Type" GUID = "$GUID" } - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Edited template $($Request.body.name) with GUID $GUID" -Sev 'Debug' + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Edited template $($Request.Body.name) with GUID $GUID" -Sev 'Debug' } $body = [pscustomobject]@{ 'Results' = 'Successfully saved the template' } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 index bd7c0445bf3a..0142225044e0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 @@ -21,11 +21,32 @@ function Invoke-ExecListBackup { if ($NameOnly) { $Processed = foreach ($item in $Result) { - $properties = $item.PSObject.Properties | Where-Object { $_.Name -notin @('TenantFilter', 'ETag', 'PartitionKey', 'RowKey', 'Timestamp') -and $_.Value } - [PSCustomObject]@{ - BackupName = $item.RowKey - Timestamp = $item.Timestamp - Items = $properties.Name + $properties = $item.PSObject.Properties | Where-Object { $_.Name -notin @('TenantFilter', 'ETag', 'PartitionKey', 'RowKey', 'Timestamp', 'OriginalEntityId', 'SplitOverProps', 'PartIndex') -and $_.Value } + + if ($Type -eq 'Scheduled') { + [PSCustomObject]@{ + TenantFilter = $item.RowKey -match '^(.*?)_' | ForEach-Object { $matches[1] } + BackupName = $item.RowKey + Timestamp = $item.Timestamp + Items = $properties.Name + } + } else { + # Prefer stored indicator (BackupIsBlob) to avoid reading Backup field + $isBlob = $false + if ($null -ne $item.PSObject.Properties['BackupIsBlob']) { + try { $isBlob = [bool]$item.BackupIsBlob } catch { $isBlob = $false } + } else { + # Fallback heuristic for legacy rows if property missing + if ($null -ne $item.PSObject.Properties['Backup']) { + $b = $item.Backup + if ($b -is [string] -and ($b -like 'https://*' -or $b -like 'http://*')) { $isBlob = $true } + } + } + [PSCustomObject]@{ + BackupName = $item.RowKey + Timestamp = $item.Timestamp + Source = if ($isBlob) { 'blob' } else { 'table' } + } } } $Result = $Processed | Sort-Object Timestamp -Descending diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 index 21febc29a539..4799774c2025 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 @@ -18,8 +18,13 @@ function Invoke-ExecPartnerWebhook { $ConfigTable = Get-CIPPTable -TableName Config $WebhookConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq 'PartnerWebhookOnboarding'" - if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { - $Results | Add-Member -MemberType NoteProperty -Name 'standardsExcludeAllTenants' -Value $true -Force + if ($WebhookConfig) { + $Results | Add-Member -MemberType NoteProperty -Name 'enabled' -Value ([bool]$WebhookConfig.Enabled) -Force + if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { + $Results | Add-Member -MemberType NoteProperty -Name 'standardsExcludeAllTenants' -Value $true -Force + } + } else { + $Results | Add-Member -MemberType NoteProperty -Name 'enabled' -Value $false -Force } } catch {} if (!$Results) { @@ -27,6 +32,7 @@ function Invoke-ExecPartnerWebhook { webhoookUrl = 'None' lastModifiedTimestamp = 'Never' webhookEvents = @() + enabled = $false } } } @@ -50,6 +56,7 @@ function Invoke-ExecPartnerWebhook { $PartnerWebhookOnboarding = [PSCustomObject]@{ PartitionKey = 'Config' RowKey = 'PartnerWebhookOnboarding' + Enabled = [bool]$Request.Body.enabled StandardsExcludeAllTenants = $Request.Body.standardsExcludeAllTenants } Add-CIPPAzDataTableEntity @ConfigTable -Entity $PartnerWebhookOnboarding -Force | Out-Null diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 index 68e8bef9be1a..e0cc80a3bc9a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 @@ -32,13 +32,17 @@ function Invoke-ExecSetPackageTag { foreach ($GUID in $GUIDS) { $Filter = "RowKey eq '$GUID'" $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter - Add-CIPPAzDataTableEntity @Table -Entity @{ + $Entity = @{ JSON = $Template.JSON RowKey = "$GUID" PartitionKey = $Template.PartitionKey GUID = "$GUID" Package = $PackageValue - } -Force + SHA = $Template.SHA ?? $null + Source = $Template.Source ?? $null + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force if ($Remove -eq $true) { Write-LogMessage -headers $Headers -API $APIName -message "$LogMessage $GUID" -Sev 'Info' diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 index c8e5114e8dbc..56784611a481 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 @@ -10,6 +10,7 @@ function Invoke-ListApiTest { $Response = @{} $Response.Request = $Request + $Response.TriggerMetadata = $TriggerMetadata if ($env:DEBUG_ENV_VARS -eq 'true') { $BlockedKeys = @('ApplicationSecret', 'RefreshToken', 'AzureWebJobsStorage', 'DEPLOYMENT_STORAGE_CONNECTION_STRING') $EnvironmentVariables = [PSCustomObject]@{} @@ -17,7 +18,15 @@ function Invoke-ListApiTest { $EnvironmentVariables | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value } $Response.EnvironmentVariables = $EnvironmentVariables + + # test New-CIPPAzRestRequest KQL for resource graph + $Query = 'Resources | project name, type' + $Json = ConvertTo-Json -Depth 10 -Compress -InputObject @{ query = $Query } + $Request = New-CIPPAzRestRequest -Method POST -Resource 'https://management.azure.com/' -Uri 'https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01' -Body $Json + $Response.ResourceGraphTest = $Request } + $Response.AllowedTenants = $script:CippAllowedTenantsStorage.Value + $Response.AllowedGroups = $script:CippAllowedGroupsStorage.Value return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 new file mode 100644 index 000000000000..a52b7c6e0982 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 @@ -0,0 +1,37 @@ +function Invoke-ListDiagnosticsPresets { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.Read + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + try { + $Table = Get-CIPPTable -TableName 'DiagnosticsPresets' + $Presets = Get-CIPPAzDataTableEntity @Table | ForEach-Object { + $Data = $_.data | ConvertFrom-Json + [PSCustomObject]@{ + GUID = $_.RowKey + name = $_.name + query = $Data.query + } + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Presets) + } + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to list diagnostics presets: $($_.Exception.Message)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 index 4516ff5491c4..048c881f4a9e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 @@ -32,12 +32,11 @@ function Invoke-AddScheduledItem { $ScheduledTask = @{ Task = $Request.Body Headers = $Request.Headers - hidden = $hidden + Hidden = $hidden DisallowDuplicateName = $Request.Query.DisallowDuplicateName DesiredStartTime = $Request.Body.DesiredStartTime } $Result = Add-CIPPScheduledTask @ScheduledTask - Write-LogMessage -headers $Request.Headers -API $APINAME -message $Result -Sev 'Info' } return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 index 91829dddb4b4..37ae04aa3a21 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 @@ -19,11 +19,12 @@ function Invoke-ListScheduledItems { $ShowHidden = $Request.Query.ShowHidden ?? $Request.Body.ShowHidden $Name = $Request.Query.Name ?? $Request.Body.Name $Type = $Request.Query.Type ?? $Request.Body.Type + $SearchTitle = $Request.query.SearchTitle ?? $Request.body.SearchTitle if ($ShowHidden -eq $true) { - $ScheduledItemFilter.Add('Hidden eq true') + $ScheduledItemFilter.Add("(Hidden eq true or Hidden eq 'True')") } else { - $ScheduledItemFilter.Add('Hidden eq false') + $ScheduledItemFilter.Add("(Hidden eq false or Hidden eq 'False')") } if ($Name) { @@ -42,10 +43,15 @@ function Invoke-ListScheduledItems { $HiddenTasks = $true } $Tasks = Get-CIPPAzDataTableEntity @Table -Filter $Filter + Write-Information "Retrieved $($Tasks.Count) scheduled tasks from storage." if ($Type) { $Tasks = $Tasks | Where-Object { $_.command -eq $Type } } + if ($SearchTitle) { + $Tasks = $Tasks | Where-Object { $_.Name -like $SearchTitle } + } + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList if ($AllowedTenants -notcontains 'AllTenants') { @@ -53,8 +59,12 @@ function Invoke-ListScheduledItems { $AllowedTenantDomains = $TenantList | Where-Object -Property customerId -In $AllowedTenants | Select-Object -ExpandProperty defaultDomainName $Tasks = $Tasks | Where-Object -Property Tenant -In $AllowedTenantDomains } - $ScheduledTasks = foreach ($Task in $tasks) { + + Write-Information "Found $($Tasks.Count) scheduled tasks after filtering and access check." + + $ScheduledTasks = foreach ($Task in $Tasks) { if (!$Task.Tenant -or !$Task.Command) { + Write-Information "Skipping invalid scheduled task entry: $($Task.RowKey)" continue } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 index 180d86dcafe6..331490026b95 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 @@ -4,32 +4,41 @@ function Invoke-RemoveScheduledItem { Entrypoint,AnyTenant .ROLE CIPP.Scheduler.ReadWrite + .DESCRIPTION + Removes a scheduled item from CIPP's scheduler. #> [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = 'RemoveScheduledItem' - $User = $Request.Headers + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers $RowKey = $Request.Query.id ? $Request.Query.id : $Request.Body.id $task = @{ RowKey = $RowKey PartitionKey = 'ScheduledTask' } - $Table = Get-CIPPTable -TableName 'ScheduledTasks' - Remove-AzDataTableEntity -Force @Table -Entity $task + try { + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + Remove-AzDataTableEntity -Force @Table -Entity $task - $DetailTable = Get-CIPPTable -TableName 'ScheduledTaskDetails' - $Details = Get-CIPPAzDataTableEntity @DetailTable -Filter "PartitionKey eq '$($RowKey)'" -Property RowKey, PartitionKey, ETag + $DetailTable = Get-CIPPTable -TableName 'ScheduledTaskDetails' + $Details = Get-CIPPAzDataTableEntity @DetailTable -Filter "PartitionKey eq '$($RowKey)'" -Property RowKey, PartitionKey, ETag - if ($Details) { - Remove-AzDataTableEntity -Force @DetailTable -Entity $Details - } + if ($Details) { + Remove-AzDataTableEntity -Force @DetailTable -Entity $Details + } - Write-LogMessage -Headers $User -API $APINAME -message "Task removed: $($task.RowKey)" -Sev 'Info' + Write-LogMessage -Headers $Headers -API $APIName -message "Task removed: $($task.RowKey)" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -message "Failed to remove task: $($task.RowKey). $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK + StatusCode = $StatusCode Body = @{ Results = 'Task removed successfully.' } }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 index 7e3b75de8e8f..c38ece6e144c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 @@ -148,7 +148,7 @@ function Invoke-ExecApiClient { if (!$Client) { $Results = @{ resultText = 'API client not found' - severity = 'error' + state = 'error' } } else { $ApiConfig = New-CIPPAPIConfig -ResetSecret -AppId $Request.Body.ClientId -Headers $Request.Headers diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 index a9ef82959f51..043b12fea790 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 @@ -7,7 +7,7 @@ function Invoke-ExecBackendURLs { #> [CmdletBinding()] param($Request, $TriggerMetadata) - $Subscription = ($env:WEBSITE_OWNER_NAME).split('+') | Select-Object -First 1 + $Subscription = Get-CIPPAzFunctionAppSubId $SWAName = $env:WEBSITE_SITE_NAME -replace 'cipp', 'CIPP-SWA-' # Write to the Azure Functions log stream. @@ -32,6 +32,12 @@ function Invoke-ExecBackendURLs { RGName = $RGName FunctionName = $env:WEBSITE_SITE_NAME SWAName = $SWAName + Hosted = $env:CIPP_HOSTED -eq 'true' ?? $false + OS = $IsLinux ? 'Linux' : 'Windows' + SKU = $env:WEBSITE_SKU + Timezone = $env:WEBSITE_TIME_ZONE ?? 'UTC' + BusinessHoursStart = $env:CIPP_BUSINESS_HOURS_START ?? '09:00' + BusinessHoursEnd = $env:CIPP_BUSINESS_HOURS_END ?? '17:00' } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 new file mode 100644 index 000000000000..064784c49851 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 @@ -0,0 +1,56 @@ +function Invoke-ExecBackupRetentionConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'BackupRetention' and RowKey eq 'Settings'" + + $results = try { + if ($Request.Query.List) { + $RetentionSettings = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if (!$RetentionSettings) { + # Return default values if not set + @{ + RetentionDays = 30 + } + } else { + @{ + RetentionDays = [int]$RetentionSettings.RetentionDays + } + } + } else { + $RetentionDays = [int]$Request.Body.RetentionDays + + # Validate minimum value + if ($RetentionDays -lt 7) { + throw 'Retention days must be at least 7 days' + } + + $RetentionConfig = @{ + 'RetentionDays' = $RetentionDays + 'PartitionKey' = 'BackupRetention' + 'RowKey' = 'Settings' + } + + Add-CIPPAzDataTableEntity @Table -Entity $RetentionConfig -Force | Out-Null + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Set backup retention to $RetentionDays days" -Sev 'Info' + "Successfully set backup retention to $RetentionDays days" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Failed to set backup retention configuration: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + "Failed to set configuration: $($ErrorMessage.NormalizedError)" + } + + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 index 9b956a5e9605..dc3a91b75e05 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 @@ -10,6 +10,7 @@ function Invoke-ExecCustomRole { $Table = Get-CippTable -tablename 'CustomRoles' $AccessRoleGroupTable = Get-CippTable -tablename 'AccessRoleGroups' + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' $Action = $Request.Query.Action ?? $Request.Body.Action $CIPPCore = (Get-Module -Name CIPPCore).ModuleBase @@ -33,6 +34,20 @@ function Invoke-ExecCustomRole { try { $Results = [System.Collections.Generic.List[string]]::new() Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Saved custom role $($Request.Body.RoleName)" -Sev 'Info' + + # Process IP Range if provided (but not for superadmin to prevent lockout) + if ($Request.Body.IpRange -and $Request.Body.RoleName -ne 'superadmin') { + $IpRange = [System.Collections.Generic.List[string]]::new() + $regexPattern = '^(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:/\d{1,2})?|(?:[0-9A-Fa-f]{1,4}:){1,7}[0-9A-Fa-f]{1,4}(?:/\d{1,3})?)$' + foreach ($IP in @($Request.Body.IpRange)) { + if ($IP -match $regexPattern) { + $IpRange.Add($IP) + } + } + } else { + $IpRange = @() + } + if ($Request.Body.RoleName -notin $DefaultRoles.PSObject.Properties.Name) { $Role = @{ 'PartitionKey' = 'CustomRoles' @@ -45,6 +60,28 @@ function Invoke-ExecCustomRole { Add-CIPPAzDataTableEntity @Table -Entity $Role -Force | Out-Null $Results.Add("Custom role $($Request.Body.RoleName) saved") } + if ($Request.Body.RoleName -eq 'superadmin' -and $Request.Body.IpRange) { + $Results.Add('Note: IP restrictions are not allowed on the superadmin role to prevent lockout issues.') + } + # Store IP ranges in separate table (works for both custom and default roles) + if ($IpRange.Count -gt 0 -and $Request.Body.RoleName -ne 'superadmin') { + $IPRangeEntity = @{ + 'PartitionKey' = 'AccessIPRanges' + 'RowKey' = "$($Request.Body.RoleName.ToLower())" + 'IPRanges' = "$(@($IpRange) | ConvertTo-Json -Compress)" + } + Add-CIPPAzDataTableEntity @AccessIPRangeTable -Entity $IPRangeEntity -Force | Out-Null + $Results.Add("IP ranges configured for '$($Request.Body.RoleName)' role.") + } else { + # Remove IP ranges if none provided or role is superadmin + $ExistingIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if ($ExistingIPRange) { + Remove-AzDataTableEntity -Force @AccessIPRangeTable -Entity $ExistingIPRange + if ($Request.Body.RoleName -ne 'superadmin') { + $Results.Add("IP ranges removed from '$($Request.Body.RoleName)' role.") + } + } + } if ($Request.Body.EntraGroup) { $RoleGroup = @{ 'PartitionKey' = 'AccessRoleGroups' @@ -98,6 +135,16 @@ function Invoke-ExecCustomRole { 'BlockedEndpoints' = $ExistingRole.BlockedEndpoints } Add-CIPPAzDataTableEntity @Table -Entity $NewRole -Force | Out-Null + # Clone IP ranges if they exist + $ExistingIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if ($ExistingIPRange) { + $NewIPRangeEntity = @{ + 'PartitionKey' = 'AccessIPRanges' + 'RowKey' = "$($Request.Body.NewRoleName.ToLower())" + 'IPRanges' = $ExistingIPRange.IPRanges + } + Add-CIPPAzDataTableEntity @AccessIPRangeTable -Entity $NewIPRangeEntity -Force | Out-Null + } $Body = @{Results = "Custom role '$($Request.Body.NewRoleName)' cloned from '$($Request.Body.RoleName)'" } Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Cloned custom role $($Request.Body.RoleName) to $($Request.Body.NewRoleName)" -Sev 'Info' } catch { @@ -110,6 +157,14 @@ function Invoke-ExecCustomRole { Write-Information "Deleting custom role $($Request.Body.RoleName)" $Role = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.RoleName)'" -Property RowKey, PartitionKey Remove-AzDataTableEntity -Force @Table -Entity $Role + $AccessRoleGroup = Get-CIPPAzDataTableEntity @AccessRoleGroupTable -Filter "PartitionKey eq 'AccessRoleGroups' and RowKey eq '$($Request.Body.RoleName)'" + if ($AccessRoleGroup) { + Remove-AzDataTableEntity -Force @AccessRoleGroupTable -Entity $AccessRoleGroup + } + $AccessIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "PartitionKey eq 'AccessIPRanges' and RowKey eq '$($Request.Body.RoleName)'" + if ($AccessIPRange) { + Remove-AzDataTableEntity -Force @AccessIPRangeTable -Entity $AccessIPRange + } $Body = @{Results = 'Custom role deleted' } Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Deleted custom role $($Request.Body.RoleName)" -Sev 'Info' } @@ -125,6 +180,7 @@ function Invoke-ExecCustomRole { default { $Body = Get-CIPPAzDataTableEntity @Table $EntraRoleGroups = Get-CIPPAzDataTableEntity @AccessRoleGroupTable + $AccessIPRanges = Get-CIPPAzDataTableEntity @AccessIPRangeTable if (!$Body) { $Body = @( @{ @@ -171,6 +227,18 @@ function Invoke-ExecCustomRole { $Role | Add-Member -NotePropertyName EntraGroup -NotePropertyValue $EntraGroup -Force } + # Load IP ranges from separate table + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $Role.RowKey + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue $IPRanges -Force + } else { + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue @() -Force + } $Role } $DefaultRoles = foreach ($DefaultRole in $DefaultRoles.PSObject.Properties.Name) { @@ -185,6 +253,18 @@ function Invoke-ExecCustomRole { if ($EntraRoleGroup) { $Role.EntraGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey | Select-Object @{Name = 'label'; Expression = { $_.GroupName } }, @{Name = 'value'; Expression = { $_.GroupId } } } + # Load IP ranges from separate table + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $DefaultRole + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + $Role.IPRange = $IPRanges + } else { + $Role.IPRange = @() + } $Role } $Body = @($DefaultRoles + $CustomRoles) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 index 4ce8b2264706..facaa423a70a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 @@ -22,7 +22,7 @@ function Invoke-ExecExchangeRoleRepair { Write-Information "Found $($RoleDefinitions.Count) Exchange role definitions" $BasePath = Get-Module -Name 'CIPPCore' | Select-Object -ExpandProperty ModuleBase - $AllOrgManagementRoles = Get-Content -Path "$BasePath\Public\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json + $AllOrgManagementRoles = Get-Content -Path "$BasePath\lib\data\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json $AvailableRoles = $RoleDefinitions | Where-Object -Property displayName -In $AllOrgManagementRoles | Select-Object -Property displayName, id, description Write-Information "Found $($AvailableRoles.Count) available Organization Management roles in Exchange" @@ -89,7 +89,7 @@ function Invoke-ExecExchangeRoleRepair { } } - Push-OutputBinding -Name 'Response' -Value ([HttpResponseContext]@{ + returns ([HttpResponseContext]@{ StatusCode = [System.Net.HttpStatusCode]::OK Body = $Results }) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 index 9fba0a453be0..d543ce5a2770 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 @@ -17,7 +17,7 @@ Function Invoke-ExecMaintenanceScripts { '##TENANTID##' = $env:TenantID '##RESOURCEGROUP##' = $env:WEBSITE_RESOURCE_GROUP '##FUNCTIONAPP##' = $env:WEBSITE_SITE_NAME - '##SUBSCRIPTION##' = (($env:WEBSITE_OWNER_NAME).split('+') | Select-Object -First 1) + '##SUBSCRIPTION##' = Get-CIPPAzFunctionAppSubId '##TOKENIP##' = $AccessTokenDetails.IPAddress } } catch { Write-Host $_.Exception.Message } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 index 52d1a81378ad..513e0bd5aca0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 @@ -13,70 +13,9 @@ function Invoke-ExecPermissionRepair { param($Request, $TriggerMetadata) try { - $Table = Get-CippTable -tablename 'AppPermissions' $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json - - $CurrentPermissions = Get-CippSamPermissions - if (($CurrentPermissions.MissingPermissions | Measure-Object).Count -gt 0) { - Write-Information 'Missing permissions found' - $MissingPermissions = $CurrentPermissions.MissingPermissions - $Permissions = $CurrentPermissions.Permissions - - $AppIds = @($Permissions.PSObject.Properties.Name + $MissingPermissions.PSObject.Properties.Name) - - $NewPermissions = @{} - foreach ($AppId in $AppIds) { - if (!$AppId) { continue } - $ApplicationPermissions = [system.collections.generic.list[object]]::new() - $DelegatedPermissions = [system.collections.generic.list[object]]::new() - - # App permissions - foreach ($Permission in $Permissions.$AppId.applicationPermissions) { - $ApplicationPermissions.Add($Permission) - } - if (($MissingPermissions.$AppId.applicationPermissions | Measure-Object).Count -gt 0) { - foreach ($MissingPermission in $MissingPermissions.$AppId.applicationPermissions) { - Write-Host "Adding missing permission: $MissingPermission" - $ApplicationPermissions.Add($MissingPermission) - } - } - - # Delegated permissions - foreach ($Permission in $Permissions.$AppId.delegatedPermissions) { - $DelegatedPermissions.Add($Permission) - } - if (($MissingPermissions.$AppId.delegatedPermissions | Measure-Object).Count -gt 0) { - foreach ($MissingPermission in $MissingPermissions.$AppId.delegatedPermissions) { - Write-Host "Adding missing permission: $MissingPermission" - $DelegatedPermissions.Add($MissingPermission) - } - } - # New permission object - $NewPermissions.$AppId = @{ - applicationPermissions = @($ApplicationPermissions | Sort-Object -Property label) - delegatedPermissions = @($DelegatedPermissions | Sort-Object -Property label) - } - } - - - $Entity = @{ - 'PartitionKey' = 'CIPP-SAM' - 'RowKey' = 'CIPP-SAM' - 'Permissions' = [string]([PSCustomObject]$NewPermissions | ConvertTo-Json -Depth 10 -Compress) - 'UpdatedBy' = $User.UserDetails ?? 'CIPP-API' - } - $Table = Get-CIPPTable -TableName 'AppPermissions' - $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force - - $Body = @{ - 'Results' = 'Permissions Updated' - } - Write-LogMessage -headers $Request.Headers -API 'ExecPermissionRepair' -message 'CIPP-SAM Permissions Updated' -Sev 'Info' -LogData $Permissions - } else { - $Body = @{ - 'Results' = 'No permissions to update' - } - } + $Result = Update-CippSamPermissions -UpdatedBy ($User.UserDetails ?? 'CIPP-API') + $Body = @{'Results' = $Result } } catch { $Body = @{ 'Results' = "$($_.Exception.Message) - at line $($_.InvocationInfo.ScriptLineNumber)" diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 index 37f08dcd22de..61a133046e41 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 @@ -12,13 +12,26 @@ function Invoke-ExecRestoreBackup { try { if ($Request.Body.BackupName -like 'CippBackup_*') { - $Table = Get-CippTable -tablename 'CIPPBackup' - $Backup = Get-CippAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.BackupName)' or OriginalEntityId eq '$($Request.Body.BackupName)'" + # Use Get-CIPPBackup which already handles fetching from blob storage + $Backup = Get-CIPPBackup -Type 'CIPP' -Name $Request.Body.BackupName if ($Backup) { - $BackupData = $Backup.Backup | ConvertFrom-Json -ErrorAction SilentlyContinue | Select-Object * -ExcludeProperty ETag, Timestamp + $raw = $Backup.Backup + $BackupData = $null + + # Get-CIPPBackup already fetches blob content, so raw should be JSON string + try { + if ($raw -is [string]) { + $BackupData = $raw | ConvertFrom-Json -ErrorAction Stop + } else { + $BackupData = $raw | Select-Object * -ExcludeProperty ETag, Timestamp + } + } catch { + throw "Failed to parse backup JSON: $($_.Exception.Message)" + } + $BackupData | ForEach-Object { $Table = Get-CippTable -tablename $_.table - $ht2 = @{ } + $ht2 = @{} $_.psobject.properties | ForEach-Object { $ht2[$_.Name] = [string]$_.Value } $Table.Entity = $ht2 Add-CIPPAzDataTableEntity @Table -Force diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 index 24328bb9d77b..73b1a1bce23b 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 @@ -23,6 +23,14 @@ function Invoke-ExecTenantGroup { $dynamicRules = $Request.Body.dynamicRules $ruleLogic = $Request.Body.ruleLogic ?? 'and' + $AllowedGroups = Test-CippAccess -Request $Request -GroupList + if ($AllowedGroups -notcontains 'AllGroups') { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Forbidden + Body = @{ Results = 'You do not have permission to manage tenant groups.' } + }) + } + switch ($Action) { 'AddEdit' { $Results = [System.Collections.Generic.List[object]]::new() @@ -37,7 +45,7 @@ function Invoke-ExecTenantGroup { } $GroupEntity | Add-Member -NotePropertyName 'GroupType' -NotePropertyValue $groupType -Force if ($groupType -eq 'dynamic' -and $dynamicRules) { - $GroupEntity.DynamicRules = "$($dynamicRules | ConvertTo-Json -Depth 100 -Compress)" + $GroupEntity | Add-Member -NotePropertyName 'DynamicRules' -NotePropertyValue "$($dynamicRules | ConvertTo-Json -Depth 100 -Compress)" -Force $GroupEntity | Add-Member -NotePropertyName 'RuleLogic' -NotePropertyValue $ruleLogic -Force } else { $GroupEntity | Add-Member -NotePropertyName 'RuleLogic' -NotePropertyValue $null -Force diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 new file mode 100644 index 000000000000..ef058b8a94b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 @@ -0,0 +1,97 @@ +function Invoke-ExecTimeSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $Subscription = Get-CIPPAzFunctionAppSubId + $Owner = $env:WEBSITE_OWNER_NAME + + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + + $FunctionName = $env:WEBSITE_SITE_NAME + $Timezone = $Request.Body.Timezone.value ?? $Request.Body.Timezone + $BusinessHoursStart = $Request.Body.BusinessHoursStart.value ?? $Request.Body.BusinessHoursStart + + # Validate timezone format + if (-not $Timezone) { + throw 'Timezone is required' + } + + if (!$IsLinux) { + # Get Timezone standard name for Windows + $Timezone = Get-TimeZone -Id $Timezone | Select-Object -ExpandProperty StandardName + } + + # Calculate business hours end time (10 hours after start) + $BusinessHoursEnd = $null + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + if (-not $BusinessHoursStart) { + throw 'Business hours start time is required for Flex Consumption plans' + } + + # Validate time format (HH:mm) + if ($BusinessHoursStart -notmatch '^\d{2}:\d{2}$') { + throw 'Business hours start time must be in HH:mm format' + } + + # Calculate end time (start + 10 hours) + $StartTime = [DateTime]::ParseExact($BusinessHoursStart, 'HH:mm', $null) + $EndTime = $StartTime.AddHours(10) + $BusinessHoursEnd = $EndTime.ToString('HH:mm') + } + + Write-Information "Updating function app time settings: Timezone=$Timezone, BusinessHoursStart=$BusinessHoursStart, BusinessHoursEnd=$BusinessHoursEnd" + + # Build app settings hashtable + $AppSettings = @{ + 'WEBSITE_TIME_ZONE' = $Timezone + } + + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + $AppSettings['CIPP_BUSINESS_HOURS_START'] = $BusinessHoursStart + $AppSettings['CIPP_BUSINESS_HOURS_END'] = $BusinessHoursEnd + } + + # Update app settings using ARM REST via managed identity + Update-CIPPAzFunctionAppSetting -Name $FunctionName -ResourceGroupName $RGName -AppSetting $AppSettings | Out-Null + + Write-LogMessage -API 'ExecTimeSettings' -headers $Request.Headers -message "Updated time settings: Timezone=$Timezone, BusinessHours=$BusinessHoursStart-$BusinessHoursEnd" -Sev 'Info' + + $Results = @{ + Results = 'Time settings updated successfully. Please note that timezone changes may require a function app restart to take effect.' + Timezone = $Timezone + SKU = $env:WEBSITE_SKU + } + + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + $Results.BusinessHoursStart = $BusinessHoursStart + $Results.BusinessHoursEnd = $BusinessHoursEnd + } + + return ([HttpResponseContext]@{ + StatusCode = [httpstatusCode]::OK + Body = $Results + }) + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'ExecTimeSettings' -headers $Request.Headers -message "Failed to update time settings: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + + return ([HttpResponseContext]@{ + StatusCode = [httpstatusCode]::BadRequest + Body = @{ + Results = "Failed to update time settings: $($ErrorMessage.NormalizedError)" + } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 index 0fac4036a55f..3c59304b3771 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 @@ -13,13 +13,27 @@ function Invoke-ListCustomRole { $AccessRoleGroupTable = Get-CippTable -tablename 'AccessRoleGroups' $RoleGroups = Get-CIPPAzDataTableEntity @AccessRoleGroupTable + + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' + $AccessIPRanges = Get-CIPPAzDataTableEntity @AccessIPRangeTable $TenantList = Get-Tenants -IncludeErrors $RoleList = [System.Collections.Generic.List[pscustomobject]]::new() foreach ($Role in $DefaultRoles) { $RoleGroup = $RoleGroups | Where-Object -Property RowKey -EQ $Role - + + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $Role + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + } else { + $IPRanges = @() + } + $RoleList.Add([pscustomobject]@{ RoleName = $Role Type = 'Built-In' @@ -28,6 +42,7 @@ function Invoke-ListCustomRole { BlockedTenants = @() EntraGroup = $RoleGroup.GroupName ?? $null EntraGroupId = $RoleGroup.GroupId ?? $null + IPRange = $IPRanges }) } foreach ($Role in $CustomRoles) { @@ -129,3 +144,16 @@ function Invoke-ListCustomRole { Body = ConvertTo-Json -InputObject $Body -Depth 5 }) } + + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $Role.RowKey + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue $IPRanges -Force + } else { + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue @() -Force + } + diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 index 643d1f6eb039..d512c090da28 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 @@ -25,6 +25,13 @@ function Invoke-ListCustomVariables { Type = 'reserved' Category = 'tenant' }, + @{ + Name = 'organizationid' + Variable = '%organizationid%' + Description = 'The tenant customer ID' + Type = 'reserved' + Category = 'tenant' + }, @{ Name = 'tenantfilter' Variable = '%tenantfilter%' @@ -167,6 +174,14 @@ function Invoke-ListCustomVariables { $ReservedVariables = $ReservedVariables | Where-Object { $_.Category -ne 'system' } } + # Filter out global reserved variables if requested (for tenant group rules) + # These variables are the same for all tenants so they're not useful for grouping + if ($Request.Query.excludeGlobalReserved -eq 'true') { + $ReservedVariables = $ReservedVariables | Where-Object { + $_.Category -notin @('partner', 'cipp', 'system') + } + } + # Add reserved variables first foreach ($Variable in $ReservedVariables) { $VariableMap[$Variable.Name] = $Variable diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 index 7de5c13c4ad9..4aae7a0858df 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 @@ -11,7 +11,7 @@ function Invoke-ListTenantGroups { param($Request, $TriggerMetadata) $groupFilter = $Request.Query.groupId ?? $Request.Body.groupId - $TenantGroups = (Get-TenantGroups -GroupId $groupFilter) ?? @() + $TenantGroups = (Get-TenantGroups -GroupId $groupFilter -SkipCache) ?? @() $Body = @{ Results = @($TenantGroups) } return ([HttpResponseContext]@{ diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 index 1bf97df9724b..154edd7c73af 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 @@ -11,13 +11,6 @@ function Invoke-ExecCombinedSetup { #Make arraylist of Results $Results = [System.Collections.ArrayList]::new() try { - # Set up Azure context if needed for Key Vault access - if (($env:AzureWebJobsStorage -ne 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -ne 'true') -and $env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - } if ($request.body.selectedBaselines -and $request.body.baselineOption -eq 'downloadBaselines') { #do a single download of the selected baselines. foreach ($template in $request.body.selectedBaselines) { @@ -88,19 +81,19 @@ function Invoke-ExecCombinedSetup { $Results.add('Manual credentials have been set in the DevSecrets table.') } else { if ($Request.Body.tenantId) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantId -AsPlainText -Force) $Results.add('Set tenant ID in Key Vault.') } if ($Request.Body.applicationId) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationId -AsPlainText -Force) $Results.add('Set application ID in Key Vault.') } if ($Request.Body.applicationSecret) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationSecret -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationSecret -AsPlainText -Force) $Results.add('Set application secret in Key Vault.') } if ($Request.Body.RefreshToken) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'refreshtoken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'refreshtoken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) $Results.add('Set refresh token in Key Vault.') } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 index 1aa1fb57bf8a..3e00555ce247 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 @@ -24,7 +24,7 @@ function Invoke-ExecCreateSAMApp { $state = 'updated' #remove the entire web object from the app registration $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json $app.web.redirectUris = @("$($url)/authredirect") $app = ConvertTo-Json -Depth 15 -Compress -InputObject $app @@ -32,7 +32,7 @@ function Invoke-ExecCreateSAMApp { } else { $state = 'created' $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json $app.web.redirectUris = @("$($url)/authredirect") $app = $app | ConvertTo-Json -Depth 15 @@ -83,9 +83,9 @@ function Invoke-ExecCreateSAMApp { Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { - Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) } $ConfigTable = Get-CippTable -tablename 'Config' #update the ConfigTable with the latest appId, for caching compare. diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 index fc124c54c5c7..92de081e10e4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 @@ -35,13 +35,6 @@ function Invoke-ExecSAMSetup { } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } - } else { - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - } } if (!$env:SetFromProfile) { Write-Information "We're reloading from KV" @@ -63,10 +56,10 @@ function Invoke-ExecSAMSetup { if ($Request.Body.ApplicationSecret) { $Secret.ApplicationSecret = $Request.Body.ApplicationSecret } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { - if ($Request.Body.tenantid) { Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantid -AsPlainText -Force) } - if ($Request.Body.RefreshToken) { Set-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) } - if ($Request.Body.applicationid) { Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationid -AsPlainText -Force) } - if ($Request.Body.applicationsecret) { Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationsecret -AsPlainText -Force) } + if ($Request.Body.tenantid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantid -AsPlainText -Force) } + if ($Request.Body.RefreshToken) { Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) } + if ($Request.Body.applicationid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationid -AsPlainText -Force) } + if ($Request.Body.applicationsecret) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationsecret -AsPlainText -Force) } } $Results = @{ Results = 'The keys have been replaced. Please perform a permissions check.' } @@ -82,7 +75,7 @@ function Invoke-ExecSAMSetup { if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $clientsecret = $Secret.ApplicationSecret } else { - $clientsecret = Get-AzKeyVaultSecret -VaultName $kv -Name 'ApplicationSecret' -AsPlainText + $clientsecret = Get-CippKeyVaultSecret -VaultName $kv -Name 'ApplicationSecret' -AsPlainText } if (!$clientsecret) { $clientsecret = $env:ApplicationSecret } Write-Information "client_id=$appid&scope=https://graph.microsoft.com/.default+offline_access+openid+profile&code=$($Request.Query.code)&grant_type=authorization_code&redirect_uri=$($url)&client_secret=$clientsecret" #-Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" @@ -92,7 +85,7 @@ function Invoke-ExecSAMSetup { $Secret.RefreshToken = $RefreshToken.refresh_token Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { - Set-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $RefreshToken.refresh_token -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $RefreshToken.refresh_token -AsPlainText -Force) } $Results = 'Authentication is now complete. You may now close this window.' @@ -145,7 +138,7 @@ function Invoke-ExecSAMSetup { if ($PartnerSetup) { #$app = Get-Content '.\Cache_SAMSetup\SAMManifest.json' | ConvertFrom-Json $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json $App.web.redirectUris = @($App.web.redirectUris + $URL) @@ -192,9 +185,9 @@ function Invoke-ExecSAMSetup { Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force Write-Information ($Secret | ConvertTo-Json -Depth 5) } else { - Set-AzKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) } $Results = @{'message' = 'Created application. Waiting 30 seconds for Azure propagation'; step = $step } } else { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 index a046cc2e92e8..6fd1a97bf94a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 @@ -39,7 +39,7 @@ Function Invoke-ExecTokenExchange { Write-LogMessage -API $APIName -message 'Retrieved client secret from development secrets' -Sev 'Info' } else { try { - $ClientSecret = (Get-AzKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -AsPlainText) + $ClientSecret = (Get-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -AsPlainText) Write-LogMessage -API $APIName -message 'Retrieved client secret from key vault' -Sev 'Info' } catch { Write-LogMessage -API $APIName -message "Failed to retrieve client secret: $($_.Exception.Message)" -Sev 'Error' diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 index f40d2fb092d1..6a6dfae29ccc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecUpdateRefreshToken { +function Invoke-ExecUpdateRefreshToken { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -29,12 +29,12 @@ Function Invoke-ExecUpdateRefreshToken { Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { if ($env:TenantID -eq $Request.body.tenantId) { - Set-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) } else { Write-Host "$($env:TenantID) does not match $($Request.body.tenantId) - we're adding a new secret for the tenant." $name = $Request.body.tenantId try { - Set-AzKeyVaultSecret -VaultName $kv -Name $name -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name $name -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) } catch { Write-Host "Failed to set secret $name in KeyVault. $($_.Exception.Message)" throw $_ @@ -49,16 +49,21 @@ Function Invoke-ExecUpdateRefreshToken { $TenantName = $request.body.tenantId } $Results = @{ - 'message' = "Successfully updated the credentials for $($TenantName). You may continue to the next step, or add additional tenants if required." - 'severity' = 'success' + 'resultText' = "Successfully updated the credentials for $($TenantName). You may continue to the next step, or add additional tenants if required." + 'state' = 'success' } } catch { - $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)"; severity = 'failed' } - } + $Results = [pscustomobject]@{ + 'Results' = @{ + resultText = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)" + state = 'failed' + } + } - return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 index 975eefa58cc8..1a8b64a3c3a9 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 @@ -1,7 +1,7 @@ using namespace System.Collections.Generic using namespace System.Text.RegularExpressions -Function Invoke-ListContacts { +function Invoke-ListContacts { <# .FUNCTIONALITY Entrypoint @@ -18,10 +18,9 @@ Function Invoke-ListContacts { # Early validation and exit if (-not $TenantFilter) { return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = 'tenantFilter is required' - }) - return + StatusCode = [HttpStatusCode]::BadRequest + Body = 'tenantFilter is required' + }) } # Pre-compiled regex for MailTip cleaning @@ -52,35 +51,35 @@ Function Invoke-ListContacts { $phones = if ($phoneCapacity -gt 0) { $phoneList = [List[hashtable]]::new($phoneCapacity) if ($Contact.Phone) { - $phoneList.Add(@{ type = "business"; number = $Contact.Phone }) + $phoneList.Add(@{ type = 'business'; number = $Contact.Phone }) } if ($Contact.MobilePhone) { - $phoneList.Add(@{ type = "mobile"; number = $Contact.MobilePhone }) + $phoneList.Add(@{ type = 'mobile'; number = $Contact.MobilePhone }) } $phoneList.ToArray() } else { @() } return @{ - id = $Contact.Id - displayName = $Contact.DisplayName - givenName = $Contact.FirstName - surname = $Contact.LastName - mail = $mailAddress - companyName = $Contact.Company - jobTitle = $Contact.Title - website = $Contact.WebPage - notes = $Contact.Notes - hidefromGAL = $MailContact.HiddenFromAddressListsEnabled - mailTip = $cleanMailTip + id = $Contact.Id + displayName = $Contact.DisplayName + givenName = $Contact.FirstName + surname = $Contact.LastName + mail = $mailAddress + companyName = $Contact.Company + jobTitle = $Contact.Title + website = $Contact.WebPage + notes = $Contact.Notes + hidefromGAL = $MailContact.HiddenFromAddressListsEnabled + mailTip = $cleanMailTip onPremisesSyncEnabled = $Contact.IsDirSynced - addresses = @(@{ - street = $Contact.StreetAddress - city = $Contact.City - state = $Contact.StateOrProvince - countryOrRegion = $Contact.CountryOrRegion - postalCode = $Contact.PostalCode - }) - phones = $phones + addresses = @(@{ + street = $Contact.StreetAddress + city = $Contact.City + state = $Contact.StateOrProvince + countryOrRegion = $Contact.CountryOrRegion + postalCode = $Contact.PostalCode + }) + phones = $phones } } @@ -98,20 +97,29 @@ Function Invoke-ListContacts { } if (!$Contact -or !$MailContact) { - throw "Contact not found or insufficient permissions" + throw 'Contact not found or insufficient permissions' } $ContactResponse = ConvertTo-ContactObject -Contact $Contact -MailContact $MailContact } else { # Get all contacts - simplified approach - Write-Host "Getting all contacts" + Write-Host 'Getting all contacts' $ContactResponse = New-EXORequest -tenantid $TenantFilter -cmdlet 'Get-Contact' -cmdParams @{ - Filter = "RecipientTypeDetails -eq 'MailContact'" + Filter = "RecipientTypeDetails -eq 'MailContact'" ResultSize = 'Unlimited' } | Select-Object -Property City, Company, Department, DisplayName, FirstName, LastName, IsDirSynced, Guid, WindowsEmailAddress + # Add Graph ID to each contact based on email match + $GraphContacts = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/contacts' -tenantid $TenantFilter + foreach ($contact in $ContactResponse) { + $GraphMatch = $GraphContacts | Where-Object { $_.mail -eq $contact.WindowsEmailAddress } + if ($GraphMatch) { + $contact | Add-Member -MemberType NoteProperty -Name 'graphId' -Value $GraphMatch.id -Force + } + } + # Return empty array if no contacts found if (!$ContactResponse) { $ContactResponse = @() @@ -128,7 +136,7 @@ Function Invoke-ListContacts { } return ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $ContactResponse - }) + StatusCode = $StatusCode + Body = $ContactResponse + }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 index 4e71315f66ef..de4e79bf2b70 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 @@ -1,4 +1,4 @@ -Function Invoke-RemoveContactTemplates { +function Invoke-RemoveContactTemplates { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -8,10 +8,10 @@ Function Invoke-RemoveContactTemplates { [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $User = $Request.Headers + $Headers = $Request.Headers - Write-LogMessage -Headers $User -API $APINAME -message 'Accessed this API' -Sev 'Debug' - $ID = $request.query.ID ?? $request.body.ID + Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $Request.Query.ID ?? $Request.Body.ID try { $Table = Get-CippTable -tablename 'templates' @@ -19,12 +19,12 @@ Function Invoke-RemoveContactTemplates { $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey Remove-AzDataTableEntity -Force @Table -Entity $ClearRow $Result = "Removed Contact Template with ID $ID." - Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Info' + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ $Result = "Failed to remove Contact template with ID $ID. Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Error' -LogData $ErrorMessage + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage $StatusCode = [HttpStatusCode]::Forbidden } return ([HttpResponseContext]@{ diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 index 0b31105cf10c..e676500b27bd 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecCopyForSent { +function Invoke-ExecCopyForSent { <# .FUNCTIONALITY Entrypoint @@ -13,13 +13,21 @@ Function Invoke-ExecCopyForSent { # Interact with query parameters or the body of the request. - $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $UserID = $Request.Query.ID ?? $Request.Body.ID - $MessageCopyForSentAsEnabled = $Request.Query.MessageCopyForSentAsEnabled ?? $Request.Body.MessageCopyForSentAsEnabled - $MessageCopyForSentAsEnabled = [System.Convert]::ToBoolean($MessageCopyForSentAsEnabled) + $MessageCopyState = $Request.Query.messageCopyState ?? $Request.Body.messageCopyState + $MessageCopyState = [System.Convert]::ToBoolean($MessageCopyState) - Try { - $Result = Set-CIPPMessageCopy -userid $UserID -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers -MessageCopyForSentAsEnabled $MessageCopyForSentAsEnabled + try { + $params = @{ + UserId = $UserID + TenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + MessageCopyForSentAsEnabled = $MessageCopyState + MessageCopyForSendOnBehalfEnabled = $MessageCopyState + } + $Result = Set-CIPPMessageCopy @params $StatusCode = [HttpStatusCode]::OK } catch { $Result = "$($_.Exception.Message)" diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 index 65a0ee9d6e7c..648d7251deee 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 @@ -31,9 +31,6 @@ function Invoke-ListMailboxRules { QueueMessage = "Still loading data for $TenantFilter. Please check back in a few more minutes" QueueId = $RunningQueue.RowKey } - [PSCustomObject]@{ - Waiting = $true - } } elseif ((!$Rows -and !$RunningQueue) -or ($TenantFilter -eq 'AllTenants' -and ($Rows | Measure-Object).Count -eq 1)) { Write-Information "No cached mailbox rules found for $TenantFilter, starting new orchestration" if ($TenantFilter -eq 'AllTenants') { @@ -58,7 +55,7 @@ function Invoke-ListMailboxRules { SkipLog = $true } #Write-Host ($InputObject | ConvertTo-Json) - $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) Write-Host "Started mailbox rules orchestration with ID = '$InstanceId'" } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 index 1249f3f14a6c..a0e307c1cba8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 @@ -19,7 +19,7 @@ function Invoke-ListSharedMailboxAccountEnabled { # Match the User $User = $AllUsersInfo | Where-Object { $_.userPrincipalName -eq $SharedMailbox.userPrincipalName } | Select-Object -First 1 - if ($User) { + if ($User.accountEnabled) { # Return all shared mailboxes with license information [PSCustomObject]@{ UserPrincipalName = $User.userPrincipalName diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 index 15467104ebe6..20b531f56a56 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ListConnectionFilter { +function Invoke-ListConnectionFilter { <# .FUNCTIONALITY Entrypoint @@ -7,10 +7,10 @@ Function Invoke-ListConnectionFilter { #> [CmdletBinding()] param($Request, $TriggerMetadata) - $Tenantfilter = $request.Query.tenantfilter + $TenantFilter = $request.Query.tenantFilter try { - $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedConnectionFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* + $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-HostedConnectionFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 index b01f46feebf4..d785b015f940 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 @@ -19,16 +19,13 @@ function Invoke-ListMailQuarantine { $Filter = "PartitionKey eq '$PartitionKey'" $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue | Where-Object { $_.Reference -eq $QueueReference -and $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } # If a queue is running, we will not start a new one if ($RunningQueue) { $Metadata = [PSCustomObject]@{ QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' QueueId = $RunningQueue.RowKey } - [PSCustomObject]@{ - Waiting = $true - } } elseif (!$Rows -and !$RunningQueue) { # If no rows are found and no queue is running, we will start a new one $TenantList = Get-Tenants -IncludeErrors @@ -49,16 +46,13 @@ function Invoke-ListMailQuarantine { } SkipLog = $true } - Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) - [PSCustomObject]@{ - Waiting = $true - } + $null = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) } else { $Metadata = [PSCustomObject]@{ QueueId = $RunningQueue.RowKey ?? $null } - $messages = $Rows - foreach ($message in $messages) { + $Messages = $Rows + foreach ($message in $Messages) { $messageObj = $message.QuarantineMessage | ConvertFrom-Json $messageObj | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $message.Tenant -Force $messageObj diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 index 84b8abd072ca..e0ec0e5407d0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 @@ -1,4 +1,10 @@ function Invoke-ListExoRequest { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> param($Request, $TriggerMetadata) try { $AllowedVerbs = @( diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ExecNewTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 similarity index 58% rename from Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ExecNewTransportRule.ps1 rename to Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 index d7851768da14..6d0cae8a4d61 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ExecNewTransportRule.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 @@ -1,11 +1,11 @@ -function Invoke-ExecNewTransportRule { +function Invoke-AddEditTransportRule { <# .FUNCTIONALITY Entrypoint .ROLE Exchange.TransportRule.ReadWrite .DESCRIPTION - This function creates a new transport rule (mail flow rule). + This function creates a new transport rule or edits an existing one (mail flow rule). #> [CmdletBinding()] param($Request, $TriggerMetadata) @@ -13,9 +13,8 @@ function Invoke-ExecNewTransportRule { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - # Interact with query parameters or the body of the request. - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $TenantFilter = $Request.Body.tenantFilter if (!$TenantFilter) { return ([HttpResponseContext]@{ @@ -26,11 +25,14 @@ function Invoke-ExecNewTransportRule { } # Extract basic rule settings from body + $Identity = $Request.Body.ruleId $Name = $Request.Body.Name $Priority = $Request.Body.Priority $Comments = $Request.Body.Comments $Mode = $Request.Body.Mode $SetAuditSeverity = $Request.Body.SetAuditSeverity + $State = $Request.Body.State + $CmdletState = $Request.Body.State ?? $Request.Body.Enabled $Enabled = $Request.Body.Enabled $StopRuleProcessing = $Request.Body.StopRuleProcessing $SenderAddressLocation = $Request.Body.SenderAddressLocation @@ -40,8 +42,10 @@ function Invoke-ExecNewTransportRule { # Extract condition fields $From = $Request.Body.From $FromScope = $Request.Body.FromScope + $FromMemberOf = $Request.Body.FromMemberOf $SentTo = $Request.Body.SentTo $SentToScope = $Request.Body.SentToScope + $SentToMemberOf = $Request.Body.SentToMemberOf $SubjectContainsWords = $Request.Body.SubjectContainsWords $SubjectMatchesPatterns = $Request.Body.SubjectMatchesPatterns $SubjectOrBodyContainsWords = $Request.Body.SubjectOrBodyContainsWords @@ -58,10 +62,21 @@ function Invoke-ExecNewTransportRule { $MessageTypeMatches = $Request.Body.MessageTypeMatches $SenderDomainIs = $Request.Body.SenderDomainIs $RecipientDomainIs = $Request.Body.RecipientDomainIs + $RecipientAddressContainsWords = $Request.Body.RecipientAddressContainsWords + $RecipientAddressMatchesPatterns = $Request.Body.RecipientAddressMatchesPatterns + $AnyOfRecipientAddressContainsWords = $Request.Body.AnyOfRecipientAddressContainsWords + $AnyOfRecipientAddressMatchesPatterns = $Request.Body.AnyOfRecipientAddressMatchesPatterns + $AnyOfToHeader = $Request.Body.AnyOfToHeader + $AnyOfToHeaderMemberOf = $Request.Body.AnyOfToHeaderMemberOf + $AnyOfCcHeader = $Request.Body.AnyOfCcHeader + $AnyOfCcHeaderMemberOf = $Request.Body.AnyOfCcHeaderMemberOf + $AnyOfToCcHeader = $Request.Body.AnyOfToCcHeader + $AnyOfToCcHeaderMemberOf = $Request.Body.AnyOfToCcHeaderMemberOf $HeaderContainsWords = $Request.Body.HeaderContainsWords $HeaderContainsWordsMessageHeader = $Request.Body.HeaderContainsWordsMessageHeader $HeaderMatchesPatterns = $Request.Body.HeaderMatchesPatterns $HeaderMatchesPatternsMessageHeader = $Request.Body.HeaderMatchesPatternsMessageHeader + $SenderIpRanges = $Request.Body.SenderIpRanges # Extract action fields $DeleteMessage = $Request.Body.DeleteMessage @@ -89,8 +104,10 @@ function Invoke-ExecNewTransportRule { # Extract exception fields (ExceptIf versions) $ExceptIfFrom = $Request.Body.ExceptIfFrom $ExceptIfFromScope = $Request.Body.ExceptIfFromScope + $ExceptIfFromMemberOf = $Request.Body.ExceptIfFromMemberOf $ExceptIfSentTo = $Request.Body.ExceptIfSentTo $ExceptIfSentToScope = $Request.Body.ExceptIfSentToScope + $ExceptIfSentToMemberOf = $Request.Body.ExceptIfSentToMemberOf $ExceptIfSubjectContainsWords = $Request.Body.ExceptIfSubjectContainsWords $ExceptIfSubjectMatchesPatterns = $Request.Body.ExceptIfSubjectMatchesPatterns $ExceptIfSubjectOrBodyContainsWords = $Request.Body.ExceptIfSubjectOrBodyContainsWords @@ -107,16 +124,21 @@ function Invoke-ExecNewTransportRule { $ExceptIfMessageTypeMatches = $Request.Body.ExceptIfMessageTypeMatches $ExceptIfSenderDomainIs = $Request.Body.ExceptIfSenderDomainIs $ExceptIfRecipientDomainIs = $Request.Body.ExceptIfRecipientDomainIs + $ExceptIfRecipientAddressContainsWords = $Request.Body.ExceptIfRecipientAddressContainsWords + $ExceptIfRecipientAddressMatchesPatterns = $Request.Body.ExceptIfRecipientAddressMatchesPatterns + $ExceptIfAnyOfRecipientAddressContainsWords = $Request.Body.ExceptIfAnyOfRecipientAddressContainsWords + $ExceptIfAnyOfRecipientAddressMatchesPatterns = $Request.Body.ExceptIfAnyOfRecipientAddressMatchesPatterns + $ExceptIfAnyOfToHeader = $Request.Body.ExceptIfAnyOfToHeader + $ExceptIfAnyOfToHeaderMemberOf = $Request.Body.ExceptIfAnyOfToHeaderMemberOf + $ExceptIfAnyOfCcHeader = $Request.Body.ExceptIfAnyOfCcHeader + $ExceptIfAnyOfCcHeaderMemberOf = $Request.Body.ExceptIfAnyOfCcHeaderMemberOf + $ExceptIfAnyOfToCcHeader = $Request.Body.ExceptIfAnyOfToCcHeader + $ExceptIfAnyOfToCcHeaderMemberOf = $Request.Body.ExceptIfAnyOfToCcHeaderMemberOf $ExceptIfHeaderContainsWords = $Request.Body.ExceptIfHeaderContainsWords $ExceptIfHeaderContainsWordsMessageHeader = $Request.Body.ExceptIfHeaderContainsWordsMessageHeader $ExceptIfHeaderMatchesPatterns = $Request.Body.ExceptIfHeaderMatchesPatterns $ExceptIfHeaderMatchesPatternsMessageHeader = $Request.Body.ExceptIfHeaderMatchesPatternsMessageHeader - - function Test-RuleExists { - param($TenantFilter, $RuleName) - $ExistingRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' -useSystemMailbox $true - return $ExistingRules | Where-Object { $_.Name -eq $RuleName } - } + $ExceptIfSenderIpRanges = $Request.Body.ExceptIfSenderIpRanges # Helper function to process array fields function Process-ArrayField { @@ -187,15 +209,48 @@ function Invoke-ExecNewTransportRule { return @($Field) } + # Convert state to bool when creating new rule + if ($State -eq "Disabled") { + $State = $false + } + + if ($State -eq "Enabled") { + $State = $true + } + + if ($Enabled -eq "Disabled") { + $State = $false + } + + if ($Enabled -eq "Enabled") { + $State = $true + } + # Process array fields for recipients/users $From = Process-ArrayField -Field $From + $FromMemberOf = Process-ArrayField -Field $FromMemberOf $SentTo = Process-ArrayField -Field $SentTo + $SentToMemberOf = Process-ArrayField -Field $SentToMemberOf + $AnyOfToHeader = Process-ArrayField -Field $AnyOfToHeader + $AnyOfToHeaderMemberOf = Process-ArrayField -Field $AnyOfToHeaderMemberOf + $AnyOfCcHeader = Process-ArrayField -Field $AnyOfCcHeader + $AnyOfCcHeaderMemberOf = Process-ArrayField -Field $AnyOfCcHeaderMemberOf + $AnyOfToCcHeader = Process-ArrayField -Field $AnyOfToCcHeader + $AnyOfToCcHeaderMemberOf = Process-ArrayField -Field $AnyOfToCcHeaderMemberOf $RedirectMessageTo = Process-ArrayField -Field $RedirectMessageTo $BlindCopyTo = Process-ArrayField -Field $BlindCopyTo $CopyTo = Process-ArrayField -Field $CopyTo $ModerateMessageByUser = Process-ArrayField -Field $ModerateMessageByUser $ExceptIfFrom = Process-ArrayField -Field $ExceptIfFrom + $ExceptIfFromMemberOf = Process-ArrayField -Field $ExceptIfFromMemberOf $ExceptIfSentTo = Process-ArrayField -Field $ExceptIfSentTo + $ExceptIfSentToMemberOf = Process-ArrayField -Field $ExceptIfSentToMemberOf + $ExceptIfAnyOfToHeader = Process-ArrayField -Field $ExceptIfAnyOfToHeader + $ExceptIfAnyOfToHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfToHeaderMemberOf + $ExceptIfAnyOfCcHeader = Process-ArrayField -Field $ExceptIfAnyOfCcHeader + $ExceptIfAnyOfCcHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfCcHeaderMemberOf + $ExceptIfAnyOfToCcHeader = Process-ArrayField -Field $ExceptIfAnyOfToCcHeader + $ExceptIfAnyOfToCcHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfToCcHeaderMemberOf $SenderDomainIs = Process-ArrayField -Field $SenderDomainIs $RecipientDomainIs = Process-ArrayField -Field $RecipientDomainIs $ExceptIfSenderDomainIs = Process-ArrayField -Field $ExceptIfSenderDomainIs @@ -211,6 +266,10 @@ function Invoke-ExecNewTransportRule { $AttachmentContainsWords = Process-TextArrayField -Field $AttachmentContainsWords $AttachmentMatchesPatterns = Process-TextArrayField -Field $AttachmentMatchesPatterns $AttachmentExtensionMatchesWords = Process-TextArrayField -Field $AttachmentExtensionMatchesWords + $RecipientAddressContainsWords = Process-TextArrayField -Field $RecipientAddressContainsWords + $RecipientAddressMatchesPatterns = Process-TextArrayField -Field $RecipientAddressMatchesPatterns + $AnyOfRecipientAddressContainsWords = Process-TextArrayField -Field $AnyOfRecipientAddressContainsWords + $AnyOfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $AnyOfRecipientAddressMatchesPatterns $HeaderContainsWords = Process-TextArrayField -Field $HeaderContainsWords $HeaderMatchesPatterns = Process-TextArrayField -Field $HeaderMatchesPatterns @@ -224,47 +283,64 @@ function Invoke-ExecNewTransportRule { $ExceptIfAttachmentContainsWords = Process-TextArrayField -Field $ExceptIfAttachmentContainsWords $ExceptIfAttachmentMatchesPatterns = Process-TextArrayField -Field $ExceptIfAttachmentMatchesPatterns $ExceptIfAttachmentExtensionMatchesWords = Process-TextArrayField -Field $ExceptIfAttachmentExtensionMatchesWords + $ExceptIfRecipientAddressContainsWords = Process-TextArrayField -Field $ExceptIfRecipientAddressContainsWords + $ExceptIfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfRecipientAddressMatchesPatterns + $ExceptIfAnyOfRecipientAddressContainsWords = Process-TextArrayField -Field $ExceptIfAnyOfRecipientAddressContainsWords + $ExceptIfAnyOfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfAnyOfRecipientAddressMatchesPatterns $ExceptIfHeaderContainsWords = Process-TextArrayField -Field $ExceptIfHeaderContainsWords $ExceptIfHeaderMatchesPatterns = Process-TextArrayField -Field $ExceptIfHeaderMatchesPatterns - try { - # Check if rule already exists - if (Test-RuleExists -TenantFilter $TenantFilter -RuleName $Name) { - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Transport rule '$Name' already exists" -Sev 'Warning' - $Result = "Transport rule '$Name' already exists in tenant $TenantFilter" - $StatusCode = [HttpStatusCode]::Conflict - return ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @{Results = $Result } - }) - return - } + # Process IP range fields + $SenderIpRanges = Process-TextArrayField -Field $SenderIpRanges + $ExceptIfSenderIpRanges = Process-TextArrayField -Field $ExceptIfSenderIpRanges + try { # Build command parameters for transport rule $ruleParams = @{ Name = $Name } + # If editing existing rule add Identity + if ($null -ne $Identity) { $ruleParams.Add('Identity', $Identity) } + + # State uses a different cmdlet for updating an existing rule so extract the required data to enable or disable it + $CmdletState = if ($CmdletState -eq 'Enabled') { 'Enable-TransportRule' } else { 'Disable-TransportRule' } + # Basic parameters + if (($null -ne $State) -and (!$Identity)) { $ruleParams.Add('Enabled', $State) } if ($null -ne $Priority) { $ruleParams.Add('Priority', $Priority) } if ($null -ne $Comments) { $ruleParams.Add('Comments', $Comments) } - if ($null -ne $Mode -and $null -ne $Mode.value) { $ruleParams.Add('Mode', $Mode.value) } - if ($null -ne $SetAuditSeverity -and $null -ne $SetAuditSeverity.value -and $SetAuditSeverity.value -ne '') { - $ruleParams.Add('SetAuditSeverity', $SetAuditSeverity.value) + if ($null -ne $Mode) { + $modeValue = if ($Mode.value) { $Mode.value } else { $Mode } + $ruleParams.Add('Mode', $modeValue) + } + if ($null -ne $SetAuditSeverity) { + $severityValue = if ($SetAuditSeverity.value) { $SetAuditSeverity.value } else { $SetAuditSeverity } + if ($severityValue -ne '') { + $ruleParams.Add('SetAuditSeverity', $severityValue) + } } - if ($null -ne $Enabled) { $ruleParams.Add('Enabled', $Enabled) } if ($null -ne $StopRuleProcessing) { $ruleParams.Add('StopRuleProcessing', $StopRuleProcessing) } - if ($null -ne $SenderAddressLocation -and $null -ne $SenderAddressLocation.value) { - $ruleParams.Add('SenderAddressLocation', $SenderAddressLocation.value) + if ($null -ne $SenderAddressLocation) { + $locationValue = if ($SenderAddressLocation.value) { $SenderAddressLocation.value } else { $SenderAddressLocation } + $ruleParams.Add('SenderAddressLocation', $locationValue) } if ($null -ne $ActivationDate -and $ActivationDate -ne '') { $ruleParams.Add('ActivationDate', $ActivationDate) } if ($null -ne $ExpiryDate -and $ExpiryDate -ne '') { $ruleParams.Add('ExpiryDate', $ExpiryDate) } # Condition parameters if ($null -ne $From -and $From.Count -gt 0) { $ruleParams.Add('From', $From) } - if ($null -ne $FromScope -and $null -ne $FromScope.value) { $ruleParams.Add('FromScope', $FromScope.value) } + if ($null -ne $FromScope) { + $fromScopeValue = if ($FromScope.value) { $FromScope.value } else { $FromScope } + $ruleParams.Add('FromScope', $fromScopeValue) + } + if ($null -ne $FromMemberOf -and $FromMemberOf.Count -gt 0) { $ruleParams.Add('FromMemberOf', $FromMemberOf) } if ($null -ne $SentTo -and $SentTo.Count -gt 0) { $ruleParams.Add('SentTo', $SentTo) } - if ($null -ne $SentToScope -and $null -ne $SentToScope.value) { $ruleParams.Add('SentToScope', $SentToScope.value) } + if ($null -ne $SentToScope) { + $sentToScopeValue = if ($SentToScope.value) { $SentToScope.value } else { $SentToScope } + $ruleParams.Add('SentToScope', $sentToScopeValue) + } + if ($null -ne $SentToMemberOf -and $SentToMemberOf.Count -gt 0) { $ruleParams.Add('SentToMemberOf', $SentToMemberOf) } if ($null -ne $SubjectContainsWords -and $SubjectContainsWords.Count -gt 0) { $ruleParams.Add('SubjectContainsWords', $SubjectContainsWords) } @@ -294,12 +370,17 @@ function Invoke-ExecNewTransportRule { } if ($null -ne $AttachmentSizeOver) { $ruleParams.Add('AttachmentSizeOver', $AttachmentSizeOver) } if ($null -ne $MessageSizeOver) { $ruleParams.Add('MessageSizeOver', $MessageSizeOver) } - if ($null -ne $SCLOver -and $null -ne $SCLOver.value) { $ruleParams.Add('SCLOver', $SCLOver.value) } - if ($null -ne $WithImportance -and $null -ne $WithImportance.value) { - $ruleParams.Add('WithImportance', $WithImportance.value) + if ($null -ne $SCLOver) { + $sclValue = if ($SCLOver.value) { $SCLOver.value } else { $SCLOver } + $ruleParams.Add('SCLOver', $sclValue) + } + if ($null -ne $WithImportance) { + $importanceValue = if ($WithImportance.value) { $WithImportance.value } else { $WithImportance } + $ruleParams.Add('WithImportance', $importanceValue) } - if ($null -ne $MessageTypeMatches -and $null -ne $MessageTypeMatches.value) { - $ruleParams.Add('MessageTypeMatches', $MessageTypeMatches.value) + if ($null -ne $MessageTypeMatches) { + $messageTypeValue = if ($MessageTypeMatches.value) { $MessageTypeMatches.value } else { $MessageTypeMatches } + $ruleParams.Add('MessageTypeMatches', $messageTypeValue) } if ($null -ne $SenderDomainIs -and $SenderDomainIs.Count -gt 0) { $ruleParams.Add('SenderDomainIs', $SenderDomainIs) @@ -307,6 +388,36 @@ function Invoke-ExecNewTransportRule { if ($null -ne $RecipientDomainIs -and $RecipientDomainIs.Count -gt 0) { $ruleParams.Add('RecipientDomainIs', $RecipientDomainIs) } + if ($null -ne $RecipientAddressContainsWords -and $RecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('RecipientAddressContainsWords', $RecipientAddressContainsWords) + } + if ($null -ne $RecipientAddressMatchesPatterns -and $RecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('RecipientAddressMatchesPatterns', $RecipientAddressMatchesPatterns) + } + if ($null -ne $AnyOfRecipientAddressContainsWords -and $AnyOfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('AnyOfRecipientAddressContainsWords', $AnyOfRecipientAddressContainsWords) + } + if ($null -ne $AnyOfRecipientAddressMatchesPatterns -and $AnyOfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('AnyOfRecipientAddressMatchesPatterns', $AnyOfRecipientAddressMatchesPatterns) + } + if ($null -ne $AnyOfToHeader -and $AnyOfToHeader.Count -gt 0) { + $ruleParams.Add('AnyOfToHeader', $AnyOfToHeader) + } + if ($null -ne $AnyOfToHeaderMemberOf -and $AnyOfToHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfToHeaderMemberOf', $AnyOfToHeaderMemberOf) + } + if ($null -ne $AnyOfCcHeader -and $AnyOfCcHeader.Count -gt 0) { + $ruleParams.Add('AnyOfCcHeader', $AnyOfCcHeader) + } + if ($null -ne $AnyOfCcHeaderMemberOf -and $AnyOfCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfCcHeaderMemberOf', $AnyOfCcHeaderMemberOf) + } + if ($null -ne $AnyOfToCcHeader -and $AnyOfToCcHeader.Count -gt 0) { + $ruleParams.Add('AnyOfToCcHeader', $AnyOfToCcHeader) + } + if ($null -ne $AnyOfToCcHeaderMemberOf -and $AnyOfToCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfToCcHeaderMemberOf', $AnyOfToCcHeaderMemberOf) + } if ($null -ne $HeaderContainsWords -and $HeaderContainsWords.Count -gt 0 -and $null -ne $HeaderContainsWordsMessageHeader) { $ruleParams.Add('HeaderContainsMessageHeader', $HeaderContainsWordsMessageHeader) $ruleParams.Add('HeaderContainsWords', $HeaderContainsWords) @@ -315,6 +426,9 @@ function Invoke-ExecNewTransportRule { $ruleParams.Add('HeaderMatchesMessageHeader', $HeaderMatchesPatternsMessageHeader) $ruleParams.Add('HeaderMatchesPatterns', $HeaderMatchesPatterns) } + if ($null -ne $SenderIpRanges -and $SenderIpRanges.Count -gt 0) { + $ruleParams.Add('SenderIpRanges', $SenderIpRanges) + } # Action parameters if ($null -ne $DeleteMessage) { $ruleParams.Add('DeleteMessage', $DeleteMessage) } @@ -335,7 +449,10 @@ function Invoke-ExecNewTransportRule { $ruleParams.Add('RejectMessageEnhancedStatusCode', $RejectMessageEnhancedStatusCode) } if ($null -ne $PrependSubject -and $PrependSubject -ne '') { $ruleParams.Add('PrependSubject', $PrependSubject) } - if ($null -ne $SetSCL -and $null -ne $SetSCL.value) { $ruleParams.Add('SetSCL', $SetSCL.value) } + if ($null -ne $SetSCL) { + $setSclValue = if ($SetSCL.value) { $SetSCL.value } else { $SetSCL } + $ruleParams.Add('SetSCL', $setSclValue) + } if ($null -ne $SetHeaderName -and $SetHeaderName -ne '' -and $null -ne $SetHeaderValue) { $ruleParams.Add('SetHeaderName', $SetHeaderName) $ruleParams.Add('SetHeaderValue', $SetHeaderValue) @@ -346,11 +463,13 @@ function Invoke-ExecNewTransportRule { } if ($null -ne $ApplyHtmlDisclaimerText -and $ApplyHtmlDisclaimerText -ne '') { $ruleParams.Add('ApplyHtmlDisclaimerText', $ApplyHtmlDisclaimerText) - if ($null -ne $ApplyHtmlDisclaimerLocation -and $null -ne $ApplyHtmlDisclaimerLocation.value) { - $ruleParams.Add('ApplyHtmlDisclaimerLocation', $ApplyHtmlDisclaimerLocation.value) + if ($null -ne $ApplyHtmlDisclaimerLocation) { + $disclaimerLocationValue = if ($ApplyHtmlDisclaimerLocation.value) { $ApplyHtmlDisclaimerLocation.value } else { $ApplyHtmlDisclaimerLocation } + $ruleParams.Add('ApplyHtmlDisclaimerLocation', $disclaimerLocationValue) } - if ($null -ne $ApplyHtmlDisclaimerFallbackAction -and $null -ne $ApplyHtmlDisclaimerFallbackAction.value) { - $ruleParams.Add('ApplyHtmlDisclaimerFallbackAction', $ApplyHtmlDisclaimerFallbackAction.value) + if ($null -ne $ApplyHtmlDisclaimerFallbackAction) { + $disclaimerFallbackValue = if ($ApplyHtmlDisclaimerFallbackAction.value) { $ApplyHtmlDisclaimerFallbackAction.value } else { $ApplyHtmlDisclaimerFallbackAction } + $ruleParams.Add('ApplyHtmlDisclaimerFallbackAction', $disclaimerFallbackValue) } } if ($null -ne $GenerateIncidentReport -and $GenerateIncidentReport.Count -gt 0) { @@ -363,13 +482,17 @@ function Invoke-ExecNewTransportRule { # Exception parameters (ExceptIf versions) if ($null -ne $ExceptIfFrom -and $ExceptIfFrom.Count -gt 0) { $ruleParams.Add('ExceptIfFrom', $ExceptIfFrom) } - if ($null -ne $ExceptIfFromScope -and $null -ne $ExceptIfFromScope.value) { - $ruleParams.Add('ExceptIfFromScope', $ExceptIfFromScope.value) + if ($null -ne $ExceptIfFromScope) { + $exceptFromScopeValue = if ($ExceptIfFromScope.value) { $ExceptIfFromScope.value } else { $ExceptIfFromScope } + $ruleParams.Add('ExceptIfFromScope', $exceptFromScopeValue) } + if ($null -ne $ExceptIfFromMemberOf -and $ExceptIfFromMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfFromMemberOf', $ExceptIfFromMemberOf) } if ($null -ne $ExceptIfSentTo -and $ExceptIfSentTo.Count -gt 0) { $ruleParams.Add('ExceptIfSentTo', $ExceptIfSentTo) } - if ($null -ne $ExceptIfSentToScope -and $null -ne $ExceptIfSentToScope.value) { - $ruleParams.Add('ExceptIfSentToScope', $ExceptIfSentToScope.value) + if ($null -ne $ExceptIfSentToScope) { + $exceptSentToScopeValue = if ($ExceptIfSentToScope.value) { $ExceptIfSentToScope.value } else { $ExceptIfSentToScope } + $ruleParams.Add('ExceptIfSentToScope', $exceptSentToScopeValue) } + if ($null -ne $ExceptIfSentToMemberOf -and $ExceptIfSentToMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfSentToMemberOf', $ExceptIfSentToMemberOf) } if ($null -ne $ExceptIfSubjectContainsWords -and $ExceptIfSubjectContainsWords.Count -gt 0) { $ruleParams.Add('ExceptIfSubjectContainsWords', $ExceptIfSubjectContainsWords) } @@ -401,14 +524,17 @@ function Invoke-ExecNewTransportRule { $ruleParams.Add('ExceptIfAttachmentSizeOver', $ExceptIfAttachmentSizeOver) } if ($null -ne $ExceptIfMessageSizeOver) { $ruleParams.Add('ExceptIfMessageSizeOver', $ExceptIfMessageSizeOver) } - if ($null -ne $ExceptIfSCLOver -and $null -ne $ExceptIfSCLOver.value) { - $ruleParams.Add('ExceptIfSCLOver', $ExceptIfSCLOver.value) + if ($null -ne $ExceptIfSCLOver) { + $exceptSclValue = if ($ExceptIfSCLOver.value) { $ExceptIfSCLOver.value } else { $ExceptIfSCLOver } + $ruleParams.Add('ExceptIfSCLOver', $exceptSclValue) } - if ($null -ne $ExceptIfWithImportance -and $null -ne $ExceptIfWithImportance.value) { - $ruleParams.Add('ExceptIfWithImportance', $ExceptIfWithImportance.value) + if ($null -ne $ExceptIfWithImportance) { + $exceptImportanceValue = if ($ExceptIfWithImportance.value) { $ExceptIfWithImportance.value } else { $ExceptIfWithImportance } + $ruleParams.Add('ExceptIfWithImportance', $exceptImportanceValue) } - if ($null -ne $ExceptIfMessageTypeMatches -and $null -ne $ExceptIfMessageTypeMatches.value) { - $ruleParams.Add('ExceptIfMessageTypeMatches', $ExceptIfMessageTypeMatches.value) + if ($null -ne $ExceptIfMessageTypeMatches) { + $exceptMessageTypeValue = if ($ExceptIfMessageTypeMatches.value) { $ExceptIfMessageTypeMatches.value } else { $ExceptIfMessageTypeMatches } + $ruleParams.Add('ExceptIfMessageTypeMatches', $exceptMessageTypeValue) } if ($null -ne $ExceptIfSenderDomainIs -and $ExceptIfSenderDomainIs.Count -gt 0) { $ruleParams.Add('ExceptIfSenderDomainIs', $ExceptIfSenderDomainIs) @@ -416,6 +542,36 @@ function Invoke-ExecNewTransportRule { if ($null -ne $ExceptIfRecipientDomainIs -and $ExceptIfRecipientDomainIs.Count -gt 0) { $ruleParams.Add('ExceptIfRecipientDomainIs', $ExceptIfRecipientDomainIs) } + if ($null -ne $ExceptIfRecipientAddressContainsWords -and $ExceptIfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientAddressContainsWords', $ExceptIfRecipientAddressContainsWords) + } + if ($null -ne $ExceptIfRecipientAddressMatchesPatterns -and $ExceptIfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientAddressMatchesPatterns', $ExceptIfRecipientAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAnyOfRecipientAddressContainsWords -and $ExceptIfAnyOfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfRecipientAddressContainsWords', $ExceptIfAnyOfRecipientAddressContainsWords) + } + if ($null -ne $ExceptIfAnyOfRecipientAddressMatchesPatterns -and $ExceptIfAnyOfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfRecipientAddressMatchesPatterns', $ExceptIfAnyOfRecipientAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAnyOfToHeader -and $ExceptIfAnyOfToHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToHeader', $ExceptIfAnyOfToHeader) + } + if ($null -ne $ExceptIfAnyOfToHeaderMemberOf -and $ExceptIfAnyOfToHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToHeaderMemberOf', $ExceptIfAnyOfToHeaderMemberOf) + } + if ($null -ne $ExceptIfAnyOfCcHeader -and $ExceptIfAnyOfCcHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfCcHeader', $ExceptIfAnyOfCcHeader) + } + if ($null -ne $ExceptIfAnyOfCcHeaderMemberOf -and $ExceptIfAnyOfCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfCcHeaderMemberOf', $ExceptIfAnyOfCcHeaderMemberOf) + } + if ($null -ne $ExceptIfAnyOfToCcHeader -and $ExceptIfAnyOfToCcHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToCcHeader', $ExceptIfAnyOfToCcHeader) + } + if ($null -ne $ExceptIfAnyOfToCcHeaderMemberOf -and $ExceptIfAnyOfToCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToCcHeaderMemberOf', $ExceptIfAnyOfToCcHeaderMemberOf) + } if ($null -ne $ExceptIfHeaderContainsWords -and $ExceptIfHeaderContainsWords.Count -gt 0 -and $null -ne $ExceptIfHeaderContainsWordsMessageHeader) { $ruleParams.Add('ExceptIfHeaderContainsMessageHeader', $ExceptIfHeaderContainsWordsMessageHeader) $ruleParams.Add('ExceptIfHeaderContainsWords', $ExceptIfHeaderContainsWords) @@ -424,27 +580,53 @@ function Invoke-ExecNewTransportRule { $ruleParams.Add('ExceptIfHeaderMatchesMessageHeader', $ExceptIfHeaderMatchesPatternsMessageHeader) $ruleParams.Add('ExceptIfHeaderMatchesPatterns', $ExceptIfHeaderMatchesPatterns) } - - $ExoRequestParam = @{ - tenantid = $TenantFilter - cmdlet = 'New-TransportRule' - cmdParams = $ruleParams - useSystemMailbox = $true + if ($null -ne $ExceptIfSenderIpRanges -and $ExceptIfSenderIpRanges.Count -gt 0) { + $ruleParams.Add('ExceptIfSenderIpRanges', $ExceptIfSenderIpRanges) } - $null = New-ExoRequest @ExoRequestParam - $Result = "Successfully created transport rule '$Name'" - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + if (!$Identity) { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'New-TransportRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + $null = New-ExoRequest @ExoRequestParam + $Results = "Successfully created transport rule '$Name'" + } + else { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'Set-TransportRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + $ExoRequestState = @{ + tenantid = $TenantFilter + cmdlet = $CmdletState + cmdParams = @{ Identity = $Identity } + useSystemMailbox = $true + } + if ($Enabled) { + $null = New-ExoRequest @ExoRequestState + $Results = "Successfully $($Enabled) transport rule $($Name)" + } else { + $null = New-ExoRequest @ExoRequestParam + $null = New-ExoRequest @ExoRequestState + $Results = "Successfully configured transport rule '$Name'" + } + } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Info' $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to create transport rule '$Name'. Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' + $Results = "Failed to configure transport rule '$Name'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Error' $StatusCode = [HttpStatusCode]::InternalServerError } return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @{Results = $Result } + Body = @{Results = $Results } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 index 62aa154c7b59..ce444bd46cf2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 @@ -9,57 +9,64 @@ function Invoke-ListTransportRules { param($Request, $TriggerMetadata) # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter + $RuleId = $Request.Query.id try { - $Results = if ($TenantFilter -ne 'AllTenants') { - # Single tenant functionality - New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' - } else { - # AllTenants functionality - $Table = Get-CIPPTable -TableName CacheTransportRules - $PartitionKey = 'TransportRule' - $Filter = "PartitionKey eq '$PartitionKey'" - $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) - $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey - $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } - - # If a queue is running, we will not start a new one - if ($RunningQueue) { - $Metadata = [PSCustomObject]@{ - QueueMessage = 'Still loading transport rules for all tenants. Please check back in a few more minutes' - QueueId = $RunningQueue.RowKey - } - } elseif (!$Rows -and !$RunningQueue) { - # If no rows are found and no queue is running, we will start a new one - $TenantList = Get-Tenants -IncludeErrors - $Queue = New-CippQueueEntry -Name 'Transport Rules - All Tenants' -Link '/email/transport/list-rules?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count - $Metadata = [PSCustomObject]@{ - QueueMessage = 'Loading transport rules for all tenants. Please check back in a few minutes' - QueueId = $Queue.RowKey - } - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'TransportRuleOrchestrator' - QueueFunction = @{ - FunctionName = 'GetTenants' + # If an ID is provided, fetch the specific rule + if ($RuleId) { + $Results = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' -cmdParams @{Identity = $RuleId} + } + # Otherwise, use existing logic + else { + $Results = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName CacheTransportRules + $PartitionKey = 'TransportRule' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading transport rules for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Transport Rules - All Tenants' -Link '/email/transport/list-rules?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading transport rules for all tenants. Please check back in a few minutes' QueueId = $Queue.RowKey - TenantParams = @{ - IncludeErrors = $true + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TransportRuleOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListTransportRulesAllTenants' } - DurableName = 'ListTransportRulesAllTenants' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + # Return cached data + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Rules = $Rows + foreach ($rule in $Rules) { + $RuleObj = $rule.TransportRule | ConvertFrom-Json + $RuleObj | Add-Member -MemberType NoteProperty -Name Tenant -Value $rule.Tenant -Force + $RuleObj } - SkipLog = $true - } - Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null - } else { - # Return cached data - $Metadata = [PSCustomObject]@{ - QueueId = $RunningQueue.RowKey ?? $null - } - $Rules = $Rows - foreach ($rule in $Rules) { - $RuleObj = $rule.TransportRule | ConvertFrom-Json - $RuleObj | Add-Member -MemberType NoteProperty -Name Tenant -Value $rule.Tenant -Force - $RuleObj } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 index 56e01c9f21cb..4395e899a8fe 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 @@ -1,4 +1,4 @@ -Function Invoke-AddOfficeApp { +function Invoke-AddOfficeApp { <# .FUNCTIONALITY Entrypoint @@ -9,36 +9,39 @@ Function Invoke-AddOfficeApp { param($Request, $TriggerMetadata) # Input bindings are passed in via param block. - $Tenants = $Request.body.selectedTenants.defaultDomainName + $Tenants = $Request.Body.selectedTenants.defaultDomainName + $Headers = $Request.Headers + $APIName = $Request.Params.CIPPEndpoint if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } - $AssignTo = if ($request.body.Assignto -ne 'on') { $request.body.Assignto } + $AssignTo = if ($Request.Body.AssignTo -ne 'on') { $Request.Body.AssignTo } - $results = foreach ($Tenant in $tenants) { + $Results = foreach ($Tenant in $Tenants) { try { - $ExistingO365 = New-graphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $tenant | Where-Object { $_.displayname -eq 'Microsoft 365 Apps for Windows 10 and later' } + $ExistingO365 = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $Tenant | Where-Object { $_.displayName -eq 'Microsoft 365 Apps for Windows 10 and later' } if (!$ExistingO365) { # Check if custom XML is provided - if ($request.body.useCustomXml -and $request.body.customXml) { + if ($Request.Body.useCustomXml -and $Request.Body.customXml) { # Use custom XML configuration $ObjBody = [pscustomobject]@{ '@odata.type' = '#microsoft.graph.officeSuiteApp' 'displayName' = 'Microsoft 365 Apps for Windows 10 and later' 'description' = 'Microsoft 365 Apps for Windows 10 and later' 'informationUrl' = 'https://products.office.com/en-us/explore-office-for-home' + 'privacyInformationUrl' = 'https://privacy.microsoft.com/en-us/privacystatement' 'isFeatured' = $true 'publisher' = 'Microsoft' 'notes' = '' 'owner' = 'Microsoft' 'officeConfigurationXml' = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($request.body.customXml)) 'largeIcon' = @{ - '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' + '@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 { + } else { # Use standard configuration - $Arch = if ($request.body.arch) { 'x64' } else { 'x86' } + $Arch = if ($Request.Body.arch) { 'x64' } else { 'x86' } $products = @('o365ProPlusRetail') $ExcludedApps = [pscustomobject]@{ infoPath = $true @@ -54,60 +57,59 @@ Function Invoke-AddOfficeApp { access = $false bing = $false } - foreach ($ExcludedApp in $request.body.excludedApps.value) { - $ExcludedApps.$excludedapp = $true + 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 + 'autoAcceptEula' = [bool]$Request.Body.AcceptLicense 'excludedApps' = $ExcludedApps 'officePlatformArchitecture' = $Arch 'officeSuiteAppDefaultFileFormat' = 'OfficeOpenXMLFormat' - 'localesToInstall' = @($request.body.languages.value) - 'shouldUninstallOlderVersionsOfOffice' = [bool]$request.body.RemoveVersions - 'updateChannel' = $request.body.updateChannel.value - 'useSharedComputerActivation' = [bool]$request.body.SharedComputerActivation + 'localesToInstall' = @($Request.Body.languages.value) + 'shouldUninstallOlderVersionsOfOffice' = [bool]$Request.Body.RemoveVersions + 'updateChannel' = $Request.Body.updateChannel.value + 'useSharedComputerActivation' = [bool]$Request.Body.SharedComputerActivation 'productIds' = $products 'largeIcon' = @{ - 'type' = 'image/png' - 'value' = 'iVBORw0KGgoAAAANSUhEUgAAAF0AAAAeCAMAAAEOZNKlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJhUExURf////7z7/i9qfF1S/KCW/i+qv3q5P/9/PrQwfOMae1RG+s8AOxGDfBtQPWhhPvUx/759/zg1vWgg+9fLu5WIvKFX/rSxP728/nCr/FyR+tBBvOMaO1UH+1RHOs+AvSScP3u6f/+/v3s5vzg1+xFDO9kNPOOa/i7pvzj2/vWyes9Af76+Pzh2PrTxf/6+f7y7vOGYexHDv3t5+1SHfi8qPOIZPvb0O1NFuxDCe9hMPSVdPnFs/3q4/vaz/STcu5VIe5YJPWcfv718v/9/e1MFfF4T/F4TvF2TP3o4exECvF0SexIEPONavzn3/vZze1QGvF3Te5dK+5cKvrPwPrQwvKAWe1OGPexmexKEveulfezm/BxRfamiuxLE/apj/zf1e5YJfSXd/OHYv3r5feznPakiPze1P7x7f739f3w6+xJEfnEsvWdf/Wfge1LFPe1nu9iMvnDsfBqPOs/BPOIY/WZevJ/V/zl3fnIt/vTxuxHD+xEC+9mN+5ZJv749vBpO/KBWvBwRP/8+/SUc/etlPjArP/7+vOLZ/F7UvWae/708e1OF/aihvSWdvi8p+tABfSZefvVyPWihfSVde9lNvami+9jM/zi2fKEXvBuQvOKZvalifF5UPJ/WPSPbe9eLfrKuvvd0uxBB/7w7Pzj2vrRw/rOv+1PGfi/q/eymu5bKf3n4PnJuPBrPf3t6PWfgvWegOxCCO9nOO9oOfaskvSYePi5pPi2oPnGtO5eLPevlvKDXfrNvv739Pzd0/708O9gL+9lNfJ9VfrLu/OPbPnDsPBrPus+A/nArfarkQAAAGr5HKgAAADLdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AvuakogAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAz5JREFUOE+tVTtu4zAQHQjppmWzwIJbEVCzpTpjbxD3grQHSOXKRXgCAT6EC7UBVAmp3KwBnmvfzNCyZTmxgeTZJsXx43B+HBHRE34ZkXgkerXFTheeiCkRrbB4UXmp4wSWz5raaQEMTM5TZwuiXoaKgV+6FsmkZQcSy0kA71yMTMGHanX+AzMMGLAQCxU1F/ZwjULPugazl82GM0NEKm/U8EqFwEkO3/EAT4grgl0nucwlk9pcpTTJ4VPA4g/Rb3yIRhhp507e9nTQmZ1OS5RO4sS7nIRPEeHXCHdkw9ZEW2yVE5oIS7peD58Avs7CN+PVCmHh21oOqBdjDzIs+FldPJ74TFESUSJEfVzy9U/dhu+AuOT6eBp6gGKyXEx8euO450ZE4CMfstMFT44broWw/itkYErWXRx+fFArt9Ca9os78TFed0LVIUsmIHrwbwaw3BEOnOk94qVpQ6Ka2HjxewJnfyd6jUtGDQLdWlzmYNYLeKbbGOucJsNabCq1Yub0o92rtR+i30V2dapxYVEePXcOjeCKPnYyit7BtKeNlZqHbr+gt7i+AChWA9RsRs03pxTQc67ouWpxyESvjK5Vs3DVSy3IpkxPm5X+wZoBi+MFHWW69/w8FRhc7VBe6HAhMB2b8Q0XqDzTNZtXUMnKMjwKVaCrB/CSUL7WSx/HsdJC86lFGXwnioTeOMPjV+szlFvrZLA5VMVK4y+41l4e1xfx7Z88oXLhMo/hbYyqDV3FGjfD+Atbk7YjJAy9h/F4fWNbC6lwKUrhVUBPnPCDDsL0A/mLWxujCLvx4hE/VhOTf8j/C3kf3PWRqJKUAAAAASUVORK5CYII=' + '@odata.type' = 'microsoft.graph.mimeContent' + 'type' = 'image/png' + 'value' = 'iVBORw0KGgoAAAANSUhEUgAAAF0AAAAeCAMAAAEOZNKlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJhUExURf////7z7/i9qfF1S/KCW/i+qv3q5P/9/PrQwfOMae1RG+s8AOxGDfBtQPWhhPvUx/759/zg1vWgg+9fLu5WIvKFX/rSxP728/nCr/FyR+tBBvOMaO1UH+1RHOs+AvSScP3u6f/+/v3s5vzg1+xFDO9kNPOOa/i7pvzj2/vWyes9Af76+Pzh2PrTxf/6+f7y7vOGYexHDv3t5+1SHfi8qPOIZPvb0O1NFuxDCe9hMPSVdPnFs/3q4/vaz/STcu5VIe5YJPWcfv718v/9/e1MFfF4T/F4TvF2TP3o4exECvF0SexIEPONavzn3/vZze1QGvF3Te5dK+5cKvrPwPrQwvKAWe1OGPexmexKEveulfezm/BxRfamiuxLE/apj/zf1e5YJfSXd/OHYv3r5feznPakiPze1P7x7f739f3w6+xJEfnEsvWdf/Wfge1LFPe1nu9iMvnDsfBqPOs/BPOIY/WZevJ/V/zl3fnIt/vTxuxHD+xEC+9mN+5ZJv749vBpO/KBWvBwRP/8+/SUc/etlPjArP/7+vOLZ/F7UvWae/708e1OF/aihvSWdvi8p+tABfSZefvVyPWihfSVde9lNvami+9jM/zi2fKEXvBuQvOKZvalifF5UPJ/WPSPbe9eLfrKuvvd0uxBB/7w7Pzj2vrRw/rOv+1PGfi/q/eymu5bKf3n4PnJuPBrPf3t6PWfgvWegOxCCO9nOO9oOfaskvSYePi5pPi2oPnGtO5eLPevlvKDXfrNvv739Pzd0/708O9gL+9lNfJ9VfrLu/OPbPnDsPBrPus+A/nArfarkQAAAGr5HKgAAADLdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AvuakogAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAz5JREFUOE+tVTtu4zAQHQjppmWzwIJbEVCzpTpjbxD3grQHSOXKRXgCAT6EC7UBVAmp3KwBnmvfzNCyZTmxgeTZJsXx43B+HBHRE34ZkXgkerXFTheeiCkRrbB4UXmp4wSWz5raaQEMTM5TZwuiXoaKgV+6FsmkZQcSy0kA71yMTMGHanX+AzMMGLAQCxU1F/ZwjULPugazl82GM0NEKm/U8EqFwEkO3/EAT4grgl0nucwlk9pcpTTJ4VPA4g/Rb3yIRhhp507e9nTQmZ1OS5RO4sS7nIRPEeHXCHdkw9ZEW2yVE5oIS7peD58Avs7CN+PVCmHh21oOqBdjDzIs+FldPJ74TFESUSJEfVzy9U/dhu+AuOT6eBp6gGKyXEx8euO450ZE4CMfstMFT44broWw/itkYErWXRx+fFArt9Ca9os78TFed0LVIUsmIHrwbwaw3BEOnOk94qVpQ6Ka2HjxewJnfyd6jUtGDQLdWlzmYNYLeKbbGOucJsNabCq1Yub0o92rtR+i30V2dapxYVEePXcOjeCKPnYyit7BtKeNlZqHbr+gt7i+AChWA9RsRs03pxTQc67ouWpxyESvjK5Vs3DVSy3IpkxPm5X+wZoBi+MFHWW69/w8FRhc7VBe6HAhMB2b8Q0XqDzTNZtXUMnKMjwKVaCrB/CSUL7WSx/HsdJC86lFGXwnioTeOMPjV+szlFvrZLA5VMVK4y+41l4e1xfx7Z88o4hkilRUH/qKqwNVlgDgpvYCpH3XwAy5eMCRnezIUxffVXoDql2rTHFDO+pjWnTWzAfrYXn6BFECblUpWGrvPZvBipETjS5ydM7tdXpH41ZCEbBNy/+wFZu71QO2t9pgT+iZEf657Q1vpN94PQNDxUHeKR103LV9nPVOtDikcNKO+2naCw7yKBhOe9Hm79pe8C4/CfC2wDjXnqC94kEeBU3WwN7dt/2UScXas7zDl5GpkY+M8WKv2J7fd4Ib2rGTk+jsC2cleEM7jI9veF7B0MBJrsZqfKd/81q9pR2NZfwJK2JzsmIT1Ns8jUH0UusQBpU8d2JzsHiXg1zXGLqxfitUNTDT/nUUeqDBp2HZVr+Ocqi/Ty3Rf4Jn82xxfSNtAAAAAElFTkSuQmCC' } } } Write-Host ($ObjBody | ConvertTo-Json -Compress) $OfficeAppID = New-graphPostRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $tenant -Body (ConvertTo-Json -InputObject $ObjBody -Depth 10) -type POST - } - else { + } else { "Office deployment already exists for $($Tenant)" - Continue + continue } - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($tenant) -message "Added Office profile to $($tenant)" -Sev 'Info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Added Office profile to $($Tenant)" -Sev 'Info' if ($AssignTo) { $AssignO365 = if ($AssignTo -ne 'AllDevicesAndUsers') { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.' + $($AssignTo) + 'AssignmentTarget"},"intent":"Required"}]}' } else { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required"},{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required"}]}' } Write-Host ($AssignO365) - New-graphPostRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($OfficeAppID.id)/assign" -tenantid $tenant -Body $AssignO365 -type POST - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($tenant) -message "Assigned Office to $AssignTo" -Sev 'Info' + New-GraphPOSTRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($OfficeAppID.id)/assign" -tenantid $Tenant -Body $AssignO365 -type POST + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Assigned Office to $AssignTo" -Sev 'Info' } "Successfully added Office App for $($Tenant)" - } - catch { - "Failed to add Office App for $($Tenant): $($_.Exception.Message)" - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($tenant) -message "Failed to add Office App. Error: $($_.Exception.Message)" -Sev 'Error' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to add Office App for $($Tenant): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Failed to add Office App. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -Logdata $ErrorMessage continue } } - $body = [pscustomobject]@{'Results' = $results } - return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $body + Body = @{'Results' = $Results } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 index ff2c14b38dcd..6733e150366f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecAssignApp { +function Invoke-ExecAssignApp { <# .FUNCTIONALITY Entrypoint @@ -16,37 +16,91 @@ Function Invoke-ExecAssignApp { $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $appFilter = $Request.Query.ID ?? $Request.Body.ID $AssignTo = $Request.Query.AssignTo ?? $Request.Body.AssignTo - $AssignBody = switch ($AssignTo) { + $Intent = $Request.Query.Intent ?? $Request.Body.Intent + $AppType = $Request.Query.AppType ?? $Request.Body.AppType + $GroupNamesRaw = $Request.Query.GroupNames ?? $Request.Body.GroupNames + $GroupIdsRaw = $Request.Query.GroupIds ?? $Request.Body.GroupIds + $AssignmentMode = $Request.Body.assignmentMode - 'AllUsers' { - @' -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required","settings":null}]} -'@ + $Intent = if ([string]::IsNullOrWhiteSpace($Intent)) { 'Required' } else { $Intent } + + if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { + $AssignmentMode = 'replace' + } else { + $AssignmentMode = $AssignmentMode.ToLower() + if ($AssignmentMode -notin @('replace', 'append')) { + throw "Unsupported AssignmentMode value '$AssignmentMode'. Valid options are 'replace' or 'append'." } + } + + function Get-StandardizedAssignmentList { + param($InputObject) - 'AllDevices' { - @' -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required","settings":null}]} -'@ + if ($null -eq $InputObject -or ($InputObject -is [string] -and [string]::IsNullOrWhiteSpace($InputObject))) { + return @() + } + if ($InputObject -is [string]) { + return ($InputObject -split ',') | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } + if ($InputObject -is [System.Collections.IEnumerable]) { + return @($InputObject | Where-Object { $_ }) } + return @($InputObject) + } + + $GroupNames = Get-StandardizedAssignmentList -InputObject $GroupNamesRaw + $GroupIds = Get-StandardizedAssignmentList -InputObject $GroupIdsRaw + + if (-not $AssignTo -and $GroupIds.Count -eq 0 -and $GroupNames.Count -eq 0) { + throw 'No assignment target provided. Supply AssignTo, GroupNames, or GroupIds.' + } - 'Both' { - @' -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required","settings":null},{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required","settings":null}]} -'@ + # Try to get the application type if not provided. Mostly just useful for ppl using the API that dont know the application type. + if (-not $AppType) { + try { + $AppMetadata = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$appFilter" -tenantid $TenantFilter + $odataType = $AppMetadata.'@odata.type' + if ($odataType) { + $AppType = ($odataType -replace '#microsoft.graph.', '') -replace 'App$' + } + } catch { + Write-Warning "Unable to resolve application type for $appFilter. Continuing without assignment settings." } + } + + $targetLabel = if ($AssignTo) { + $AssignTo + } elseif ($GroupNames.Count -gt 0) { + ($GroupNames -join ', ') + } elseif ($GroupIds.Count -gt 0) { + "GroupIds: $($GroupIds -join ',')" + } else { + 'CustomGroupAssignment' + } + + $setParams = @{ + ApplicationId = $appFilter + TenantFilter = $TenantFilter + Intent = $Intent + APIName = $APIName + Headers = $Headers + GroupName = ($AssignTo ? $AssignTo : $targetLabel) + AssignmentMode = $AssignmentMode + } + if ($AppType) { + $setParams.AppType = $AppType } + + if ($GroupIds.Count -gt 0) { + $setParams.GroupIds = $GroupIds + } + try { - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$appFilter/assign" -tenantid $TenantFilter -body $AssignBody - $Result = "Successfully assigned app $($appFilter) to $($AssignTo)" - Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev Info + $Result = Set-CIPPAssignedApplication @setParams $StatusCode = [HttpStatusCode]::OK - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to assign app $($appFilter) to $($AssignTo). Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $Result = $_.Exception.Message $StatusCode = [HttpStatusCode]::InternalServerError } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 index b9699fc7db68..d7376956e5c6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ListApps { +function Invoke-ListApps { <# .FUNCTIONALITY Entrypoint @@ -10,7 +10,57 @@ Function Invoke-ListApps { # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.TenantFilter try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps?`$top=999&`$filter=(microsoft.graph.managedApp/appAvailability%20eq%20null%20or%20microsoft.graph.managedApp/appAvailability%20eq%20%27lineOfBusiness%27%20or%20isAssigned%20eq%20true)&`$orderby=displayName&" -tenantid $TenantFilter + # Use bulk requests to get groups and apps with assignments + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'Apps' + method = 'GET' + url = "/deviceAppManagement/mobileApps?`$top=999&`$expand=assignments&`$filter=(microsoft.graph.managedApp/appAvailability%20eq%20null%20or%20microsoft.graph.managedApp/appAvailability%20eq%20%27lineOfBusiness%27%20or%20isAssigned%20eq%20true)&`$orderby=displayName" + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + $Apps = ($BulkResults | Where-Object { $_.id -eq 'Apps' }).body.value + + $GraphRequest = foreach ($App in $Apps) { + # Process assignments + $AppAssignment = [System.Collections.Generic.List[string]]::new() + $AppExclude = [System.Collections.Generic.List[string]]::new() + + if ($App.assignments) { + foreach ($Assignment in $App.assignments) { + $target = $Assignment.target + $intent = $Assignment.intent + $intentSuffix = if ($intent) { " ($intent)" } else { '' } + + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $AppAssignment.Add("All Devices$intentSuffix") } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $AppAssignment.Add("All Licensed Users$intentSuffix") } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $AppAssignment.Add("$groupName$intentSuffix") } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $AppExclude.Add($groupName) } + } + } + } + } + + $App | Add-Member -NotePropertyName 'AppAssignment' -NotePropertyValue ($AppAssignment -join ', ') -Force + $App | Add-Member -NotePropertyName 'AppExclude' -NotePropertyValue ($AppExclude -join ', ') -Force + $App + } + $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message diff --git a/Modules/CIPPCore/Public/Invoke-RemoveQueuedApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 similarity index 100% rename from Modules/CIPPCore/Public/Invoke-RemoveQueuedApp.ps1 rename to Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 index 58660c0683cb..fc54f6a3bc74 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 @@ -1,24 +1,29 @@ -Function Invoke-AddAPDevice { +function Invoke-AddAPDevice { <# .FUNCTIONALITY Entrypoint .ROLE Endpoint.Autopilot.ReadWrite + .DESCRIPTION + Adds Autopilot devices to a tenant via Partner Center API #> [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $TenantFilter = (Get-Tenants | Where-Object { $_.defaultDomainName -eq $Request.body.TenantFilter.value }).customerId - $GroupName = if ($Request.body.Groupname) { $Request.body.Groupname } else { (New-Guid).GUID } + $Headers = $Request.Headers + + $TenantFilter = (Get-Tenants | Where-Object { $_.defaultDomainName -eq $Request.Body.TenantFilter.value }).customerId + $GroupName = if ($Request.Body.Groupname) { $Request.Body.Groupname } else { (New-Guid).GUID } Write-Host $GroupName - $rawDevices = $request.body.autopilotData + + $rawDevices = $Request.Body.autopilotData $Devices = ConvertTo-Json @($rawDevices) $Result = try { - $CurrentStatus = (New-GraphgetRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$tenantfilter/DeviceBatches" -scope 'https://api.partnercenter.microsoft.com/user_impersonation') - if ($groupname -in $CurrentStatus.items.id) { + $CurrentStatus = (New-GraphGetRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + if ($GroupName -in $CurrentStatus.items.id) { Write-Host 'Gonna do an update!' - $body = $request.body.autopilotData | ForEach-Object { + $Body = $Request.Body.autopilotData | ForEach-Object { $Device = $_ [pscustomobject]@{ deviceBatchId = $GroupName @@ -29,20 +34,20 @@ Function Invoke-AddAPDevice { modelName = $Device.modelName } } - $body = ConvertTo-Json -Depth 10 -Compress -InputObject @($body) - Write-Host $body - $GraphRequest = (New-GraphPostRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/deviceBatches/$groupname/devices" -body $body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + $Body = ConvertTo-Json -Depth 10 -Compress -InputObject @($Body) + Write-Host $Body + $GraphRequest = (New-GraphPOSTRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/deviceBatches/$GroupName/devices" -body $Body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') } else { - $body = '{"batchId":"' + $($GroupName) + '","devices":' + $Devices + '}' - $GraphRequest = (New-GraphPostRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -body $body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + $Body = '{"batchId":"' + $($GroupName) + '","devices":' + $Devices + '}' + $GraphRequest = (New-GraphPOSTRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -body $Body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') } $Amount = 0 do { Write-Host "Checking status of import job for $GroupName" - $amount ++ + $Amount++ Start-Sleep 1 - $NewStatus = New-GraphgetRequest -uri "https://api.partnercenter.microsoft.com/v1/$($GraphRequest.Location)" -scope 'https://api.partnercenter.microsoft.com/user_impersonation' - } until ($Newstatus.status -eq 'finished' -or $amount -eq 4) + $NewStatus = New-GraphGetRequest -uri "https://api.partnercenter.microsoft.com/v1/$($GraphRequest.Location)" -scope 'https://api.partnercenter.microsoft.com/user_impersonation' + } until ($NewStatus.status -eq 'finished' -or $Amount -eq 4) if ($NewStatus.status -ne 'finished') { throw 'Could not retrieve status of import - This job might still be running. Check the autopilot device list in 10 minutes for the latest status.' } Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($Request.body.TenantFilter.value) -message "Created Autopilot devices group. Group ID is $GroupName" -Sev 'Info' @@ -50,20 +55,19 @@ Function Invoke-AddAPDevice { Status = 'Import Job Completed' Devices = @($NewStatus.devicesStatus) } + $StatusCode = [HttpStatusCode]::OK } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError [PSCustomObject]@{ - Status = "$($Request.body.TenantFilter.value): Failed to create autopilot devices. $($_.Exception.Message)" + Status = "$($Request.Body.TenantFilter.value): Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" Devices = @() } - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($Request.body.TenantFilter.value) -message "Failed to create autopilot devices. $($_.Exception.Message)" -Sev 'Error' + Write-LogMessage -headers $Headers -API $APIName -tenant $($Request.Body.TenantFilter.value) -message "Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } - $body = [pscustomobject]@{'Results' = $Result } - Write-Host $body return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - + StatusCode = $StatusCode + Body = @{'Results' = $Result } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 index 32461e39d8d4..2ca6a2f6ac72 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 @@ -9,16 +9,16 @@ function Invoke-AddAssignmentFilter { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $SelectedTenants = if ('AllTenants' -in $Request.body.tenantFilter) { (Get-Tenants).defaultDomainName } else { $Request.body.tenantFilter.value ? $Request.body.tenantFilter.value : $Request.body.tenantFilter } - Write-LogMessage -headers $Request.Headers -API $APIName -message 'Accessed this API' -Sev Debug + $Headers = $Request.Headers + $SelectedTenants = if ('AllTenants' -in $Request.body.tenantFilter) { (Get-Tenants).defaultDomainName } else { $Request.body.tenantFilter.value ? $Request.body.tenantFilter.value : $Request.body.tenantFilter } $FilterObject = $Request.body $Results = foreach ($tenant in $SelectedTenants) { try { # Use the centralized New-CIPPAssignmentFilter function - $Result = New-CIPPAssignmentFilter -FilterObject $FilterObject -TenantFilter $tenant -APIName $APIName -ExecutingUser $Request.Headers.'x-ms-client-principal-name' + $Result = New-CIPPAssignmentFilter -FilterObject $FilterObject -TenantFilter $tenant -APIName $APIName -ExecutingUser $Headers.'x-ms-client-principal-name' if ($Result.Success) { "Successfully created assignment filter $($FilterObject.displayName) for $($tenant)" @@ -28,13 +28,12 @@ function Invoke-AddAssignmentFilter { } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Request.Headers -API $APIName -tenant $tenant -message "Assignment filter creation API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Assignment filter creation API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage "Failed to create assignment filter $($FilterObject.displayName) for $($tenant): $($ErrorMessage.NormalizedError)" $StatusCode = [HttpStatusCode]::InternalServerError } } - # Associate values to output bindings by calling 'Push-OutputBinding'. return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @{'Results' = @($Results) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 index f8efbd292ecf..22c029fb5b16 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 @@ -1,4 +1,4 @@ -Function Invoke-AddIntuneTemplate { +function Invoke-AddIntuneTemplate { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -9,10 +9,12 @@ Function Invoke-AddIntuneTemplate { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $GUID = (New-Guid).GUID try { if ($Request.Body.RawJSON) { - if (!$Request.Body.displayName) { throw 'You must enter a displayname' } + if (!$Request.Body.displayName) { throw 'You must enter a displayName' } if ($null -eq ($Request.Body.RawJSON | ConvertFrom-Json)) { throw 'the JSON is invalid' } @@ -30,9 +32,10 @@ Function Invoke-AddIntuneTemplate { RowKey = "$GUID" PartitionKey = 'IntuneTemplate' } - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created intune policy template named $($Request.Body.displayName) with GUID $GUID" -Sev 'Debug' + Write-LogMessage -headers $Headers -API $APIName -message "Created intune policy template named $($Request.Body.displayName) with GUID $GUID" -Sev 'Debug' - $body = [pscustomobject]@{'Results' = 'Successfully added template' } + $Result = 'Successfully added template' + $StatusCode = [HttpStatusCode]::OK } else { $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter $URLName = $Request.Body.URLName ?? $Request.Query.URLName @@ -54,19 +57,21 @@ Function Invoke-AddIntuneTemplate { RowKey = "$GUID" PartitionKey = 'IntuneTemplate' } - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created intune policy template $($Request.Body.displayName) with GUID $GUID using an original policy from a tenant" -Sev 'Debug' + Write-LogMessage -headers $Headers -API $APIName -message "Created intune policy template $($Request.Body.displayName) with GUID $GUID using an original policy from a tenant" -Sev 'Debug' - $body = [pscustomobject]@{'Results' = 'Successfully added template' } + $Result = 'Successfully added template' + $StatusCode = [HttpStatusCode]::OK } } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Intune Template Deployment failed: $($_.Exception.Message)" -Sev 'Error' - $body = [pscustomobject]@{'Results' = "Intune Template Deployment failed: $($_.Exception.Message)" } + $StatusCode = [HttpStatusCode]::InternalServerError + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Intune Template Deployment failed: $($ErrorMessage.NormalizedMessage)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage } return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body + StatusCode = $StatusCode + Body = @{'Results' = $Result } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 index 50463f0035da..5aaf4692faac 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 @@ -9,36 +9,43 @@ function Invoke-AddPolicy { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers $Tenants = $Request.Body.tenantFilter.value ? $Request.Body.tenantFilter.value : $Request.Body.tenantFilter - if ('AllTenants' -in $Tenants) { $Tetnants = (Get-Tenants).defaultDomainName } - $displayname = $Request.Body.displayName + if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } + + $DisplayName = $Request.Body.displayName $description = $Request.Body.Description $AssignTo = if ($Request.Body.AssignTo -ne 'on') { $Request.Body.AssignTo } $ExcludeGroup = $Request.Body.excludeGroup - $Request.body.customGroup ? ($AssignTo = $Request.body.customGroup) : $null + $Request.Body.customGroup ? ($AssignTo = $Request.Body.customGroup) : $null $RawJSON = $Request.Body.RAWJson - $results = foreach ($Tenant in $tenants) { - if ($Request.Body.replacemap.$tenant) { - ([pscustomobject]$Request.Body.replacemap.$tenant).psobject.properties | ForEach-Object { $RawJson = $RawJson -replace $_.name, $_.value } + $Results = foreach ($Tenant in $Tenants) { + if ($Request.Body.replacemap.$Tenant) { + ([pscustomobject]$Request.Body.replacemap.$Tenant).PSObject.Properties | ForEach-Object { $RawJSON = $RawJSON -replace $_.name, $_.value } } try { Write-Host 'Calling Adding policy' - Set-CIPPIntunePolicy -TemplateType $Request.body.TemplateType -Description $description -DisplayName $displayname -RawJSON $RawJSON -AssignTo $AssignTo -ExcludeGroup $ExcludeGroup -tenantFilter $Tenant -Headers $Request.Headers - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($Tenant) -message "Added policy $($Displayname)" -Sev 'Info' + $params = @{ + TemplateType = $Request.Body.TemplateType + Description = $description + DisplayName = $DisplayName + RawJSON = $RawJSON + AssignTo = $AssignTo + ExcludeGroup = $ExcludeGroup + tenantFilter = $Tenant + Headers = $Headers + APIName = $APIName + } + Set-CIPPIntunePolicy @params } catch { "$($_.Exception.Message)" - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($Tenant) -message "Failed adding policy $($Displayname). Error: $($_.Exception.Message)" -Sev 'Error' continue } - } - $body = [pscustomobject]@{'Results' = @($results) } - return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK - Body = $body + Body = @{'Results' = @($Results) } }) - } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 index bc7061ba3b5b..a3fda1715b35 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 @@ -11,12 +11,13 @@ function Invoke-EditAssignmentFilter { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev Debug - $TenantFilter = $Request.Body.tenantFilter try { $FilterId = $Request.Body.filterId + $DisplayName = $Request.Body.displayName + $Description = $Request.Body.description + $Rule = $Request.Body.rule if (!$FilterId) { throw 'Filter ID is required' @@ -26,28 +27,28 @@ function Invoke-EditAssignmentFilter { # Note: Platform and assignmentFilterManagementType cannot be changed after creation per Graph API restrictions $UpdateBody = @{} - if ($Request.Body.displayName) { - $UpdateBody.displayName = $Request.Body.displayName + if (-not [string]::IsNullOrWhiteSpace($DisplayName)) { + $UpdateBody.displayName = $DisplayName } - if ($null -ne $Request.Body.description) { - $UpdateBody.description = $Request.Body.description + if ($null -ne $Description) { + $UpdateBody.description = $Description } - if ($Request.Body.rule) { - $UpdateBody.rule = $Request.Body.rule + if (-not [string]::IsNullOrWhiteSpace($Rule)) { + $UpdateBody.rule = $Rule } # Update the assignment filter - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$FilterId" -tenantid $TenantFilter -type PATCH -body ($UpdateBody | ConvertTo-Json -Depth 10) + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$FilterId" -tenantid $TenantFilter -type PATCH -body (ConvertTo-Json -InputObject $UpdateBody -Depth 10) - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Updated assignment filter $($Request.Body.displayName)" -Sev Info + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Updated assignment filter $($DisplayName)" -Sev Info - $Result = "Successfully updated assignment filter $($Request.Body.displayName)" + $Result = "Successfully updated assignment filter $($DisplayName)" $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Failed to update assignment filter: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to update assignment filter: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage $Result = "Failed to update assignment filter: $($ErrorMessage.NormalizedError)" $StatusCode = [HttpStatusCode]::InternalServerError } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 index dc6220fca72d..ce22cb30d03f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecAssignPolicy { +function Invoke-ExecAssignPolicy { <# .FUNCTIONALITY Entrypoint @@ -10,44 +10,95 @@ Function Invoke-ExecAssignPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' # Interact with the body of the request $TenantFilter = $Request.Body.tenantFilter $ID = $request.Body.ID $Type = $Request.Body.Type $AssignTo = $Request.Body.AssignTo + $PlatformType = $Request.Body.platformType + $ExcludeGroup = $Request.Body.excludeGroup + $GroupIdsRaw = $Request.Body.GroupIds + $GroupNamesRaw = $Request.Body.GroupNames + $AssignmentMode = $Request.Body.assignmentMode + $AssignmentFilterName = $Request.Body.AssignmentFilterName + $AssignmentFilterType = $Request.Body.AssignmentFilterType + + # Standardize GroupIds input (can be array or comma-separated string) + function Get-StandardizedList { + param($InputObject) + if ($null -eq $InputObject -or ($InputObject -is [string] -and [string]::IsNullOrWhiteSpace($InputObject))) { + return @() + } + if ($InputObject -is [string]) { + return ($InputObject -split ',') | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } + if ($InputObject -is [System.Collections.IEnumerable]) { + return @($InputObject | Where-Object { $_ }) + } + return @($InputObject) + } + + $GroupIds = Get-StandardizedList -InputObject $GroupIdsRaw + $GroupNames = Get-StandardizedList -InputObject $GroupNamesRaw + + # Validate and default AssignmentMode + if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { + $AssignmentMode = 'replace' + } $AssignTo = if ($AssignTo -ne 'on') { $AssignTo } - $results = try { - if ($AssignTo) { - $AssignmentResult = Set-CIPPAssignedPolicy -PolicyId $ID -TenantFilter $TenantFilter -GroupName $AssignTo -Type $Type -Headers $Headers - if ($AssignmentResult) { - # Check if it's a warning message (no groups found) - if ($AssignmentResult -like "*No groups found*") { - $StatusCode = [HttpStatusCode]::BadRequest - } else { - $StatusCode = [HttpStatusCode]::OK - } - $AssignmentResult - } else { - $StatusCode = [HttpStatusCode]::OK - "Successfully edited policy for $($TenantFilter)" + $Results = try { + if ($AssignTo -or @($GroupIds).Count -gt 0) { + $params = @{ + PolicyId = $ID + TenantFilter = $TenantFilter + GroupName = $AssignTo + Type = $Type + Headers = $Headers + AssignmentMode = $AssignmentMode + } + + if (@($GroupIds).Count -gt 0) { + $params.GroupIds = @($GroupIds) + } + + if (@($GroupNames).Count -gt 0) { + $params.GroupNames = @($GroupNames) + } + + if (-not [string]::IsNullOrWhiteSpace($PlatformType)) { + $params.PlatformType = $PlatformType } + + if (-not [string]::IsNullOrWhiteSpace($ExcludeGroup)) { + $params.ExcludeGroup = $ExcludeGroup + } + + if (-not [string]::IsNullOrWhiteSpace($AssignmentFilterName)) { + $params.AssignmentFilterName = $AssignmentFilterName + } + + if (-not [string]::IsNullOrWhiteSpace($AssignmentFilterType)) { + $params.AssignmentFilterType = $AssignmentFilterType + } + + Set-CIPPAssignedPolicy @params + $StatusCode = [HttpStatusCode]::OK } else { + 'No assignments specified. No action taken.' $StatusCode = [HttpStatusCode]::OK - "Successfully edited policy for $($TenantFilter)" } } catch { + "$($_.Exception.Message)" $StatusCode = [HttpStatusCode]::InternalServerError - "Failed to add policy for $($TenantFilter): $($_.Exception.Message)" } return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @{Results = $results } + Body = @{Results = $Results } }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 new file mode 100644 index 000000000000..cf0da9778d60 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 @@ -0,0 +1,53 @@ +function Invoke-ExecDevicePasscodeAction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Action = $Request.Body.Action + $DeviceFilter = $Request.Body.GUID + $TenantFilter = $Request.Body.tenantFilter + + try { + $GraphResponse = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$DeviceFilter')/$($Action)" -type POST -tenantid $TenantFilter -body '{}' + + $Result = switch ($Action) { + 'resetPasscode' { + if ($GraphResponse.value) { + "Passcode reset successfully. New passcode: $($GraphResponse.value)" + } else { + "Passcode reset queued for device $DeviceFilter. The new passcode will be generated and can be retrieved from the device details." + } + } + 'removeDevicePasscode' { + "Successfully removed passcode requirement from device $DeviceFilter" + } + default { + "Successfully queued $Action on device $DeviceFilter" + } + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + $Results = $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to execute $Action on device $DeviceFilter : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = $Result + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 index cc9e747b9787..a87941bfd8e4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 @@ -15,9 +15,14 @@ function Invoke-ExecGetRecoveryKey { # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $GUID = $Request.Query.GUID ?? $Request.Body.GUID + $RecoveryKeyType = $Request.Body.RecoveryKeyType ?? 'BitLocker' try { - $Result = Get-CIPPBitLockerKey -Device $GUID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers + switch ($RecoveryKeyType) { + 'BitLocker' { $Result = Get-CIPPBitLockerKey -Device $GUID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers } + 'FileVault' { $Result = Get-CIPPFileVaultKey -Device $GUID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers } + default { throw "Invalid RecoveryKeyType specified: $RecoveryKeyType." } + } $StatusCode = [HttpStatusCode]::OK } catch { $Result = $_.Exception.Message diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 new file mode 100644 index 000000000000..ef6b59fec416 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 @@ -0,0 +1,181 @@ +function Invoke-ListAppProtectionPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + $TenantFilter = $Request.Query.tenantFilter + + try { + # Use bulk requests to get groups, managed app policies and mobile app configurations + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'ManagedAppPolicies' + method = 'GET' + url = '/deviceAppManagement/managedAppPolicies?$orderby=displayName' + } + @{ + id = 'MobileAppConfigurations' + method = 'GET' + url = '/deviceAppManagement/mobileAppConfigurations?$expand=assignments&$orderby=displayName' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + + $GraphRequest = [System.Collections.Generic.List[object]]::new() + + # Process Managed App Policies - these need separate assignment lookups as the ManagedAppPolicies endpoint does not support $expand + $ManagedAppPolicies = ($BulkResults | Where-Object { $_.id -eq 'ManagedAppPolicies' }).body.value + if ($ManagedAppPolicies) { + # Get all @odata.type and deduplicate them + $OdataTypes = ($ManagedAppPolicies | Select-Object -ExpandProperty '@odata.type' -Unique) -replace '#microsoft.graph.', '' + $ManagedAppPoliciesBulkRequests = foreach ($type in $OdataTypes) { + # Translate to URL segments + $urlSegment = switch ($type) { + 'androidManagedAppProtection' { 'androidManagedAppProtections' } + 'iosManagedAppProtection' { 'iosManagedAppProtections' } + 'mdmWindowsInformationProtectionPolicy' { 'mdmWindowsInformationProtectionPolicies' } + 'windowsManagedAppProtection' { 'windowsManagedAppProtections' } + 'targetedManagedAppConfiguration' { 'targetedManagedAppConfigurations' } + default { $null } + } + Write-Information "Type: $type => URL Segment: $urlSegment" + if ($urlSegment) { + @{ + id = $type + method = 'GET' + url = "/deviceAppManagement/${urlSegment}?`$expand=assignments&`$orderby=displayName" + } + } + } + + $ManagedAppPoliciesBulkResults = New-GraphBulkRequest -Requests $ManagedAppPoliciesBulkRequests -tenantid $TenantFilter + # Do this horriblenes as a workaround, as the results dont return with a odata.type property + $ManagedAppPolicies = $ManagedAppPoliciesBulkResults | ForEach-Object { + $URLName = $_.id + $_.body.value | Add-Member -NotePropertyName 'URLName' -NotePropertyValue $URLName -Force + $_.body.value + } + + + + foreach ($Policy in $ManagedAppPolicies) { + $policyType = switch ($Policy.'URLName') { + 'androidManagedAppProtection' { 'Android App Protection'; break } + 'iosManagedAppProtection' { 'iOS App Protection'; break } + 'windowsManagedAppProtection' { 'Windows App Protection'; break } + 'mdmWindowsInformationProtectionPolicy' { 'Windows Information Protection (MDM)'; break } + 'windowsInformationProtectionPolicy' { 'Windows Information Protection'; break } + 'targetedManagedAppConfiguration' { 'App Configuration (MAM)'; break } + 'defaultManagedAppProtection' { 'Default App Protection'; break } + default { 'App Protection Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + if ($Policy.assignments) { + foreach ($Assignment in $Policy.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Policy | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + # $Policy | Add-Member -NotePropertyName 'URLName' -NotePropertyValue 'managedAppPolicies' -Force + $Policy | Add-Member -NotePropertyName 'PolicySource' -NotePropertyValue 'AppProtection' -Force + $Policy | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Policy | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + $GraphRequest.Add($Policy) + } + } + + # Process Mobile App Configurations - assignments are already expanded + $MobileAppConfigs = ($BulkResults | Where-Object { $_.id -eq 'MobileAppConfigurations' }).body.value + if ($MobileAppConfigs) { + foreach ($Config in $MobileAppConfigs) { + $policyType = switch -Wildcard ($Config.'@odata.type') { + '*androidManagedStoreAppConfiguration*' { 'Android Enterprise App Configuration' } + '*androidForWorkAppConfigurationSchema*' { 'Android for Work Configuration' } + '*iosMobileAppConfiguration*' { 'iOS App Configuration' } + default { 'App Configuration Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + if ($Config.assignments) { + foreach ($Assignment in $Config.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Config | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + $Config | Add-Member -NotePropertyName 'URLName' -NotePropertyValue 'mobileAppConfigurations' -Force + $Config | Add-Member -NotePropertyName 'PolicySource' -NotePropertyValue 'AppConfiguration' -Force + $Config | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Config | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + + # Ensure isAssigned property exists for consistency + if (-not $Config.PSObject.Properties['isAssigned']) { + $Config | Add-Member -NotePropertyName 'isAssigned' -NotePropertyValue $false -Force + } + $GraphRequest.Add($Config) + } + } + + # Sort combined results by displayName + $GraphRequest = $GraphRequest | Sort-Object -Property displayName + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 index fdd706240d06..0012b1a47e8e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 @@ -8,12 +8,7 @@ function Invoke-ListAssignmentFilterTemplates { [CmdletBinding()] param($Request, $TriggerMetadata) - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - - - - Write-Host $Request.query.id + $ID = $Request.Query.ID #List assignment filter templates $Table = Get-CippTable -tablename 'templates' @@ -22,16 +17,16 @@ function Invoke-ListAssignmentFilterTemplates { $data = $_.JSON | ConvertFrom-Json [PSCustomObject]@{ - displayName = $data.displayName - description = $data.description - platform = $data.platform - rule = $data.rule - assignmentFilterManagementType = $data.assignmentFilterManagementType - GUID = $_.RowKey + displayName = $data.displayName + description = $data.description + platform = $data.platform + rule = $data.rule + assignmentFilterManagementType = $data.assignmentFilterManagementType + GUID = $_.RowKey } } | Sort-Object -Property displayName - if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $Request.query.id } + if ($ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $ID } # Associate values to output bindings by calling 'Push-OutputBinding'. diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 index c405a939425b..91c3270702be 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 @@ -11,15 +11,14 @@ function Invoke-ListAssignmentFilters { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev Debug - # Get the tenant filter - $TenantFilter = $Request.Query.TenantFilter + $TenantFilter = $Request.Query.tenantFilter + $FilterId = $Request.Query.filterId try { - if ($Request.Query.filterId) { + if ($FilterId) { # Get specific filter - $AssignmentFilters = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$($Request.Query.filterId)" -tenantid $TenantFilter + $AssignmentFilters = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$($FilterId)" -tenantid $TenantFilter } else { # Get all filters $AssignmentFilters = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter @@ -28,12 +27,11 @@ function Invoke-ListAssignmentFilters { $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Failed to retrieve assignment filters: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve assignment filters: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage $AssignmentFilters = @() $StatusCode = [HttpStatusCode]::InternalServerError } - # Associate values to output bindings by calling 'Push-OutputBinding'. return ([HttpResponseContext]@{ StatusCode = $StatusCode Body = @($AssignmentFilters) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 new file mode 100644 index 000000000000..94a782928ad5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 @@ -0,0 +1,95 @@ +function Invoke-ListCompliancePolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + $TenantFilter = $Request.Query.tenantFilter + + try { + # Use bulk requests to get groups and compliance policies + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'CompliancePolicies' + method = 'GET' + url = '/deviceManagement/deviceCompliancePolicies?$expand=assignments&$orderby=displayName' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract results + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + $Policies = ($BulkResults | Where-Object { $_.id -eq 'CompliancePolicies' }).body.value + + $GraphRequest = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + # Determine policy type from @odata.type + $policyType = switch -Wildcard ($Policy.'@odata.type') { + '*windows10CompliancePolicy*' { 'Windows 10/11 Compliance' } + '*windowsPhone81CompliancePolicy*' { 'Windows Phone 8.1 Compliance' } + '*windows81CompliancePolicy*' { 'Windows 8.1 Compliance' } + '*iosCompliancePolicy*' { 'iOS Compliance' } + '*macOSCompliancePolicy*' { 'macOS Compliance' } + '*androidCompliancePolicy*' { 'Android Compliance' } + '*androidDeviceOwnerCompliancePolicy*' { 'Android Enterprise Compliance' } + '*androidWorkProfileCompliancePolicy*' { 'Android Work Profile Compliance' } + '*aospDeviceOwnerCompliancePolicy*' { 'AOSP Compliance' } + default { 'Compliance Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + + if ($Policy.assignments) { + foreach ($Assignment in $Policy.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Policy | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + $Policy | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Policy | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + + $GraphRequest.Add($Policy) + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 index 9a190fe23747..adcebec6267a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 @@ -1,5 +1,5 @@ -Function Invoke-ListIntunePolicy { +function Invoke-ListIntunePolicy { <# .FUNCTIONALITY Entrypoint @@ -16,38 +16,41 @@ Function Invoke-ListIntunePolicy { if ($ID) { $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($URLName)('$ID')" -tenantid $TenantFilter } else { - $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter | Select-Object -Property id, displayName - $BulkRequests = [PSCustomObject]@( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } @{ id = 'DeviceConfigurations' method = 'GET' - url = "/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName,description&`$expand=assignments&top=1000" + url = "/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName,description&`$expand=assignments&`$top=1000" } @{ id = 'WindowsDriverUpdateProfiles' method = 'GET' - url = "/deviceManagement/windowsDriverUpdateProfiles?`$expand=assignments&top=200" + url = "/deviceManagement/windowsDriverUpdateProfiles?`$expand=assignments&`$top=200" } @{ id = 'WindowsFeatureUpdateProfiles' method = 'GET' - url = "/deviceManagement/windowsFeatureUpdateProfiles?`$expand=assignments&top=200" + url = "/deviceManagement/windowsFeatureUpdateProfiles?`$expand=assignments&`$top=200" } @{ id = 'windowsQualityUpdatePolicies' method = 'GET' - url = "/deviceManagement/windowsQualityUpdatePolicies?`$expand=assignments&top=200" + url = "/deviceManagement/windowsQualityUpdatePolicies?`$expand=assignments&`$top=200" } @{ id = 'windowsQualityUpdateProfiles' method = 'GET' - url = "/deviceManagement/windowsQualityUpdateProfiles?`$expand=assignments&top=200" + url = "/deviceManagement/windowsQualityUpdateProfiles?`$expand=assignments&`$top=200" } @{ id = 'GroupPolicyConfigurations' method = 'GET' - url = "/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=1000" + url = "/deviceManagement/groupPolicyConfigurations?`$expand=assignments&`$top=1000" } @{ id = 'MobileAppConfigurations' @@ -57,13 +60,16 @@ Function Invoke-ListIntunePolicy { @{ id = 'ConfigurationPolicies' method = 'GET' - url = "/deviceManagement/configurationPolicies?`$expand=assignments&top=1000" + url = "/deviceManagement/configurationPolicies?`$expand=assignments&`$top=1000" } ) $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter - $GraphRequest = $BulkResults | ForEach-Object { + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + + $GraphRequest = $BulkResults | Where-Object { $_.id -ne 'Groups' } | ForEach-Object { $URLName = $_.Id $_.body.Value | ForEach-Object { $policyTypeName = switch -Wildcard ($_.'assignments@odata.context') { @@ -89,7 +95,7 @@ Function Invoke-ListIntunePolicy { $Assignments = $_.assignments.target | Select-Object -Property '@odata.type', groupId $PolicyAssignment = [System.Collections.Generic.List[string]]::new() $PolicyExclude = [System.Collections.Generic.List[string]]::new() - ForEach ($target in $Assignments) { + foreach ($target in $Assignments) { switch ($target.'@odata.type') { '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } '#microsoft.graph.exclusionallDevicesAssignmentTarget' { $PolicyExclude.Add('All Devices') } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 index 5e2a8459cb53..2eb73bca4a00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 @@ -15,26 +15,31 @@ function Invoke-ListIntuneScript { $TenantFilter = $Request.Query.tenantFilter $Results = [System.Collections.Generic.List[System.Object]]::new() - $BulkRequests = [PSCustomObject]@( + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } @{ id = 'Windows' method = 'GET' - url = '/deviceManagement/deviceManagementScripts' + url = '/deviceManagement/deviceManagementScripts?$expand=assignments' } @{ id = 'MacOS' method = 'GET' - url = '/deviceManagement/deviceShellScripts' + url = '/deviceManagement/deviceShellScripts?$expand=assignments' } @{ id = 'Remediation' method = 'GET' - url = '/deviceManagement/deviceHealthScripts' + url = '/deviceManagement/deviceHealthScripts?$expand=assignments' } @{ id = 'Linux' method = 'GET' - url = '/deviceManagement/configurationPolicies' + url = '/deviceManagement/configurationPolicies?$expand=assignments' } ) @@ -45,6 +50,9 @@ function Invoke-ListIntuneScript { Write-Host "Failed to retrieve scripts. Error: $($ErrorMessage.NormalizedError)" } + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + foreach ($scriptId in @('Windows', 'MacOS', 'Remediation', 'Linux')) { $BulkResult = ($BulkResults | Where-Object { $_.id -eq $scriptId }) if ($BulkResult.status -ne 200) { @@ -65,6 +73,33 @@ function Invoke-ListIntuneScript { $scripts | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name displayName -Value $_.name -Force } } + # Process assignments for each script + foreach ($script in $scripts) { + $ScriptAssignment = [System.Collections.Generic.List[string]]::new() + $ScriptExclude = [System.Collections.Generic.List[string]]::new() + + if ($script.assignments) { + foreach ($Assignment in $script.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $ScriptAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $ScriptAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $ScriptAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $ScriptExclude.Add($groupName) } + } + } + } + } + + $script | Add-Member -NotePropertyName 'ScriptAssignment' -NotePropertyValue ($ScriptAssignment -join ', ') -Force + $script | Add-Member -NotePropertyName 'ScriptExclude' -NotePropertyValue ($ScriptExclude -join ', ') -Force + } + $scripts | Add-Member -MemberType NoteProperty -Name scriptType -Value $scriptId Write-Host "$scriptId scripts count: $($scripts.Count)" $Results.AddRange(@($scripts)) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 index 54333e58ff47..a64228f7c2f6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 @@ -39,7 +39,8 @@ function Invoke-ListIntuneTemplates { $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force $data | Add-Member -NotePropertyName 'package' -NotePropertyValue $_.Package -Force - $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force $data } catch { @@ -56,7 +57,7 @@ function Invoke-ListIntuneTemplates { value = $package type = 'tag' templateCount = ($RawTemplates | Where-Object { $_.Package -eq $package }).Count - templates = ($RawTemplates | Where-Object { $_.Package -eq $package } | ForEach-Object { + templates = @($RawTemplates | Where-Object { $_.Package -eq $package } | ForEach-Object { try { $JSONData = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue @@ -65,6 +66,8 @@ function Invoke-ListIntuneTemplates { $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force $data | Add-Member -NotePropertyName 'package' -NotePropertyValue $_.Package -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force $data } catch { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 index 2d13dfeb0bab..b3e25890c517 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 @@ -1,4 +1,4 @@ -Function Invoke-RemoveIntuneTemplate { +function Invoke-RemoveIntuneTemplate { <# .FUNCTIONALITY Entrypoint @@ -15,13 +15,15 @@ Function Invoke-RemoveIntuneTemplate { $ID = $request.Query.ID ?? $Request.Body.ID try { $Table = Get-CippTable -tablename 'templates' - Write-Host $ID $Filter = "PartitionKey eq 'IntuneTemplate' and RowKey eq '$ID'" - Write-Host $Filter $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey - Remove-AzDataTableEntity -Force @Table -Entity $clearRow - $Result = "Removed Intune Template with ID $ID" + if ($ClearRow) { + Remove-AzDataTableEntity @Table -Entity $clearRow -Force + $Result = "Removed Intune Template with ID $ID." + } else { + $Result = "The template with ID $ID has already been deleted." + } Write-LogMessage -Headers $Headers -API $APINAME -message $Result -Sev 'Info' $StatusCode = [HttpStatusCode]::OK } catch { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 index e5e9f83b1d1e..3dd078da0045 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 @@ -16,7 +16,11 @@ 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 = $UrlName -eq 'managedAppPolicies' ? 'deviceAppManagement' : 'deviceManagement' + $BaseEndpoint = switch ($UrlName) { + 'managedAppPolicies' { 'deviceAppManagement' } + 'mobileAppConfigurations' { 'deviceAppManagement' } + default { 'deviceManagement' } + } if (!$PolicyId) { exit } try { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 new file mode 100644 index 000000000000..f1c93f4d54b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 @@ -0,0 +1,78 @@ +function Invoke-AddGroupTeam { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.TenantFilter + $GroupId = $Request.Body.GroupId + + $Results = [System.Collections.Generic.List[string]]@() + + try { + # Default team settings - can be customized via request body + $TeamSettings = if ($Request.Body.TeamSettings) { + $Request.Body.TeamSettings + } else { + @{ + memberSettings = @{ + allowCreatePrivateChannels = $true + allowCreateUpdateChannels = $true + } + messagingSettings = @{ + allowUserEditMessages = $true + allowUserDeleteMessages = $true + } + funSettings = @{ + allowGiphy = $true + giphyContentRating = 'strict' + } + } + } + + # Create team from group using PUT request + $GraphParams = @{ + uri = "https://graph.microsoft.com/beta/groups/$GroupId/team" + tenantid = $TenantFilter + type = 'PUT' + body = ($TeamSettings | ConvertTo-Json -Depth 10) + AsApp = $true + } + $null = New-GraphPOSTRequest @GraphParams + + $Results.Add("Successfully created team from group $GroupId") + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Created team from group $GroupId" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $RawMessage = $_.Exception.Message + + # Determine if this is a likely replication delay 404 (exclude owner/membership related 404s) + $Is404 = ($RawMessage -match '404|Not Found' -or $ErrorMessage.NormalizedError -match '404|Not Found') + $IsOwnerRelated = ($RawMessage -match 'owner' -or $ErrorMessage.NormalizedError -match 'owner') + $IsMembershipRelated = ($RawMessage -match 'member' -or $ErrorMessage.NormalizedError -match 'member') + + $IsReplicationDelay = $Is404 -and -not ($IsOwnerRelated -or $IsMembershipRelated) + + if ($IsReplicationDelay) { + $Results.Add('Failed to create team: The group may have been created too recently. If it was created less than 15 minutes ago, wait and retry. Groups need time to fully replicate before a team can be created.') + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to create team from group $GroupId - probable replication delay (404). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } else { + $Results.Add("Failed to create team: $($ErrorMessage.NormalizedError)") + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to create team from group $GroupId. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + + $Body = @{ + Results = @($Results) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 index 56325421b363..5f709fd9db24 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 @@ -29,7 +29,7 @@ function Invoke-AddGroupTemplate { '*unified*' { 'm365'; break } '*m365*' { 'm365'; break } '*generic*' { 'generic'; break } - '*security*' { 'generic'; break } + '*security*' { 'security'; break } '*distribution*' { 'distribution'; break } '*mail*' { 'distribution'; break } default { $Request.Body.groupType } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 index 855e35ab8395..203b28046a6d 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 @@ -1,4 +1,10 @@ -Function Invoke-ListGroupSenderAuthentication { +function Invoke-ListGroupSenderAuthentication { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Groups.Read + #> [CmdletBinding()] param($Request, $TriggerMetadata) # Interact with query parameters or the body of the request. diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 index f2f642edc5d8..b58a93aa3ced 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 @@ -13,36 +13,46 @@ function Invoke-ListGroupTemplates { $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'GroupTemplate'" $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { - $data = $_.JSON | ConvertFrom-Json - - # Normalize groupType to camelCase for consistent frontend handling - # Handle both stored normalized values and legacy values - $normalizedGroupType = switch -Wildcard ($data.groupType.ToLower()) { - # Already normalized values (most common) - 'dynamicdistribution' { 'dynamicDistribution'; break } - 'azurerole' { 'azureRole'; break } - # Legacy values that might exist in stored templates - '*dynamicdistribution*' { 'dynamicDistribution'; break } - '*dynamic*' { 'dynamic'; break } - '*azurerole*' { 'azureRole'; break } - '*unified*' { 'm365'; break } - '*microsoft*' { 'm365'; break } - '*m365*' { 'm365'; break } - '*generic*' { 'generic'; break } - '*security*' { 'security'; break } - '*distribution*' { 'distribution'; break } - '*mail*' { 'distribution'; break } - default { $data.groupType } - } + try { + $data = $_.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + # Normalize groupType to camelCase for consistent frontend handling + # Handle both stored normalized values and legacy values + + if (!$data.groupType) { + $data.groupType = 'generic' + } + + $normalizedGroupType = switch -Wildcard ($data.groupType) { + # Already normalized values (most common) + 'dynamicdistribution' { 'dynamicDistribution'; break } + 'azurerole' { 'azureRole'; break } + # Legacy values that might exist in stored templates + '*dynamicdistribution*' { 'dynamicDistribution'; break } + '*dynamic*' { 'dynamic'; break } + '*azurerole*' { 'azureRole'; break } + '*unified*' { 'm365'; break } + '*microsoft*' { 'm365'; break } + '*m365*' { 'm365'; break } + '*generic*' { 'generic'; break } + '*security*' { 'security'; break } + '*distribution*' { 'distribution'; break } + '*mail*' { 'distribution'; break } + default { $data.groupType } + } - [PSCustomObject]@{ - displayName = $data.displayName - description = $data.description - groupType = $normalizedGroupType - membershipRules = $data.membershipRules - allowExternal = $data.allowExternal - username = $data.username - GUID = $_.RowKey + [PSCustomObject]@{ + displayName = $data.displayName + description = $data.description + groupType = $normalizedGroupType + membershipRules = $data.membershipRules + allowExternal = $data.allowExternal + username = $data.username + GUID = $_.RowKey + source = $_.Source + isSynced = (![string]::IsNullOrEmpty($_.SHA)) + } + } catch { + Write-Information "Could not parse group template $($_.RowKey): $($_.Exception.Message)" } } | Sort-Object -Property displayName diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 index 73d260965f23..75f51bee09ae 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 @@ -87,13 +87,21 @@ function Invoke-ListGroups { $GraphRequest = [PSCustomObject]@{ groupInfo = ($RawGraphRequest | Where-Object { $_.id -eq 1 }).body | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split '@' | Select-Object -Last 1 } }, @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -like '*Team*') { $true } else { $false } } }, - @{Name = 'calculatedGroupType'; Expression = { - if ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } - if (!$_.mailEnabled -and $_.securityEnabled) { 'Security' } + @{Name = 'groupType'; Expression = { if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } - if (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (!$_.securityEnabled)) { 'Distribution List' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } + } + }, + @{Name = 'calculatedGroupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'm365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'generic' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'distributionList' } } - }, @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } + }, + @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } members = ($RawGraphRequest | Where-Object { $_.id -eq 2 }).body.value owners = ($RawGraphRequest | Where-Object { $_.id -eq 3 }).body.value allowExternal = (!$OnlyAllowInternal) @@ -104,12 +112,18 @@ function Invoke-ListGroups { $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupID)/$($members)?`$top=999&select=$SelectString" -tenantid $TenantFilter | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split '@' | Select-Object -Last 1 } }, @{Name = 'membersCsv'; Expression = { $_.members.userPrincipalName -join ',' } }, @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -like '*Team*') { $true }else { $false } } }, - @{Name = 'calculatedGroupType'; Expression = { - - if ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } - if (!$_.mailEnabled -and $_.securityEnabled) { 'Security' } + @{Name = 'groupType'; Expression = { if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } - if (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (!$_.securityEnabled)) { 'Distribution List' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } + } + }, + @{Name = 'calculatedGroupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'm365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'generic' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'distributionList' } } }, @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 index 5a26d87f2694..8d679686c945 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 @@ -23,9 +23,10 @@ function Invoke-AddUser { value = 'New-CIPPUserTask' label = 'New-CIPPUserTask' } - Parameters = [pscustomobject]@{ UserObj = $UserObj } - ScheduledTime = $UserObj.Scheduled.date - PostExecution = @{ + 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 diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 new file mode 100644 index 000000000000..cb59b07113b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 @@ -0,0 +1,140 @@ +function Invoke-AddUserDefaults { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + # Extract data from request body - matching CippAddEditUser.jsx field names + $TenantFilter = $Request.Body.tenantFilter + $TemplateName = $Request.Body.templateName + $DefaultForTenant = $Request.Body.defaultForTenant + + Write-Host "Creating template '$TemplateName' for tenant: $TenantFilter" + + # User fields + $GivenName = $Request.Body.givenName + $Surname = $Request.Body.surname + $DisplayName = $Request.Body.displayName + + # Handle autocomplete fields - extract value if it's an object + $UsernameFormat = if ($Request.Body.usernameFormat -is [string]) { + $Request.Body.usernameFormat + } else { + $Request.Body.usernameFormat.value + } + + $PrimDomain = if ($Request.Body.primDomain -is [string]) { + $Request.Body.primDomain + } else { + $Request.Body.primDomain.value + } + + $AddedAliases = $Request.Body.addedAliases + + # Settings + $Autopassword = $Request.Body.Autopassword + $Password = $Request.Body.password + $MustChangePass = $Request.Body.MustChangePass + + $UsageLocation = if ($Request.Body.usageLocation -is [string]) { + $Request.Body.usageLocation + } else { + $Request.Body.usageLocation.value + } + + $Licenses = $Request.Body.licenses + $RemoveLicenses = $Request.Body.removeLicenses + + # Job and Location fields + $JobTitle = $Request.Body.jobTitle + $StreetAddress = $Request.Body.streetAddress + $City = $Request.Body.city + $State = $Request.Body.state + $PostalCode = $Request.Body.postalCode + $Country = $Request.Body.country + $CompanyName = $Request.Body.companyName + $Department = $Request.Body.department + + # Contact fields + $MobilePhone = $Request.Body.mobilePhone + $BusinessPhones = $Request.Body.'businessPhones[0]' + $OtherMails = $Request.Body.otherMails + + # User relations + $SetManager = $Request.Body.setManager + $SetSponsor = $Request.Body.setSponsor + $CopyFrom = $Request.Body.copyFrom + + # Create template object with all fields from CippAddEditUser + $TemplateObject = @{ + tenantFilter = $TenantFilter + templateName = $TemplateName + defaultForTenant = [bool]$DefaultForTenant + givenName = $GivenName + surname = $Surname + displayName = $DisplayName + usernameFormat = $UsernameFormat + primDomain = $PrimDomain + addedAliases = $AddedAliases + Autopassword = $Autopassword + password = $Password + MustChangePass = $MustChangePass + usageLocation = $UsageLocation + licenses = $Licenses + removeLicenses = $RemoveLicenses + jobTitle = $JobTitle + streetAddress = $StreetAddress + city = $City + state = $State + postalCode = $PostalCode + country = $Country + companyName = $CompanyName + department = $Department + mobilePhone = $MobilePhone + businessPhones = $BusinessPhones + otherMails = $OtherMails + setManager = $SetManager + setSponsor = $SetSponsor + copyFrom = $CopyFrom + } + + # Generate GUID for the template + $GUID = (New-Guid).GUID + + # Convert to JSON + $JSON = ConvertTo-Json -InputObject $TemplateObject -Depth 100 -Compress + + # Store in table + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'UserDefaultTemplate' + GUID = "$GUID" + } + + $Result = "Created User Default Template '$($TemplateName)' with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create User Default Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 index 2ad6abf635b3..8a9a94c0cbd3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 @@ -191,7 +191,7 @@ function Invoke-CIPPOffboardingJob { } } elseif ($User.onPremisesSyncEnabled -eq $true -and ![string]::IsNullOrEmpty($User.onPremisesImmutableId)) { Write-LogMessage -Message "User $Username is synced from on-premises. Scheduling an Immutable ID clear for when the user account has been soft deleted." -TenantFilter $TenantFilter -Severity 'Error' -APIName $APIName -Headers $Headers - + 'Scheduling Immutable ID clear task for when the user account is no longer synced in the on-premises directory.' $ScheduledTask = @{ TenantFilter = $TenantFilter Name = "Clear Immutable ID: $Username" diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 index acda628e0a00..2ffcc5041778 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 @@ -172,7 +172,7 @@ function Invoke-EditUser { if ($AddToGroups) { $AddToGroups | ForEach-Object { - $GroupType = $_.addedFields.calculatedGroupType + $GroupType = $_.addedFields.groupType $GroupID = $_.value $GroupName = $_.label Write-Host "About to add $($UserObj.userPrincipalName) to $GroupName. Group ID is: $GroupID and type is: $GroupType" @@ -204,7 +204,7 @@ function Invoke-EditUser { if ($RemoveFromGroups) { $RemoveFromGroups | ForEach-Object { - $GroupType = $_.addedFields.calculatedGroupType + $GroupType = $_.addedFields.groupType $GroupID = $_.value $GroupName = $_.label Write-Host "About to remove $($UserObj.userPrincipalName) from $GroupName. Group ID is: $GroupID and type is: $GroupType" diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 index 890ab08c3748..3a054bc4f0f7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 @@ -16,13 +16,9 @@ function Invoke-ExecJITAdmin { $TenantFilter = $Request.Body.tenantFilter.value ? $Request.Body.tenantFilter.value : $Request.Body.tenantFilter - if ($Request.Body.existingUser.value -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { - $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.Body.existingUser.value)" -tenantid $TenantFilter).userPrincipalName - } - $Start = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate)).DateTime.ToLocalTime() $Expiration = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.EndDate)).DateTime.ToLocalTime() - $Results = [System.Collections.Generic.List[string]]::new() + $Results = [System.Collections.Generic.List[object]]::new() if ($Request.Body.userAction -eq 'create') { $Domain = $Request.Body.Domain.value ? $Request.Body.Domain.value : $Request.Body.Domain @@ -36,20 +32,66 @@ function Invoke-ExecJITAdmin { 'UserPrincipalName' = $Username } Expiration = $Expiration + StartDate = $Start Reason = $Request.Body.reason Action = 'Create' TenantFilter = $TenantFilter + Headers = $Headers + APIName = $APIName + } + try { + $CreateResult = Set-CIPPUserJITAdmin @JITAdmin + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @("Failed to create JIT Admin user: $($_.Exception.Message)") } + }) } - $CreateResult = Set-CIPPUserJITAdmin @JITAdmin - Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Created JIT Admin user: $Username. Reason: $($Request.Body.reason). Roles: $($Request.Body.adminRoles.label -join ', ')" -Sev 'Info' -LogData $JITAdmin - $Results.Add("Created User: $Username") + $Results.Add(@{ + resultText = "Created User: $Username" + copyField = $Username + state = 'success' + }) if (!$Request.Body.UseTAP) { - $Results.Add("Password: $($CreateResult.password)") + $Results.Add(@{ + resultText = "Password: $($CreateResult.password)" + copyField = $CreateResult.password + state = 'success' + }) } $Results.Add("JIT Admin Expires: $($Expiration)") Start-Sleep -Seconds 1 + } else { + + $Username = $Request.Body.existingUser.value + if ($Username -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + Write-Information "Resolving UserPrincipalName from ObjectId: $($Request.Body.existingUser.value)" + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.Body.existingUser.value)" -tenantid $TenantFilter).userPrincipalName + + # If the resolved username is a guest user, we need to use the id instead of the UPN + if ($Username -clike '*#EXT#*') { + $Username = $Request.Body.existingUser.value + } + } + + # Validate we have a username + if ([string]::IsNullOrWhiteSpace($Username)) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ 'Results' = @("Could not resolve username from existingUser value: $($Request.Body.existingUser.value)") } + } + } + + # Add username result for existing user + $Results.Add(@{ + resultText = "User: $Username" + copyField = $Username + state = 'success' + }) } + + #Region TAP creation if ($Request.Body.UseTAP) { try { @@ -82,13 +124,21 @@ function Invoke-ExecJITAdmin { $PasswordLink = New-PwPushLink -Payload $TempPass $Password = $PasswordLink ? $PasswordLink : $TempPass - $Results.Add("Temporary Access Pass: $Password") + $Results.Add(@{ + resultText = "Temporary Access Pass: $Password" + copyField = $Password + state = 'success' + }) $Results.Add("This TAP is usable starting at $($TapRequest.startDateTime) UTC for the next $PasswordExpiration minutes") } catch { $Results.Add('Failed to create TAP, if this is not yet enabled, use the Standards to push the settings to the tenant.') Write-Information (Get-CippException -Exception $_ | ConvertTo-Json -Depth 5) if ($Password) { - $Results.Add("Password: $Password") + $Results.Add(@{ + resultText = "Password: $Password" + copyField = $Password + state = 'success' + }) } } } @@ -103,6 +153,9 @@ function Invoke-ExecJITAdmin { Action = 'AddRoles' Reason = $Request.Body.Reason Expiration = $Expiration + StartDate = $Start + Headers = $Headers + APIName = $APIName } if ($Start -gt (Get-Date)) { $TaskBody = @{ @@ -122,14 +175,19 @@ function Invoke-ExecJITAdmin { } Add-CIPPScheduledTask -Task $TaskBody -hidden $false if ($Request.Body.userAction -ne 'create') { - Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $Request.Body.existingUser.value -Expiration $Expiration -Reason $Request.Body.Reason + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $Request.Body.existingUser.value -Expiration $Expiration -StartDate $Start -Reason $Request.Body.Reason -CreatedBy (([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails) } $Results.Add("Scheduling JIT Admin enable task for $Username") - Write-LogMessage -Headers $Headers -API $APIName -message "Scheduling JIT Admin for existing user: $Username. Reason: $($Request.Body.reason). Roles: $($Request.Body.adminRoles.label -join ', ') " -tenant $TenantFilter -Sev 'Info' } else { - $Results.Add("Executing JIT Admin enable task for $Username") - Set-CIPPUserJITAdmin @Parameters - Write-LogMessage -Headers $Headers -API $APIName -message "Executing JIT Admin for existing user: $Username. Reason: $($Request.Body.reason). Roles: $($Request.Body.adminRoles.label -join ', ') " -tenant $TenantFilter -Sev 'Info' + try { + $Results.Add("Executing JIT Admin enable task for $Username") + Set-CIPPUserJITAdmin @Parameters + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @("Failed to execute JIT Admin enable task: $($_.Exception.Message)") } + }) + } } $DisableTaskBody = [pscustomobject]@{ @@ -158,7 +216,6 @@ function Invoke-ExecJITAdmin { $null = Add-CIPPScheduledTask -Task $DisableTaskBody -hidden $false $Results.Add("Scheduling JIT Admin $($Request.Body.ExpireAction.value) task for $Username") - # TODO - We should find a way to have this return a HTTP status code based on the success or failure of the operation. This also doesn't return the results of the operation in a Results hash table, like most of the rest of the API. return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{'Results' = @($Results) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 index 0ce96583a85a..0ca013970a1f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 @@ -35,6 +35,7 @@ function Invoke-ExecOffboardUser { Email = [bool]$Request.Body.PostExecution.email PSA = [bool]$Request.Body.PostExecution.psa } + Reference = $Request.Body.reference } Add-CIPPScheduledTask -Task $taskObject -hidden $false -Headers $Headers } else { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 new file mode 100644 index 000000000000..f4636684fb1c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 @@ -0,0 +1,91 @@ +function Invoke-ExecSetUserPhoto { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $tenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $userId = $Request.Query.userId ?? $Request.Body.userId + $action = $Request.Query.action ?? $Request.Body.action + $photoData = $Request.Body.photoData + + $Results = [System.Collections.Generic.List[object]]::new() + + try { + if ([string]::IsNullOrWhiteSpace($userId)) { + throw 'User ID is required' + } + + if ($action -eq 'remove') { + # Remove the user's profile picture + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$userId/photo/`$value" -tenantid $tenantFilter -type DELETE -NoAuthCheck $true + $Results.Add('Successfully removed user profile picture.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Removed profile picture for user $userId" -Sev Info + } catch { + # Check if the error is because there's no photo + if ($_.Exception.Message -like '*does not exist*' -or $_.Exception.Message -like '*ResourceNotFound*') { + $Results.Add('User does not have a profile picture to remove.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "No profile picture found for user $userId" -Sev Info + } else { + throw $_ + } + } + } elseif ($action -eq 'set') { + # Set the user's profile picture + if ([string]::IsNullOrWhiteSpace($photoData)) { + throw 'Photo data is required when setting a profile picture' + } + + # Convert base64 string to byte array + # The photoData should be in format: data:image/jpeg;base64,/9j/4AAQSkZJRg... + # We need to strip the data URL prefix if present + $base64Data = $photoData + if ($photoData -match '^data:image/[^;]+;base64,(.+)$') { + $base64Data = $Matches[1] + } + + try { + $photoBytes = [Convert]::FromBase64String($base64Data) + } catch { + throw "Invalid base64 photo data: $($_.Exception.Message)" + } + + # Validate image size (Microsoft Graph has a 4MB limit) + $maxSizeBytes = 4 * 1024 * 1024 # 4MB + if ($photoBytes.Length -gt $maxSizeBytes) { + throw "Photo size exceeds 4MB limit. Current size: $([math]::Round($photoBytes.Length / 1MB, 2))MB" + } + + # Upload the photo using Graph API + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$userId/photo/`$value" -tenantid $tenantFilter -type PATCH -body $photoBytes -ContentType 'image/jpeg' -NoAuthCheck $true + + $Results.Add('Successfully set user profile picture.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Set profile picture for user $userId" -Sev Info + } else { + throw "Invalid action. Must be 'set' or 'remove'" + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + 'Results' = @($Results) + } + }) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Failed to $action user profile picture. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + 'Results' = @("Failed to $action user profile picture: $($ErrorMessage.NormalizedError)") + } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 index 9c4ca15bc5d6..705e4b205258 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 @@ -46,7 +46,9 @@ accountEnabled = $_.accountEnabled jitAdminEnabled = $_.($Schema.id).jitAdminEnabled jitAdminExpiration = $_.($Schema.id).jitAdminExpiration + jitAdminStartDate = $_.($Schema.id).jitAdminStartDate jitAdminReason = $_.($Schema.id).jitAdminReason + jitAdminCreatedBy = $_.($Schema.id).jitAdminCreatedBy memberOf = $MemberOf } } @@ -109,7 +111,9 @@ accountEnabled = $UserObject.accountEnabled jitAdminEnabled = $UserObject.jitAdminEnabled jitAdminExpiration = $UserObject.jitAdminExpiration + jitAdminStartDate = $UserObject.jitAdminStartDate jitAdminReason = $UserObject.jitAdminReason + jitAdminCreatedBy = $UserObject.jitAdminCreatedBy memberOf = $UserObject.memberOf } ) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 new file mode 100644 index 000000000000..847e7271c95f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 @@ -0,0 +1,71 @@ +function Invoke-ListNewUserDefaults { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + Write-Host 'Listing New User Default Templates' + + # Get the TenantFilter from query parameters + $TenantFilter = $Request.Query.TenantFilter + + # Get the includeAllTenants flag from query or body parameters (defaults to true) + $IncludeAllTenants = if ($Request.Query.includeAllTenants -eq 'false' -or $Request.Body.includeAllTenants -eq 'false') { + $false + } else { + $true + } + + # Get the templates table + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'UserDefaultTemplate'" + + # Retrieve all User Default templates + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'RowKey' -NotePropertyValue $row.RowKey -Force + $data + } catch { + Write-Warning "Failed to process User Default template: $($row.RowKey) - $($_.Exception.Message)" + } + } + + # Filter by tenant if TenantFilter is provided + if ($TenantFilter) { + if ($TenantFilter -eq 'AllTenants') { + # When requesting AllTenants, return only templates stored under AllTenants + $Templates = $Templates | Where-Object -Property tenantFilter -eq 'AllTenants' + } else { + # When requesting a specific tenant + if ($IncludeAllTenants) { + # Include both tenant-specific and AllTenants templates + $Templates = $Templates | Where-Object { $_.tenantFilter -eq $TenantFilter -or $_.tenantFilter -eq 'AllTenants' } + } else { + # Return only tenant-specific templates (exclude AllTenants) + $Templates = $Templates | Where-Object -Property tenantFilter -eq $TenantFilter + } + } + } + + # Sort by template name + $Templates = $Templates | Sort-Object -Property templateName + + # If a specific ID is requested, filter to that template + if ($Request.query.ID) { + $Templates = $Templates | Where-Object -Property GUID -eq $Request.query.ID + } + + $Templates = ConvertTo-Json -InputObject @($Templates) -Depth 100 + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Templates + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 index d0c533708320..a223aef2c597 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ListUserGroups { +function Invoke-ListUserGroups { <# .FUNCTIONALITY Entrypoint @@ -22,10 +22,10 @@ Function Invoke-ListUserGroups { @{ Name = 'OnPremisesSync'; Expression = { $_.onPremisesSyncEnabled } }, @{ Name = 'IsAssignableToRole'; Expression = { $_.isAssignableToRole } }, @{ Name = 'calculatedGroupType'; Expression = { - if ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } - if (!$_.mailEnabled -and $_.securityEnabled) { 'Security' } if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } - if (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (!$_.securityEnabled)) { 'Distribution List' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 index d7e0c7f2f33f..40928e896231 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 @@ -7,7 +7,8 @@ Function Invoke-ListUsers { #> [CmdletBinding()] param($Request, $TriggerMetadata) - $ConvertTable = Import-Csv ConversionTable.csv | Sort-Object -Property 'guid' -Unique + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') | Sort-Object -Property 'guid' -Unique # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter $GraphFilter = $Request.Query.graphFilter diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 new file mode 100644 index 000000000000..c97f52617d00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 @@ -0,0 +1,42 @@ +function Invoke-RemoveUserDefaultTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + $ID = $Request.Query.ID ?? $Request.Body.ID + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'UserDefaultTemplate' and RowKey eq '$ID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if ($Template) { + Remove-AzDataTableEntity @Table -Entity $Template + $Result = "Successfully deleted User Default Template with ID: $ID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } else { + $Result = "User Default Template with ID $ID not found" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Warning' + $StatusCode = [HttpStatusCode]::NotFound + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete User Default Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 new file mode 100644 index 000000000000..399a8a1972e8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 @@ -0,0 +1,43 @@ +function Invoke-ExecSetCloudManaged { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.DirSync.ReadWrite + .DESCRIPTION + Sets the cloud-managed status of a user, group, or contact. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $GroupID = $Request.Body.ID + $DisplayName = $Request.Body.displayName + $Type = $Request.Body.type + $IsCloudManaged = [System.Convert]::ToBoolean($Request.Body.isCloudManaged) + + try { + $Params = @{ + Id = $GroupID + TenantFilter = $TenantFilter + DisplayName = $DisplayName + Type = $Type + IsCloudManaged = $IsCloudManaged + APIName = $APIName + Headers = $Headers + } + $Result = Set-CIPPCloudManaged @Params + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 new file mode 100644 index 000000000000..534dc7ed2896 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 @@ -0,0 +1,60 @@ +function Invoke-AddTestReport { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + $Body = $Request.Body + + # Validate required fields + if ([string]::IsNullOrEmpty($Body.name)) { + throw 'Report name is required' + } + + # Generate a unique ID + $ReportId = New-Guid + $IdentityTests = $Body.IdentityTests ? ($Body.IdentityTests.value | ConvertTo-Json) : '[]' + $DevicesTests = $Body.DevicesTests ? ($Body.DevicesTests.value | ConvertTo-Json) : '[]' + + # Create report object + $Report = [PSCustomObject]@{ + PartitionKey = 'Report' + RowKey = [string]$ReportId + name = [string]$Body.name + description = [string]$Body.description + version = '1.0' + IdentityTests = [string]$IdentityTests + DevicesTests = [string]$DevicesTests + CreatedAt = [string](Get-Date).ToString('o') + } + + # Save to table + $Table = Get-CippTable -tablename 'CippReportTemplates' + Add-CIPPAzDataTableEntity -Entity $Report @Table + $Body = [PSCustomObject]@{ + Results = 'Successfully created custom report' + ReportId = $ReportId + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message "Failed to create report: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Body = [PSCustomObject]@{ + Results = "Failed to create report: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 new file mode 100644 index 000000000000..ed502f467c1e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 @@ -0,0 +1,37 @@ +function Invoke-DeleteTestReport { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + $ReportId = $Request.Body.ReportId + $Table = Get-CippTable -tablename 'CippReportTemplates' + $ExistingReport = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$ReportId'" + Remove-AzDataTableEntity @Table -Entity $ExistingReport + + $Body = [PSCustomObject]@{ + Results = 'Successfully deleted custom report' + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message "Failed to delete report: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Body = [PSCustomObject]@{ + Results = "Failed to delete report: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 new file mode 100644 index 000000000000..bbf455e74581 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 @@ -0,0 +1,54 @@ +function Invoke-ExecTestRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Tests.ReadWrite + #> + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Starting data collection and test run for tenant: $TenantFilter" -sev Info + $Batch = @( + @{ + FunctionName = 'CIPPDBCacheData' + TenantFilter = $TenantFilter + QueueId = $Queue.RowKey + QueueName = "Cache - $TenantFilter" + } + ) + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TestDataCollectionAndRun' + Batch = $Batch + PostExecution = @{ + FunctionName = 'CIPPTestsRun' + Parameters = @{ + TenantFilter = $TenantFilter + } + } + SkipLog = $false + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ Results = "Successfully started data collection and test run for $TenantFilter" } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Data collection and test run orchestration started. Instance ID: $InstanceId" -sev Info + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to start data collection/test run: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Message = "Failed to start data collection/test run for $TenantFilter" } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 new file mode 100644 index 000000000000..ceee5d026d31 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 @@ -0,0 +1,86 @@ +function Invoke-ListAvailableTests { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + # Get all test folders + $TestFolders = Get-ChildItem 'Modules\CIPPCore\Public\Tests' -Directory + + # Build identity tests array + $IdentityTests = foreach ($TestFolder in $TestFolders) { + $IdentityTestFiles = Get-ChildItem "$($TestFolder.FullName)\Identity\*.ps1" -ErrorAction SilentlyContinue + foreach ($TestFile in $IdentityTestFiles) { + # Extract test ID from filename (e.g., Invoke-CippTestZTNA21772.ps1 -> ZTNA21772) + if ($TestFile.BaseName -match 'Invoke-CippTest(.+)$') { + $TestId = $Matches[1] + + # Try to get test metadata from the file + $TestContent = Get-Content $TestFile.FullName -Raw + $TestName = $TestId + + # Try to extract Synopsis from comment-based help + if ($TestContent -match '\.SYNOPSIS\s+(.+?)(?=\s+\.|\s+#>|\s+\[)') { + $TestName = $Matches[1].Trim() + } + + [PSCustomObject]@{ + id = $TestId + name = $TestName + category = 'Identity' + testFolder = $TestFolder.Name + } + } + } + } + + # Build device tests array + $DevicesTests = foreach ($TestFolder in $TestFolders) { + $DeviceTestFiles = Get-ChildItem "$($TestFolder.FullName)\Devices\*.ps1" -ErrorAction SilentlyContinue + foreach ($TestFile in $DeviceTestFiles) { + if ($TestFile.BaseName -match 'Invoke-CippTest(.+)$') { + $TestId = $Matches[1] + + $TestContent = Get-Content $TestFile.FullName -Raw + $TestName = $TestId + + if ($TestContent -match '\.SYNOPSIS\s+(.+?)(?=\s+\.|\s+#>|\s+\[)') { + $TestName = $Matches[1].Trim() + } + + [PSCustomObject]@{ + id = $TestId + name = $TestName + category = 'Devices' + testFolder = $TestFolder.Name + } + } + } + } + + $Body = [PSCustomObject]@{ + IdentityTests = $IdentityTests + DevicesTests = $DevicesTests + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = [PSCustomObject]@{ + Results = "Failed to list available tests: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 new file mode 100644 index 000000000000..eae3538134ce --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 @@ -0,0 +1,69 @@ +function Invoke-ListTestReports { + <# + .SYNOPSIS + Lists all available test reports from JSON files and database + + .FUNCTIONALITY + Entrypoint + + .ROLE + Tenant.Reports.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + # Get reports from JSON files in test folders + $FileReports = Get-ChildItem 'Modules\CIPPCore\Public\Tests\*\report.json' -ErrorAction SilentlyContinue | ForEach-Object { + try { + $ReportContent = Get-Content $_.FullName -Raw | ConvertFrom-Json + $FolderName = $_.Directory.Name + [PSCustomObject]@{ + id = $FolderName.ToLower() + name = $ReportContent.name ?? $FolderName + description = $ReportContent.description ?? '' + version = $ReportContent.version ?? '1.0' + source = 'file' + type = $FolderName + } + } catch { + Write-LogMessage -API $APIName -message "Error reading report.json from $($_.Directory.Name): $($_.Exception.Message)" -sev Warning + } + } + + # Get custom reports from CippReportTemplates table + $ReportTable = Get-CippTable -tablename 'CippReportTemplates' + $Filter = "PartitionKey eq 'Report'" + $CustomReports = Get-CIPPAzDataTableEntity @ReportTable -Filter $Filter + + $DatabaseReports = foreach ($Report in $CustomReports) { + [PSCustomObject]@{ + id = $Report.RowKey + name = $Report.Name ?? 'Custom Report' + description = $Report.Description ?? '' + version = $Report.Version ?? '1.0' + source = 'database' + type = 'custom' + } + } + + $Reports = @($FileReports) + @($DatabaseReports) + + $StatusCode = [HttpStatusCode]::OK + $Body = @($Reports) + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -message "Error retrieving test reports: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Error = $ErrorMessage.NormalizedError } + } + + return([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 -Compress + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 new file mode 100644 index 000000000000..08946b093fe9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 @@ -0,0 +1,163 @@ +function Invoke-ListTests { + <# + .SYNOPSIS + Lists tests for a tenant, optionally filtered by report ID + + .FUNCTIONALITY + Entrypoint + + .ROLE + Tenant.Reports.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ReportId = $Request.Query.reportId ?? $Request.Body.reportId + + if (-not $TenantFilter) { + throw 'TenantFilter parameter is required' + } + + $TestResultsData = Get-CIPPTestResults -TenantFilter $TenantFilter + + $IdentityTotal = 0 + $DevicesTotal = 0 + $IdentityTests = @() + $DevicesTests = @() + + if ($ReportId) { + $ReportJsonFiles = Get-ChildItem 'Modules\CIPPCore\Public\Tests\*\report.json' -ErrorAction SilentlyContinue + $ReportFound = $false + + $MatchingReport = $ReportJsonFiles | Where-Object { $_.Directory.Name.ToLower() -eq $ReportId.ToLower() } | Select-Object -First 1 + + if ($MatchingReport) { + try { + $ReportContent = Get-Content $MatchingReport.FullName -Raw | ConvertFrom-Json + if ($ReportContent.IdentityTests) { + $IdentityTests = $ReportContent.IdentityTests + $IdentityTotal = @($IdentityTests).Count + } + if ($ReportContent.DevicesTests) { + $DevicesTests = $ReportContent.DevicesTests + $DevicesTotal = @($DevicesTests).Count + } + $ReportFound = $true + } catch { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Error reading report.json: $($_.Exception.Message)" -sev Warning + } + } + + # Fall back to database if not found in JSON files + if (-not $ReportFound) { + $ReportTable = Get-CippTable -tablename 'CippReportTemplates' + $Filter = "PartitionKey eq 'Report' and RowKey eq '{0}'" -f $ReportId + $ReportTemplate = Get-CIPPAzDataTableEntity @ReportTable -Filter $Filter + + if ($ReportTemplate) { + if ($ReportTemplate.identityTests) { + $IdentityTests = $ReportTemplate.identityTests | ConvertFrom-Json + $IdentityTotal = @($IdentityTests).Count + } + + if ($ReportTemplate.DevicesTests) { + $DevicesTests = $ReportTemplate.DevicesTests | ConvertFrom-Json + $DevicesTotal = @($DevicesTests).Count + } + $ReportFound = $true + } else { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Report template '$ReportId' not found" -sev Warning + } + } + + # Filter tests if report was found + if ($ReportFound) { + $AllReportTests = $IdentityTests + $DevicesTests + # Use HashSet for O(1) lookup performance + $TestLookup = [System.Collections.Generic.HashSet[string]]::new() + foreach ($test in $AllReportTests) { + [void]$TestLookup.Add($test) + } + $FilteredTests = $TestResultsData.TestResults | Where-Object { $TestLookup.Contains($_.RowKey) } + $TestResultsData.TestResults = @($FilteredTests) + } else { + $TestResultsData.TestResults = @() + } + } else { + $IdentityTotal = @($TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Identity' }).Count + $DevicesTotal = @($TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Devices' }).Count + } + + $IdentityResults = $TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Identity' } + $DeviceResults = $TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Devices' } + + # Add descriptions from markdown files to each test result + foreach ($TestResult in $TestResultsData.TestResults) { + $MdFile = Get-ChildItem -Path 'Modules\CIPPCore\Public\Tests' -Filter "*$($TestResult.RowKey).md" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 + if ($MdFile) { + try { + $MdContent = Get-Content $MdFile.FullName -Raw -ErrorAction SilentlyContinue + if ($MdContent) { + $Description = ($MdContent -split '')[0].Trim() + $Description = ($Description -split '%TestResult%')[0].Trim() + $TestResult | Add-Member -NotePropertyName 'Description' -NotePropertyValue $Description -Force + } + } catch { + #Test + } + } + } + + $TestCounts = @{ + Identity = @{ + Passed = @($IdentityResults | Where-Object { $_.Status -eq 'Passed' }).Count + Failed = @($IdentityResults | Where-Object { $_.Status -eq 'Failed' }).Count + Investigate = @($IdentityResults | Where-Object { $_.Status -eq 'Investigate' }).Count + Skipped = @($IdentityResults | Where-Object { $_.Status -eq 'Skipped' }).Count + Total = $IdentityTotal + } + Devices = @{ + Passed = @($DeviceResults | Where-Object { $_.Status -eq 'Passed' }).Count + Failed = @($DeviceResults | Where-Object { $_.Status -eq 'Failed' }).Count + Investigate = @($DeviceResults | Where-Object { $_.Status -eq 'Investigate' }).Count + Skipped = @($DeviceResults | Where-Object { $_.Status -eq 'Skipped' }).Count + Total = $DevicesTotal + } + } + + $TestResultsData | Add-Member -NotePropertyName 'TestCounts' -NotePropertyValue $TestCounts -Force + + $SecureScoreData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SecureScore' + if ($SecureScoreData) { + $TestResultsData | Add-Member -NotePropertyName 'SecureScore' -NotePropertyValue @($SecureScoreData) -Force + } + $MFAStateData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'MFAState' + if ($MFAStateData) { + $TestResultsData | Add-Member -NotePropertyName 'MFAState' -NotePropertyValue @($MFAStateData) -Force + } + + $LicenseData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'LicenseOverview' + if ($LicenseData) { + $TestResultsData | Add-Member -NotePropertyName 'LicenseData' -NotePropertyValue @($LicenseData) -Force + } + + $StatusCode = [HttpStatusCode]::OK + $Body = $TestResultsData + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Error retrieving tests: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Error = $ErrorMessage.NormalizedError } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 index 1bcc38c208a6..70586323cd32 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 @@ -12,8 +12,51 @@ function New-CippCoreRequest { [CmdletBinding(SupportsShouldProcess = $true)] param($Request, $TriggerMetadata) + # Initialize per-request timing + $HttpTimings = @{} + $HttpTotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew() + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippInvocationIdStorage) { + $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + if (-not $script:CippAllowedTenantsStorage) { + $script:CippAllowedTenantsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippAllowedGroupsStorage) { + $script:CippAllowedGroupsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippUserRolesStorage) { + $script:CippUserRolesStorage = [System.Threading.AsyncLocal[hashtable]]::new() + } + + # Initialize user roles cache for this request + if (-not $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value = @{} + } + + # Set InvocationId in AsyncLocal storage for console logging correlation + if ($global:TelemetryClient -and $TriggerMetadata.InvocationId) { + $script:CippInvocationIdStorage.Value = $TriggerMetadata.InvocationId + } + $FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint - Write-Information "API: $($Request.Params.CIPPEndpoint)" + Write-Information "API Endpoint: $($Request.Params.CIPPEndpoint) | Frontend Version: $($Request.Headers.'X-CIPP-Version' ?? 'Not specified')" + + if ($Request.Headers.'X-CIPP-Version') { + $Table = Get-CippTable -tablename 'Version' + $FrontendVer = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Version' and RowKey eq 'frontend'" + + if (!$FrontendVer -or ([semver]$FrontendVer.Version -lt [semver]$Request.Headers.'X-CIPP-Version')) { + Add-CIPPAzDataTableEntity @Table -Entity ([pscustomobject]@{ + PartitionKey = 'Version' + RowKey = 'frontend' + Version = $Request.Headers.'X-CIPP-Version' + }) -Force + } elseif ([semver]$FrontendVer.Version -gt [semver]$Request.Headers.'X-CIPP-Version') { + Write-Warning "Client version $($Request.Headers.'X-CIPP-Version') is older than the current frontend version $($FrontendVer.Version)" + } + } $HttpTrigger = @{ Request = [pscustomobject]($Request) @@ -26,36 +69,107 @@ function New-CippCoreRequest { if ((Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) -or $FunctionName -eq 'Invoke-Me') { try { + $swAccess = [System.Diagnostics.Stopwatch]::StartNew() $Access = Test-CIPPAccess -Request $Request + $swAccess.Stop() + $HttpTimings['AccessCheck'] = $swAccess.Elapsed.TotalMilliseconds if ($FunctionName -eq 'Invoke-Me') { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return $Access } } catch { Write-Information "Access denied for $FunctionName : $($_.Exception.Message)" + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::Forbidden Body = $_.Exception.Message }) } + $swTenants = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedTenants = Test-CippAccess -Request $Request -TenantList + $swTenants.Stop() + $HttpTimings['AllowedTenants'] = $swTenants.Elapsed.TotalMilliseconds + + $swGroups = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedGroups = Test-CippAccess -Request $Request -GroupList + $swGroups.Stop() + $HttpTimings['AllowedGroups'] = $swGroups.Elapsed.TotalMilliseconds + + if ($AllowedTenants -notcontains 'AllTenants') { + Write-Warning 'Limiting tenant access' + $script:CippAllowedTenantsStorage.Value = $AllowedTenants + } + if ($AllowedGroups -notcontains 'AllGroups') { + Write-Warning 'Limiting group access' + $script:CippAllowedGroupsStorage.Value = $AllowedGroups + } try { Write-Information "Access: $Access" Write-LogMessage -headers $Headers -API $Request.Params.CIPPEndpoint -message 'Accessed this API' -Sev 'Debug' if ($Access) { - $Response = & $FunctionName @HttpTrigger + # Prepare telemetry metadata for HTTP API call + $metadata = @{ + Endpoint = $Request.Params.CIPPEndpoint + FunctionName = $FunctionName + Method = $Request.Method + TriggerType = 'HTTP' + } + + # Add tenant filter if present + if ($Request.Query.TenantFilter) { + $metadata['Tenant'] = $Request.Query.TenantFilter + } elseif ($Request.Body.TenantFilter) { + $metadata['Tenant'] = $Request.Body.TenantFilter + } + + # Add user info if available + if ($Request.Headers.'x-ms-client-principal-name') { + $metadata['User'] = $Request.Headers.'x-ms-client-principal-name' + } + + # Wrap the API call execution with telemetry + $swInvoke = [System.Diagnostics.Stopwatch]::StartNew() + $Response = Measure-CippTask -TaskName $Request.Params.CIPPEndpoint -Metadata $metadata -Script { & $FunctionName @HttpTrigger } + $swInvoke.Stop() + $HttpTimings['InvokeEndpoint'] = $swInvoke.Elapsed.TotalMilliseconds + # Filter to only return HttpResponseContext objects $HttpResponse = $Response | Where-Object { $_.PSObject.TypeNames -eq 'Microsoft.Azure.Functions.PowerShellWorker.HttpResponseContext' } if ($HttpResponse) { # Return the first valid HttpResponseContext found + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return ([HttpResponseContext]($HttpResponse | Select-Object -First 1)) } else { # If no valid response context found, create a default success response if ($Response.PSObject.Properties.Name -contains 'StatusCode' -and $Response.PSObject.Properties.Name -contains 'Body') { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return ([HttpResponseContext]@{ StatusCode = $Response.StatusCode Body = $Response.Body }) } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Response @@ -65,18 +179,33 @@ function New-CippCoreRequest { } } catch { Write-Warning "Exception occurred on HTTP trigger ($FunctionName): $($_.Exception.Message)" + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::InternalServerError Body = $_.Exception.Message }) } } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::NotFound Body = 'Endpoint not found' }) } } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::PreconditionFailed Body = 'Request not processed' diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 index 1f1733152f55..5e87cdc60e00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 @@ -62,9 +62,6 @@ function Invoke-ExecAlertsList { QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' QueueId = $RunningQueue.RowKey } - [PSCustomObject]@{ - Waiting = $true - } } elseif (!$Rows -and !$RunningQueue) { # If no rows are found and no queue is running, we will start a new one $TenantList = Get-Tenants -IncludeErrors @@ -85,11 +82,7 @@ function Invoke-ExecAlertsList { } SkipLog = $true } | ConvertTo-Json -Depth 10 - $InstanceId = Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject $InputObject - [PSCustomObject]@{ - Waiting = $true - InstanceId = $InstanceId - } + Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject $InputObject } else { $Metadata = [PSCustomObject]@{ QueueId = $RunningQueue.RowKey ?? $null diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 index 4fd95ff2dba2..dd112c3f16ec 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ListSites { +function Invoke-ListSites { <# .FUNCTIONALITY Entrypoint @@ -11,15 +11,14 @@ Function Invoke-ListSites { $TenantFilter = $Request.Query.TenantFilter - $Type = $request.query.Type - $UserUPN = $request.query.UserUPN + $Type = $Request.Query.Type + $UserUPN = $Request.Query.UserUPN if (!$TenantFilter) { return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = 'TenantFilter is required' }) - return } if (!$Type) { @@ -27,7 +26,6 @@ Function Invoke-ListSites { StatusCode = [HttpStatusCode]::BadRequest Body = 'Type is required' }) - return } $Tenant = Get-Tenants -TenantFilter $TenantFilter diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 index 39094c47afe0..232627b9581a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 @@ -64,7 +64,10 @@ function Invoke-ListAuditLogs { if ($FilterConditions) { $Table.Filter = $FilterConditions -join ' and ' } - $AuditLogs = Get-CIPPAzDataTableEntity @Table | ForEach-Object { + + $Tenants = Get-Tenants -IncludeErrors + + $AuditLogs = Get-CIPPAzDataTableEntity @Table | Where-Object { $Tenants.defaultDomainName -contains $_.Tenant } | ForEach-Object { $_.Data = try { $_.Data | ConvertFrom-Json } catch { $_.AuditData } $_ | Select-Object @{n = 'LogId'; exp = { $_.RowKey } }, @{ n = 'Timestamp'; exp = { $_.Data.RawData.CreationTime } }, Tenant, Title, Data } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 new file mode 100644 index 000000000000..202377450790 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 @@ -0,0 +1,264 @@ +using namespace System.Net + +function Invoke-ExecCreateAppTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -headers $Request.headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Body.TenantFilter + $AppId = $Request.Body.AppId + $DisplayName = $Request.Body.DisplayName + $Type = $Request.Body.Type # 'servicePrincipal' or 'application' + + if ([string]::IsNullOrWhiteSpace($AppId)) { + throw 'AppId is required' + } + + if ([string]::IsNullOrWhiteSpace($DisplayName)) { + throw 'DisplayName is required' + } + + # Get the app details based on type + if ($Type -eq 'servicePrincipal') { + # For enterprise apps (service principals) + $AppDetails = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$filter=appId eq '$AppId'&`$select=id,appId,displayName,appRoles,oauth2PermissionScopes,requiredResourceAccess" -tenantid $TenantFilter + + if (-not $AppDetails -or $AppDetails.Count -eq 0) { + throw "Service principal not found for AppId: $AppId" + } + + $App = $AppDetails[0] + + # Get the application registration to access requiredResourceAccess + try { + $AppRegistration = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications?`$filter=appId eq '$AppId'&`$select=id,appId,displayName,requiredResourceAccess" -tenantid $TenantFilter + if ($AppRegistration -and $AppRegistration.Count -gt 0) { + $RequiredResourceAccess = $AppRegistration[0].requiredResourceAccess + } else { + $RequiredResourceAccess = @() + } + } catch { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Could not retrieve app registration for $AppId - will extract from service principal" -Sev 'Warning' + $RequiredResourceAccess = @() + } + + # Use requiredResourceAccess if available, otherwise we can't create a proper template + if ($RequiredResourceAccess -and $RequiredResourceAccess.Count -gt 0) { + $Permissions = $RequiredResourceAccess + } else { + # No permissions found - warn the user + Write-LogMessage -headers $Request.headers -API $APINAME -message "No permissions found for $AppId. The app registration may not have configured API permissions." -Sev 'Warning' + $Permissions = @() + } + } else { + # For app registrations (applications) + $App = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appId='$AppId')" -tenantid $TenantFilter + if (-not $App -or $App.Count -eq 0) { + throw "App registration not found for AppId: $AppId" + } + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + if ($Tenant.customerId -ne $env:TenantID) { + $ExistingApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications?`$filter=displayName eq '$DisplayName'" -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true + + if ($ExistingApp) { + Write-Information "App Registration $AppId already exists in partner tenant" + $AppId = $ExistingApp.appId + $App = $ExistingApp + Write-LogMessage -headers $Request.headers -API $APINAME -message "App Registration $($AppDetails.displayName) already exists in partner tenant" -Sev 'Info' + } else { + Write-Information "Copying App Registration $AppId from customer tenant $TenantFilter to partner tenant" + $PropertiesToRemove = @( + 'appId' + 'id' + 'createdDateTime' + 'deletedDateTime' + 'publisherDomain' + 'servicePrincipalLockConfiguration' + 'identifierUris' + 'applicationIdUris' + 'keyCredentials' + 'passwordCredentials' + 'isDisabled' + ) + $AppCopyBody = $App | Select-Object -Property * -ExcludeProperty $PropertiesToRemove + # Remove any null properties + $NullProperties = [System.Collections.Generic.List[string]]::new() + foreach ($Property in $AppCopyBody.PSObject.Properties.Name) { + if ($null -eq $AppCopyBody.$Property -or $AppCopyBody.$Property -eq '' -or !$AppCopyBody.$Property) { + Write-Information "Removing null property $Property from app copy body" + $NullProperties.Add($Property) + } + } + $AppCopyBody = $AppCopyBody | Select-Object -Property * -ExcludeProperty $NullProperties + if ($AppCopyBody.signInAudience -eq 'AzureADMyOrg') { + # Enterprise apps cannot be copied to another tenant + $AppCopyBody.signInAudience = 'AzureADMultipleOrgs' + } + if ($AppCopyBody.web -and $AppCopyBody.web.redirectUris) { + # Remove redirect URI settings if property exists + $AppCopyBody.web.PSObject.Properties.Remove('redirectUriSettings') + } + if ($AppCopyBody.api.oauth2PermissionScopes) { + $AppCopyBody.api.oauth2PermissionScopes = @(foreach ($Scope in $AppCopyBody.api.oauth2PermissionScopes) { + $Scope | Select-Object * -ExcludeProperty 'isPrivate' + }) + } + if ($AppCopyBody.appRoles) { + $AppCopyBody.appRoles = @(foreach ($Role in $AppCopyBody.api.appRoles) { + $Role | Select-Object * -ExcludeProperty 'isPreAuthorizationRequired', 'isPrivate' + }) + } + if ($AppCopyBody.api -and $AppCopyBody.api.tokenEncryptionSetting) { + # Remove token encryption settings if property exists + $AppCopyBody.api.PSObject.Properties.Remove('tokenEncryptionSetting') + } + + $NewApp = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/applications' -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true -type POST -body ($AppCopyBody | ConvertTo-Json -Depth 10) + + if (-not $NewApp) { + throw 'Failed to copy app registration to partner tenant' + } + + Write-Information "App Registration copied. New AppId: $($NewApp.appId)" + $App = $NewApp + $AppId = $NewApp.appId + Write-Information "Creating service principal for AppId: $AppId in partner tenant" + $Body = @{ + appId = $AppId + } + $NewSP = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true -type POST -body ($Body | ConvertTo-Json -Depth 10) + Write-LogMessage -headers $Request.headers -API $APINAME -message "App Registration $($AppDetails.displayName) copied to partner tenant" -Sev 'Info' + } + } + + $Permissions = if ($App.requiredResourceAccess) { $App.requiredResourceAccess } else { @() } + } + + # Transform requiredResourceAccess to the CIPP permission format + # CIPP expects: { "resourceAppId": { "applicationPermissions": [], "delegatedPermissions": [] } } + # Graph returns: [ { "resourceAppId": "...", "resourceAccess": [ { "id": "...", "type": "Role|Scope" } ] } ] + $CIPPPermissions = @{} + $PermissionSetId = $null + $PermissionSetName = "$DisplayName (Auto-created)" + + if ($Permissions -and $Permissions.Count -gt 0) { + foreach ($Resource in $Permissions) { + $ResourceAppId = $Resource.resourceAppId + $AppPerms = [System.Collections.ArrayList]::new() + $DelegatedPerms = [System.Collections.ArrayList]::new() + + foreach ($Access in $Resource.resourceAccess) { + $PermObj = [PSCustomObject]@{ + id = $Access.id + value = $Access.id # In the permission set format, both id and value are the permission ID + } + + if ($Access.type -eq 'Role') { + [void]$AppPerms.Add($PermObj) + } elseif ($Access.type -eq 'Scope') { + [void]$DelegatedPerms.Add($PermObj) + } + } + + $CIPPPermissions[$ResourceAppId] = [PSCustomObject]@{ + applicationPermissions = @($AppPerms) + delegatedPermissions = @($DelegatedPerms) + } + } + + # Create the permission set in AppPermissions table + $PermissionSetId = (New-Guid).Guid + $PermissionsTable = Get-CIPPTable -TableName 'AppPermissions' + + $PermissionEntity = @{ + 'PartitionKey' = 'Templates' + 'RowKey' = [string]$PermissionSetId + 'TemplateName' = [string]$PermissionSetName + 'Permissions' = [string]($CIPPPermissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = [string]'CIPP-API' + } + + Add-CIPPAzDataTableEntity @PermissionsTable -Entity $PermissionEntity -Force + Write-LogMessage -headers $Request.headers -API $APINAME -message "Permission set created with ID: $PermissionSetId for $($Permissions.Count) resource(s)" -Sev 'Info' + } + + # Create the template + $Table = Get-CIPPTable -TableName 'templates' + $TemplateId = (New-Guid).Guid + + $TemplateJson = @{ + TemplateName = "$DisplayName (Auto-created)" + AppId = $AppId + AppName = $DisplayName + AppType = 'EnterpriseApp' + Permissions = $CIPPPermissions + PermissionSetId = $PermissionSetId + PermissionSetName = $PermissionSetName + AutoCreated = $true + SourceTenant = $TenantFilter + CreatedDate = (Get-Date).ToString('yyyy-MM-ddTHH:mm:ss') + } | ConvertTo-Json -Depth 10 -Compress + + $Entity = @{ + JSON = "$TemplateJson" + RowKey = "$TemplateId" + PartitionKey = 'AppApprovalTemplate' + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity + + $PermissionCount = 0 + if ($CIPPPermissions -and $CIPPPermissions.Count -gt 0) { + foreach ($ResourceAppId in $CIPPPermissions.Keys) { + $Resource = $CIPPPermissions[$ResourceAppId] + if ($Resource.applicationPermissions) { + $PermissionCount = $PermissionCount + $Resource.applicationPermissions.Count + } + if ($Resource.delegatedPermissions) { + $PermissionCount = $PermissionCount + $Resource.delegatedPermissions.Count + } + } + } + + $Message = "Template created: $DisplayName with $PermissionCount permission(s)" + Write-LogMessage -headers $Request.headers -API $APINAME -message $Message -Sev 'Info' + + $Body = @{ + Results = @{'resultText' = $Message; 'state' = 'success' } + Metadata = @{ + TemplateId = $TemplateId + SourceTenant = $TenantFilter + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -headers $Request.headers -API $APINAME -message "Failed to create template: $ErrorMessage" -Sev 'Error' -LogData (Get-CippException -Exception $_) + Write-Warning "Failed to create template: $ErrorMessage" + Write-Information $_.InvocationInfo.PositionMessage + + $Body = @{ + Results = @(@{ + resultText = "Failed to create template: $ErrorMessage" + state = 'error' + details = Get-CippException -Exception $_ + }) + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ($Body | ConvertTo-Json -Depth 10) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 new file mode 100644 index 000000000000..4e6f40b4b01b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 @@ -0,0 +1,50 @@ +function Invoke-AddDomain { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.tenantFilter + $DomainName = $Request.Body.domain + + # Interact with query parameters or the body of the request. + try { + if ([string]::IsNullOrWhiteSpace($DomainName)) { + throw 'Domain name is required' + } + + # Validate domain name format + if ($DomainName -notmatch '^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$') { + throw 'Invalid domain name format' + } + + Write-Information "Adding domain $DomainName to tenant $TenantFilter" + + $Body = @{ + id = $DomainName + } | ConvertTo-Json -Compress + + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter -type POST -body $Body -AsApp $true + + $Result = "Successfully added domain $DomainName to tenant $TenantFilter. Please verify the domain to complete setup." + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Added domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to add domain $DomainName`: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Failed to add domain $DomainName`: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} + diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 new file mode 100644 index 000000000000..91380834dae8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 @@ -0,0 +1,91 @@ +function Invoke-ExecDomainAction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.tenantFilter + $DomainName = $Request.Body.domain + $Action = $Request.Body.Action + + try { + if ([string]::IsNullOrWhiteSpace($DomainName)) { + throw 'Domain name is required' + } + + if ([string]::IsNullOrWhiteSpace($Action)) { + throw 'Action is required' + } + + switch ($Action) { + 'verify' { + Write-Information "Verifying domain $DomainName for tenant $TenantFilter" + + $Body = @{ + verificationDnsRecordCollection = @() + } | ConvertTo-Json -Compress + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName/verify" -tenantid $TenantFilter -type POST -body $Body -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been verified successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Verified domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + 'delete' { + Write-Information "Deleting domain $DomainName from tenant $TenantFilter" + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName" -tenantid $TenantFilter -type DELETE -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been deleted successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Deleted domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + 'setDefault' { + Write-Information "Setting domain $DomainName as default for tenant $TenantFilter" + + $Body = @{ + isDefault = $true + } | ConvertTo-Json -Compress + + $GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName" -tenantid $TenantFilter -type PATCH -body $Body -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been set as the default domain successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Set domain $DomainName as default" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + default { + throw "Invalid action: $Action" + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = @{ + resultText = "Failed to perform action on domain $DomainName`: $($ErrorMessage.NormalizedError)" + state = 'error' + } + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Failed to perform action on domain $DomainName`: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 index d766312098a5..840b2006a873 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecOffboardTenant { +function Invoke-ExecOffboardTenant { <# .FUNCTIONALITY Entrypoint @@ -84,7 +84,7 @@ Function Invoke-ExecOffboardTenant { $property = $_ $propertyContacts = $orgContacts.($($property)) - if ($propertyContacts -AND ($domains -notcontains ($propertyContacts | ForEach-Object { $_.Split('@')[1] }))) { + if ($propertyContacts -and ($domains -notcontains ($propertyContacts | ForEach-Object { $_.Split('@')[1] }))) { $newPropertyContent = [System.Collections.Generic.List[object]]($propertyContacts | Where-Object { $domains -notcontains $_.Split('@')[1] }) $patchContactBody = if (!($newPropertyContent)) { "{ `"$($property)`" : [] }" } else { [pscustomobject]@{ $property = $newPropertyContent } | ConvertTo-Json } @@ -103,6 +103,29 @@ Function Invoke-ExecOffboardTenant { # TODO Add logic for privacyProfile later - rvdwegen } + + if ($request.body.RemoveDomainAnalyserData -eq $true) { + # Remove all Domain Analyser data for this tenant + try { + $DomainTable = Get-CIPPTable -Table 'Domains' + $Filter = "TenantGUID eq '{0}'" -f $TenantId + $DomainEntries = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + + if ($DomainEntries) { + $DomainCount = ($DomainEntries | Measure-Object).Count + foreach ($Domain in $DomainEntries) { + Remove-AzDataTableEntity @DomainTable -Entity $Domain + } + $Results.Add("Successfully removed $DomainCount Domain Analyser entries") + Write-LogMessage -headers $Request.Headers -API $APIName -message "Removed $DomainCount Domain Analyser entries" -Sev 'Info' -tenant $TenantFilter + } else { + $Results.Add('No Domain Analyser data found for this tenant') + } + } catch { + $Errors.Add("Failed to remove Domain Analyser data: $($_.Exception.message)") + } + } + $VendorApps = $Request.Body.vendorApplications if ($VendorApps) { $VendorApps | ForEach-Object { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 index a42d86aabb86..c0fa299b5466 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 @@ -16,11 +16,7 @@ function Invoke-ListTenants { $TenantAccess = Test-CIPPAccess -Request $Request -TenantList Write-Host "Tenant Access: $TenantAccess" - if ($TenantAccess -notcontains 'AllTenants') { - $AllTenantSelector = $false - } else { - $AllTenantSelector = $Request.Query.AllTenantSelector - } + $AllTenantSelector = $Request.Query.AllTenantSelector $IncludeOffboardingDefaults = $Request.Query.IncludeOffboardingDefaults diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 index a18a532513d8..26fa7c3b2b19 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 @@ -11,13 +11,24 @@ function Invoke-AddCAPolicy { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - $Tenants = $Request.body.tenantFilter.value if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } $results = foreach ($Tenant in $tenants) { try { - $CAPolicy = New-CIPPCAPolicy -replacePattern $Request.Body.replacename -Overwrite $request.Body.overwrite -TenantFilter $Tenant -state $Request.Body.NewState -DisableSD $Request.Body.DisableSD -RawJSON $Request.Body.RawJSON -APIName $APIName -Headers $Headers + $NewCAPolicy = @{ + replacePattern = $Request.Body.replacename + Overwrite = $Request.Body.overwrite + TenantFilter = $Tenant + state = $Request.Body.NewState + DisableSD = $Request.Body.DisableSD + CreateGroups = $Request.Body.CreateGroups + RawJSON = $Request.Body.RawJSON + APIName = $APIName + Headers = $Headers + } + $CAPolicy = New-CIPPCAPolicy @NewCAPolicy + "$CAPolicy" } catch { "$($_.Exception.Message)" diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 index 1d3132140e29..915f64fc4244 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 @@ -18,6 +18,7 @@ function Invoke-ExecCAExclusion { $EndDate = $Request.Body.EndDate $PolicyId = $Request.Body.PolicyId $ExclusionType = $Request.Body.ExclusionType + $ExcludeLocationAuditAlerts = $Request.Body.excludeLocationAuditAlerts if ($Users) { $UserID = $Users.value @@ -28,47 +29,100 @@ function Invoke-ExecCAExclusion { } } - $Policy = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)?`$select=id,displayName" -tenantid $TenantFilter -asApp $true + $Policy = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)?`$select=id,displayName,conditions" -tenantid $TenantFilter -asApp $true if (-not $Policy) { throw "Policy with ID $PolicyId not found in tenant $TenantFilter." } + $SecurityGroups = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$select=id,displayName&`$filter=securityEnabled eq true and mailEnabled eq false&`$count=true" -tenantid $TenantFilter + $VacationGroup = $SecurityGroups | Where-Object { $_.displayName -contains "Vacation Exclusion - $($Policy.displayName)" } + + if (!$VacationGroup) { + Write-Information "Creating vacation group: Vacation Exclusion - $($Policy.displayName)" + $Guid = [guid]::NewGuid().ToString() + $GroupObject = @{ + groupType = 'generic' + displayName = "Vacation Exclusion - $($Policy.displayName)" + username = "vacation$Guid" + securityEnabled = $true + } + $NewGroup = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $TenantFilter -APIName 'Invoke-ExecCAExclusion' + $GroupId = $NewGroup.GroupId + } else { + Write-Information "Using existing vacation group: $($VacationGroup.displayName)" + $GroupId = $VacationGroup.id + } + + if ($Policy.conditions.users.excludeGroups -notcontains $GroupId) { + Set-CIPPCAExclusion -TenantFilter $TenantFilter -ExclusionType 'Add' -PolicyId $PolicyId -Groups @{ value = @($GroupId); addedFields = @{ displayName = @("Vacation Exclusion - $($Policy.displayName)") } } -Headers $Headers + } + $PolicyName = $Policy.displayName if ($Request.Body.vacation -eq 'true') { $StartDate = $Request.Body.StartDate $EndDate = $Request.Body.EndDate + # Detect if policy targets specific named locations (GUIDs) and user requested audit log exclusion + $GuidRegex = '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' + $LocationIds = @() + if ($Policy.conditions.locations.includeLocations) { $LocationIds += $Policy.conditions.locations.includeLocations } + if ($Policy.conditions.locations.excludeLocations) { $LocationIds += $Policy.conditions.locations.excludeLocations } + $PolicyHasGuidLocations = $LocationIds | Where-Object { $_ -match $GuidRegex } $Parameters = [PSCustomObject]@{ - ExclusionType = 'Add' - PolicyId = $PolicyId - } - - if ($Users) { - $Parameters | Add-Member -NotePropertyName Users -NotePropertyValue $Users - } else { - $Parameters | Add-Member -NotePropertyName UserID -NotePropertyValue $UserID + GroupType = 'Security' + GroupId = $GroupId + Member = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID } $TaskBody = [pscustomobject]@{ TenantFilter = $TenantFilter Name = "Add CA Exclusion Vacation Mode: $PolicyName" Command = @{ - value = 'Set-CIPPCAExclusion' - label = 'Set-CIPPCAExclusion' + value = 'Add-CIPPGroupMember' + label = 'Add-CIPPGroupMember' } Parameters = [pscustomobject]$Parameters ScheduledTime = $StartDate + PostExecution = $Request.Body.postExecution + Reference = $Request.Body.reference } Write-Information ($TaskBody | ConvertTo-Json -Depth 10) Add-CIPPScheduledTask -Task $TaskBody -hidden $false + # Optional: schedule audit log exclusion add task if requested and policy has location GUIDs + if ($ExcludeLocationAuditAlerts -and $PolicyHasGuidLocations) { + $AuditUsers = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + $AuditAddTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Add Audit Log Location Exclusion: $PolicyName" + Command = @{ value = 'Set-CIPPAuditLogUserExclusion'; label = 'Set-CIPPAuditLogUserExclusion' } + Parameters = [pscustomobject]@{ Users = $AuditUsers; Action = 'Add'; Type = 'Location' } + ScheduledTime = $StartDate + } + Add-CIPPScheduledTask -Task $AuditAddTask -hidden $true + } #Removal of the exclusion - $TaskBody.Parameters.ExclusionType = 'Remove' + $TaskBody.Command = @{ + label = 'Remove-CIPPGroupMember' + value = 'Remove-CIPPGroupMember' + } $TaskBody.Name = "Remove CA Exclusion Vacation Mode: $PolicyName" $TaskBody.ScheduledTime = $EndDate Add-CIPPScheduledTask -Task $TaskBody -hidden $false + if ($ExcludeLocationAuditAlerts -and $PolicyHasGuidLocations) { + $AuditUsers = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + $AuditRemoveTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Remove Audit Log Location Exclusion: $PolicyName" + Command = @{ value = 'Set-CIPPAuditLogUserExclusion'; label = 'Set-CIPPAuditLogUserExclusion' } + Parameters = [pscustomobject]@{ Users = $AuditUsers; Action = 'Remove'; Type = 'Location' } + ScheduledTime = $EndDate + Reference = $Request.Body.reference + } + Add-CIPPScheduledTask -Task $AuditRemoveTask -hidden $true + } $body = @{ Results = "Successfully added vacation mode schedule for $Username." } } else { $Parameters = @{ diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 index b167ed66cbf5..8d1010e3362f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecCAServiceExclusion { +function Invoke-ExecCAServiceExclusion { <# .FUNCTIONALITY Entrypoint @@ -17,7 +17,7 @@ Function Invoke-ExecCAServiceExclusion { try { $result = Set-CIPPCAPolicyServiceException -TenantFilter $TenantFilter -PolicyId $ID $Body = @{ Results = $result } - Write-LogMessage -headers $Headers -API 'Set-CIPPCAPolicyServiceException' -message $Message -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -headers $Headers -API 'Set-CIPPCAPolicyServiceException' -message $result -Sev 'Info' -tenant $TenantFilter } catch { $ErrorMessage = Get-CippException -Exception $_ $Body = @{ Results = "Failed to add service provider exception to policy $($ID): $($ErrorMessage.NormalizedError)" } @@ -25,7 +25,7 @@ Function Invoke-ExecCAServiceExclusion { } return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 index 6403c20af94e..5ce6a7ad6844 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 @@ -35,6 +35,8 @@ function Invoke-ListCAtemplates { $row = $_ $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $row.Source -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($row.SHA)) -Force $data } catch { Write-Warning "Failed to process CA template: $($row.RowKey) - $($_.Exception.Message)" diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 index 2e5a051df76a..98021647278a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 @@ -11,8 +11,6 @@ function Invoke-ExecGDAPInvite { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - - $Action = $Request.Body.Action ?? $Request.Query.Action ?? 'Create' $InviteId = $Request.Body.InviteId $Reference = $Request.Body.Reference @@ -23,8 +21,8 @@ function Invoke-ExecGDAPInvite { $user = $headers.'x-ms-client-principal' $Technician = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails } elseif ($Headers.'x-ms-client-principal-idp' -eq 'aad') { - $Table = Get-CIPPTable -TableName 'ApiClients' - $Client = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($headers.'x-ms-client-principal-name')'" + $ApiClientTable = Get-CIPPTable -TableName 'ApiClients' + $Client = Get-CIPPAzDataTableEntity @ApiClientTable -Filter "RowKey eq '$($headers.'x-ms-client-principal-name')'" $Technician = $Client.AppName ?? 'CIPP-API' } else { try { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 index b38676d9be0d..07018acad177 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecGDAPRoleTemplate { +function Invoke-ExecGDAPRoleTemplate { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -44,19 +44,33 @@ Function Invoke-ExecGDAPRoleTemplate { } } 'Edit' { - $RowKey = $Request.Body.TemplateId - $Template = $Templates | Where-Object -Property RowKey -EQ $RowKey + # Use OriginalTemplateId if provided (for rename), otherwise use TemplateId + $OriginalRowKey = $Request.Body.OriginalTemplateId ?? $Request.Body.TemplateId + $NewRowKey = $Request.Body.TemplateId + $Template = $Templates | Where-Object -Property RowKey -EQ $OriginalRowKey if ($Template) { $RoleMappings = $Request.Body.RoleMappings - Add-CIPPGDAPRoleTemplate -TemplateId $RowKey -RoleMappings $RoleMappings -Overwrite - Write-LogMessage -headers $Headers -API $APIName -message "Updated role mappings for GDAP template '$RowKey'" -Sev 'Info' - $Body = @{ - Results = "Updated role mappings for template $RowKey" + + # If the template ID is being changed, delete the old one and create a new one + if ($OriginalRowKey -ne $NewRowKey) { + Remove-AzDataTableEntity -Force @Table -Entity $Template + Add-CIPPGDAPRoleTemplate -TemplateId $NewRowKey -RoleMappings $RoleMappings -Overwrite + Write-LogMessage -headers $Headers -API $APIName -message "Renamed GDAP template from '$OriginalRowKey' to '$NewRowKey' and updated role mappings" -Sev 'Info' + $Body = @{ + Results = "Renamed template from $OriginalRowKey to $NewRowKey and updated role mappings" + } + } else { + # Just update the existing template + Add-CIPPGDAPRoleTemplate -TemplateId $NewRowKey -RoleMappings $RoleMappings -Overwrite + Write-LogMessage -headers $Headers -API $APIName -message "Updated role mappings for GDAP template '$NewRowKey'" -Sev 'Info' + $Body = @{ + Results = "Updated role mappings for template $NewRowKey" + } } } else { - Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$RowKey' not found for editing" -Sev 'Warning' + Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$OriginalRowKey' not found for editing" -Sev 'Warning' $Body = @{ - Results = "Template $RowKey not found" + Results = "Template $OriginalRowKey not found" } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 index a8312cdc0bcb..053e11c3cdb8 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 @@ -2,6 +2,8 @@ function Invoke-ListGDAPAccessAssignments { <# .FUNCTIONALITY Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.Read #> [CmdletBinding()] param($Request, $TriggerMetadata) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 index 5f5cdfcf2920..b33334241408 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ListLicenses { +function Invoke-ListLicenses { <# .FUNCTIONALITY Entrypoint @@ -9,10 +9,8 @@ Function Invoke-ListLicenses { param($Request, $TriggerMetadata) # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter - $RawGraphRequest = if ($TenantFilter -ne 'AllTenants') { + if ($TenantFilter -ne 'AllTenants') { $GraphRequest = Get-CIPPLicenseOverview -TenantFilter $TenantFilter | ForEach-Object { - $TermInfo = $_.TermInfo | ConvertFrom-Json -ErrorAction SilentlyContinue - $_.TermInfo = $TermInfo $_ } } else { @@ -38,14 +36,11 @@ Function Invoke-ListLicenses { Write-Host "Started permissions orchestration with ID = '$InstanceId'" } } else { - $GraphRequest = $Rows | Where-Object { $_.License } | ForEach-Object { - if ($_.TermInfo) { - $TermInfo = $_.TermInfo | ConvertFrom-Json -ErrorAction SilentlyContinue - $_.TermInfo = $TermInfo - } else { - $_ | Add-Member -NotePropertyName TermInfo -NotePropertyValue $null + $GraphRequest = $Rows | ForEach-Object { + $LicenseData = $_.License | ConvertFrom-Json -ErrorAction SilentlyContinue + foreach ($License in $LicenseData) { + $License } - $_ } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 index 45007535ddb5..605485f67010 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 @@ -1,7 +1,7 @@ Function Invoke-AddStandardsDeploy { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 index 49e1dcf5485b..3f38f3f73e4c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 @@ -1,7 +1,7 @@ function Invoke-AddStandardsTemplate { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 index 54fe9aa99036..81810ce00d00 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 @@ -2,9 +2,9 @@ function Invoke-CIPPStandardsRun { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE - CIPP.Standards.ReadWrite + Tenant.Standards.ReadWrite #> [CmdletBinding()] param( @@ -48,48 +48,48 @@ function Invoke-CIPPStandardsRun { } else { Write-Information 'Classic Standards Run' - $GetStandardParams = @{ + if ($Force.IsPresent) { + Write-Information 'Clearing Rerun Cache' + Test-CIPPRerun -ClearAll -TenantFilter $TenantFilter -Type 'Standard' + } + + $StandardsParams = @{ TenantFilter = $TenantFilter runManually = $runManually } - if ($TemplateID) { - $GetStandardParams['TemplateId'] = $TemplateID + $StandardsParams['TemplateId'] = $TemplateID } - $AllTasks = Get-CIPPStandards @GetStandardParams + $AllTenantsList = Get-CIPPStandards @StandardsParams | Select-Object -ExpandProperty Tenant | Sort-Object -Unique - if ($Force.IsPresent) { - Write-Information 'Clearing Rerun Cache' - Test-CIPPRerun -ClearAll -TenantFilter $TenantFilter -Type 'Standard' - } - - if ($AllTasks.Count -eq 0) { - Write-Information "No standards found for tenant $($TenantFilter)." - return + # Build batch of per-tenant list activities + $Batch = foreach ($Tenant in $AllTenantsList) { + $BatchItem = @{ + FunctionName = 'CIPPStandardsList' + TenantFilter = $Tenant + runManually = $runManually + } + if ($TemplateID) { + $BatchItem['TemplateId'] = $TemplateID + } + $BatchItem } - #For each item in our object, run the queue. - $Queue = New-CippQueueEntry -Name "Applying Standards ($TenantFilter)" -TotalTasks ($AllTasks | Measure-Object).Count + Write-Information "Built batch of $($Batch.Count) tenant standards list activities: $($Batch | ConvertTo-Json -Depth 5 -Compress)" + # Start orchestrator with distributed batch and post-exec aggregation $InputObject = [PSCustomObject]@{ - OrchestratorName = 'StandardsOrchestrator' - QueueFunction = @{ - FunctionName = 'GetStandards' - QueueId = $Queue.RowKey - StandardParams = @{ - TenantFilter = $TenantFilter - runManually = $runManually - } + OrchestratorName = 'StandardsList' + Batch = @($Batch) + PostExecution = @{ + FunctionName = 'CIPPStandardsApplyBatch' } SkipLog = $true } - if ($TemplateID) { - $InputObject.QueueFunction.StandardParams['TemplateId'] = $TemplateID - } + Write-Information "InputObject: $($InputObject | ConvertTo-Json -Depth 5 -Compress)" $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) - Write-Information "Started orchestration with ID = '$InstanceId'" - #$Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId + Write-Information "Started standards list orchestration with ID = '$InstanceId'" } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 index d027d62ed025..ff43f91dd0f0 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 @@ -1,7 +1,7 @@ function Invoke-ExecDriftClone { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 index 4d0b484c0368..1b74e88cbfb1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 @@ -1,7 +1,7 @@ function Invoke-ExecStandardConvert { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 index b600a6d876ed..63b639e3769e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 @@ -44,8 +44,15 @@ function Invoke-ExecUpdateDriftDeviation { $StandardTemplate = Get-CIPPTenantAlignment -TenantFilter $TenantFilter | Where-Object -Property standardType -EQ 'drift' if ($Setting -like '*IntuneTemplate*') { $Setting = 'IntuneTemplate' - $TemplateId = $Deviation.standardName.split('.') | Select-Object -Last 1 - $StandardTemplate = $StandardTemplate.standardSettings.IntuneTemplate | Where-Object { $_.TemplateList.value -eq $TemplateId } + $TemplateId = $Deviation.standardName.split('.') | Select-Object -Index 2 + $StandardTemplate = $StandardTemplate.standardSettings.IntuneTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $StandardTemplate + } elseif ($Setting -like '*ConditionalAccessTemplate*') { + $Setting = 'ConditionalAccessTemplate' + $TemplateId = $Deviation.standardName.split('.') | Select-Object -Index 2 + $StandardTemplate = $StandardTemplate.standardSettings.ConditionalAccessTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force $Settings = $StandardTemplate @@ -80,10 +87,15 @@ function Invoke-ExecUpdateDriftDeviation { if ($Deviation.status -eq 'deniedDelete') { $Policy = $Deviation.receivedValue | ConvertFrom-Json -ErrorAction SilentlyContinue Write-Host "Policy is $($Policy)" - $URLName = Get-CIPPURLName -Template $Policy + if ($Deviation.standardName -like '*ConditionalAccessTemplates*') { + $URLName = 'identity/conditionalAccess/policies' + } else { + $URLName = Get-CIPPURLName -Template $Policy + } + $ID = $Policy.ID if ($Policy -and $URLName) { - Write-Host "Going to delete Policy with ID $($policy.ID) Deviation Name is $($Deviation.standardName)" - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($URLName)/$($policy.id)" -type DELETE -tenant $TenantFilter + Write-Host "Going to delete Policy with ID $($Policy.ID) Deviation Name is $($Deviation.standardName)" + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($URLName)/$($ID)" -type DELETE -tenant $TenantFilter "Deleted Policy $($ID)" Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Deleted Policy with ID $($ID)" -Sev 'Info' } else { diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 index fdcb1f71aaa0..0b94eb63d919 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 @@ -11,35 +11,19 @@ function Invoke-ListStandardsCompare { $Table = Get-CIPPTable -TableName 'CippStandardsReports' $TenantFilter = $Request.Query.tenantFilter + $TemplateFilter = $Request.Query.templateId + + $Filters = [system.collections.generic.list[string]]::new() if ($TenantFilter) { - $Table.Filter = "PartitionKey eq '{0}'" -f $TenantFilter + $Filters.Add("PartitionKey eq '{0}'" -f $TenantFilter) + } + if ($TemplateFilter) { + $Filters.Add("TemplateId eq '{0}'" -f $TemplateFilter) } + $Filter = $Filters -join ' and ' $Tenants = Get-Tenants -IncludeErrors - $Standards = Get-CIPPAzDataTableEntity @Table | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } - - #in the results we have objects starting with "standards." All these have to be converted from JSON. Do not do this is its a boolean - <#$Results | ForEach-Object { - $Object = $_ - $Object.PSObject.Properties | ForEach-Object { - if ($_.Name -like 'standards_*') { - if ($_.Value -is [System.Boolean]) { - $_.Value = [bool]$_.Value - } elseif ($_.Value -like '*{*') { - $_.Value = ConvertFrom-Json -InputObject $_.Value -ErrorAction SilentlyContinue - } else { - $_.Value = [string]$_.Value - } - - $Key = $_.Name.replace('standards_', 'standards.') - $Key = $Key.replace('IntuneTemplate_', 'IntuneTemplate.') - $Key = $Key -replace '__', '-' - - $object | Add-Member -MemberType NoteProperty -Name $Key -Value $_.Value -Force - $object.PSObject.Properties.Remove($_.Name) - } - } - }#> + $Standards = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } $TenantStandards = @{} $Results = [System.Collections.Generic.List[object]]::new() @@ -69,12 +53,29 @@ function Invoke-ListStandardsCompare { $FieldValue = [string]$FieldValue } + # Parse CurrentValue and ExpectedValue from JSON if they are JSON strings + $ParsedCurrentValue = if ($Standard.CurrentValue -and (Test-Json -Json $Standard.CurrentValue -ErrorAction SilentlyContinue)) { + ConvertFrom-Json -InputObject $Standard.CurrentValue -ErrorAction SilentlyContinue + } else { + $Standard.CurrentValue + } + + $ParsedExpectedValue = if ($Standard.ExpectedValue -and (Test-Json -Json $Standard.ExpectedValue -ErrorAction SilentlyContinue)) { + ConvertFrom-Json -InputObject $Standard.ExpectedValue -ErrorAction SilentlyContinue + } else { + $Standard.ExpectedValue + } + if (-not $TenantStandards.ContainsKey($Tenant)) { $TenantStandards[$Tenant] = @{} } $TenantStandards[$Tenant][$FieldName] = @{ - Value = $FieldValue - LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + Value = $FieldValue + LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + TemplateId = $Standard.TemplateId + LicenseAvailable = $Standard.LicenseAvailable + CurrentValue = $ParsedCurrentValue + ExpectedValue = $ParsedExpectedValue } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 index 0d763fa5278b..0295956353ce 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 @@ -1,7 +1,7 @@ Function Invoke-RemoveBPATemplate { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 index f78ef874b6cd..e2b237e4ab81 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 @@ -1,7 +1,7 @@ Function Invoke-RemoveStandard { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 index d80b7251c10d..cfd69a6fe214 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 @@ -1,7 +1,7 @@ function Invoke-RemoveStandardTemplate { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.ReadWrite #> diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 index 5e688f6797eb..cd8821ae41a2 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 @@ -1,7 +1,7 @@ function Invoke-listStandardTemplates { <# .FUNCTIONALITY - Entrypoint,AnyTenant + Entrypoint .ROLE Tenant.Standards.Read #> @@ -23,6 +23,8 @@ function Invoke-listStandardTemplates { } if ($Data) { $Data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.GUID -Force + $Data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force + $Data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force if (!$Data.excludedTenants) { $Data | Add-Member -NotePropertyName 'excludedTenants' -NotePropertyValue @() -Force diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 index 308c198773cb..ffe14702ce63 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 @@ -169,11 +169,17 @@ function Invoke-ExecCommunityRepo { $MigrationTable = $Files | Where-Object { $_.name -eq 'MigrationTable' } | Select-Object -Last 1 if ($MigrationTable) { - Write-Host 'Found a migration table, getting contents' + Write-Host "Found a migration table, getting contents for $FullName" $MigrationTable = (Get-GitHubFileContents -FullName $FullName -Branch $Branch -Path $MigrationTable.path).content | ConvertFrom-Json } + + $NamedLocations = $Files | Where-Object { $_.name -match 'ALLOWED COUNTRIES' } + $LocationData = foreach ($Location in $NamedLocations) { + (Get-GitHubFileContents -FullName $FullName -Branch $Branch -Path $Location.path).content | ConvertFrom-Json + } } - Import-CommunityTemplate -Template $Content -SHA $Template.sha -MigrationTable $MigrationTable + Import-CommunityTemplate -Template $Content -SHA $Template.sha -MigrationTable $MigrationTable -LocationData $LocationData + $Results = @{ resultText = 'Template imported' state = 'success' diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 index e0869e456abd..79256990242f 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 @@ -42,7 +42,7 @@ function Invoke-ListCommunityRepos { WriteAccess = $Repo.WriteAccess DefaultBranch = $Repo.DefaultBranch UploadBranch = $Repo.DefaultBranch - Permissions = [string]($Repo.RepoPermissions | ConvertTo-Json) + Permissions = [string]($Repo.RepoPermissions | ConvertTo-Json -ErrorAction SilentlyContinue -Compress) } Add-CIPPAzDataTableEntity @Table -Entity $Entity $DefaultsMissing = $true @@ -65,7 +65,7 @@ function Invoke-ListCommunityRepos { WriteAccess = $_.WriteAccess DefaultBranch = $_.DefaultBranch UploadBranch = $_.UploadBranch ?? $_.DefaultBranch - RepoPermissions = $_.Permissions | ConvertFrom-Json + RepoPermissions = ($_.Permissions | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @{} } } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 index fd6852d65e3e..8769763e6435 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 @@ -29,12 +29,34 @@ $Table = Get-CIPPTable -TableName cacheGitHubReleaseNotes $PartitionKey = 'GitHubReleaseNotes' $Filter = "PartitionKey eq '$PartitionKey'" - $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-24) + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter try { + $Latest = $false if ($Rows) { $Releases = ConvertFrom-Json -InputObject $Rows.GitHubReleases -Depth 10 - } else { + $CurrentVersion = [semver]$global:CippVersion + $CurrentMajorMinor = "$($CurrentVersion.Major).$($CurrentVersion.Minor)" + + foreach ($Release in $Releases) { + $Version = $Release.releaseTag -replace 'v', '' + try { + $ReleaseVersion = [semver]$Version + $ReleaseMajorMinor = "$($ReleaseVersion.Major).$($ReleaseVersion.Minor)" + + # Check if we have cached notes for the current major.minor version series + if ($ReleaseMajorMinor -eq $CurrentMajorMinor) { + $Latest = $true + break + } + } catch { + # Skip invalid semver versions + continue + } + } + } + + if (-not $Latest) { $Releases = Invoke-GitHubApiRequest -Path $ReleasePath $Releases = $Releases | ForEach-Object { [ordered]@{ @@ -48,7 +70,6 @@ commitish = $_.target_commitish } } - $Results = @{ GitHubReleases = [string](ConvertTo-Json -Depth 10 -InputObject $Releases) RowKey = [string]'GitHubReleaseNotes' diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 index 7570b578f921..e3c8a7f62611 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 @@ -16,26 +16,10 @@ Function Invoke-ExecListAppId { $env:ApplicationID = $Secret.ApplicationID $env:TenantID = $Secret.TenantID } else { - Write-Information 'Connecting to Azure' - Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - try { - $Context = Get-AzContext - if ($Context.Subscription) { - #Write-Information "Current context: $($Context | ConvertTo-Json)" - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - } catch { - Write-Information "ERROR: Could not set context to subscription $SubscriptionId." - } - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] try { - $env:ApplicationID = (Get-AzKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'ApplicationID') - $env:TenantID = (Get-AzKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'TenantID') + $env:ApplicationID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'ApplicationID') + $env:TenantID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'TenantID') Write-Information "Retrieving secrets from KeyVault: $keyvaultname. The AppId is $($env:ApplicationID) and the TenantId is $($env:TenantID)" } catch { Write-Information "Retrieving secrets from KeyVault: $keyvaultname. The AppId is $($env:ApplicationID) and the TenantId is $($env:TenantID)" diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 index 44f8009edea1..a984cada9ddc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 @@ -1,7 +1,7 @@ -Function Invoke-ExecUniversalSearch { +function Invoke-ExecUniversalSearch { <# .FUNCTIONALITY - Entrypoint + Entrypoint,AnyTenant .ROLE CIPP.Core.Read #> @@ -41,8 +41,8 @@ Function Invoke-ExecUniversalSearch { $GraphRequest = "Could not connect to Azure Lighthouse API: $($ErrorMessage)" } return [HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - } + StatusCode = $StatusCode + Body = @($GraphRequest) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 index d159bd15c0cd..76fcb3767415 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 @@ -16,7 +16,9 @@ function Invoke-ListBreachesTenant { $filter = $null } try { - $usersResults = (Get-CIPPAzDataTableEntity @Table -Filter $filter).breaches | ConvertFrom-Json -ErrorAction SilentlyContinue + $Tenants = Get-Tenants -IncludeErrors + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $filter | Where-Object { $Tenants.defaultDomainName -contains $_.PartitionKey } + $usersResults = $Rows.breaches | ConvertFrom-Json -ErrorAction SilentlyContinue } catch { $usersResults = $null } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 index 4c466f565a77..95533bce6e7c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 @@ -15,20 +15,21 @@ function Invoke-ListCheckExtAlerts { $Table = Get-CIPPTable -tablename CheckExtensionAlerts if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { - $Filter = "PartitionKey eq '$TenantFilter'" + $Filter = "PartitionKey eq 'CheckAlert' and tenantFilter eq '$TenantFilter'" } else { - $Filter = $null + $Filter = "PartitionKey eq 'CheckAlert'" } try { - $Alerts = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $Tenants = Get-Tenants -IncludeErrors + $Alerts = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $Tenants.defaultDomainName -contains $_.tenantFilter }) ?? @() } catch { Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve check extension alerts: $($_.Exception.Message)" -Sev 'Error' $Alerts = @() } return [HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($Alerts | Sort-Object -Property Timestamp -Descending) - } + StatusCode = [HttpStatusCode]::OK + Body = @($Alerts | Sort-Object -Property Timestamp -Descending) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 index d881d9dffc25..45faae5f8224 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ListExtensionsConfig { +function Invoke-ListExtensionsConfig { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -9,27 +9,32 @@ Function Invoke-ListExtensionsConfig { param($Request, $TriggerMetadata) $Table = Get-CIPPTable -TableName Extensionsconfig try { - $Body = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 -ErrorAction Stop - if ($Body.HaloPSA.TicketType -and !$Body.HaloPSA.TicketType.value) { - # translate ticket type to autocomplete format - Write-Information "Ticket Type: $($Body.HaloPSA.TicketType)" - $Types = Get-HaloTicketType - $Type = $Types | Where-Object { $_.id -eq $Body.HaloPSA.TicketType } - #Write-Information ($Type | ConvertTo-Json) - if ($Type) { - $Body.HaloPSA.TicketType = @{ - label = $Type.name - value = $Type.id + $Config = (Get-CIPPAzDataTableEntity @Table).config + if (Test-Json -Json $Config) { + $Body = $Config | ConvertFrom-Json -Depth 10 -ErrorAction Stop + if ($Body.HaloPSA.TicketType -and !$Body.HaloPSA.TicketType.value) { + # translate ticket type to autocomplete format + Write-Information "Ticket Type: $($Body.HaloPSA.TicketType)" + $Types = Get-HaloTicketType + $Type = $Types | Where-Object { $_.id -eq $Body.HaloPSA.TicketType } + #Write-Information ($Type | ConvertTo-Json) + if ($Type) { + $Body.HaloPSA.TicketType = @{ + label = $Type.name + value = $Type.id + } } } + } else { + $Body = @{} } } catch { Write-Information (Get-CippException -Exception $_ | ConvertTo-Json) $Body = @{} } return [HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - } + StatusCode = [HttpStatusCode]::OK + Body = $body + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 index 7a0d704fe7ed..da83bee09207 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 @@ -36,7 +36,7 @@ function Invoke-ListFunctionParameters { $Functions = Get-Command @CommandQuery | Where-Object { $_.Visibility -eq 'Public' } } $Results = foreach ($Function in $Functions) { - if ($Function -In $TemporaryBlacklist) { continue } + if ($Function -in $TemporaryBlacklist) { continue } $GetHelp = @{ Name = $Function } @@ -72,8 +72,8 @@ function Invoke-ListFunctionParameters { $StatusCode = [HttpStatusCode]::BadRequest } return [HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($Results) - } + StatusCode = $StatusCode + Body = @($Results) + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 index f76d58c42139..dd504b9700e7 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 @@ -9,6 +9,9 @@ function Invoke-ListLogs { param($Request, $TriggerMetadata) $Table = Get-CIPPTable + $TemplatesTable = Get-CIPPTable -tablename 'templates' + $Templates = Get-CIPPAzDataTableEntity @TemplatesTable + $ReturnedLog = if ($Request.Query.ListLogs) { Get-AzDataTableEntity @Table -Property PartitionKey | Sort-Object -Unique PartitionKey | Select-Object PartitionKey | ForEach-Object { @{ @@ -30,6 +33,28 @@ function Invoke-ListLogs { } if ($AllowedTenants -contains 'AllTenants' -or ($AllowedTenants -notcontains 'AllTenants' -and ($TenantList.defaultDomainName -contains $Row.Tenant -or $Row.Tenant -eq 'CIPP' -or $TenantList.customerId -contains $Row.TenantId)) ) { + + if ($Row.StandardTemplateId) { + $Standard = ($Templates | Where-Object { $_.RowKey -eq $Row.StandardTemplateId }).JSON | ConvertFrom-Json + + $StandardInfo = @{ + Template = $Standard.templateName + Standard = $Row.Standard + } + + if ($Row.IntuneTemplateId) { + $IntuneTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.IntuneTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.IntunePolicy = $IntuneTemplate.displayName + } + if ($Row.ConditionalAccessTemplateId) { + $ConditionalAccessTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.ConditionalAccessTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.ConditionalAccessPolicy = $ConditionalAccessTemplate.displayName + } + + } else { + $StandardInfo = @{} + } + $LogData = if ($Row.LogData -and (Test-Json -Json $Row.LogData -ErrorAction SilentlyContinue)) { $Row.LogData | ConvertFrom-Json } else { $Row.LogData } @@ -49,6 +74,7 @@ function Invoke-ListLogs { AppId = $Row.AppId IP = $Row.IP RowKey = $Row.RowKey + Standard = $StandardInfo } } } @@ -59,17 +85,15 @@ function Invoke-ListLogs { $username = $Request.Query.User ?? '*' $TenantFilter = $Request.Query.Tenant $ApiFilter = $Request.Query.API + $StandardFilter = $Request.Query.StandardTemplateId + $ScheduledTaskFilter = $Request.Query.ScheduledTaskId $StartDate = $Request.Query.StartDate ?? $Request.Query.DateFilter $EndDate = $Request.Query.EndDate ?? $Request.Query.DateFilter if ($StartDate -and $EndDate) { - # Collect logs for each partition key date in range - $PartitionKeys = for ($Date = [datetime]::ParseExact($StartDate, 'yyyyMMdd', $null); $Date -le [datetime]::ParseExact($EndDate, 'yyyyMMdd', $null); $Date = $Date.AddDays(1)) { - $PartitionKey = $Date.ToString('yyyyMMdd') - "PartitionKey eq '$PartitionKey'" - } - $Filter = $PartitionKeys -join ' or ' + # Collect logs for date range + $Filter = "PartitionKey ge '$StartDate' and PartitionKey le '$EndDate'" } elseif ($StartDate) { $Filter = "PartitionKey eq '{0}'" -f $StartDate } else { @@ -88,8 +112,10 @@ function Invoke-ListLogs { $Rows = Get-AzDataTableEntity @Table -Filter $Filter | Where-Object { $_.Severity -in $LogLevel -and $_.Username -like $username -and - ($TenantFilter -eq $null -or $TenantFilter -eq 'AllTenants' -or $_.Tenant -like "*$TenantFilter*" -or $_.TenantID -eq $TenantFilter) -and - ($ApiFilter -eq $null -or $_.API -match "$ApiFilter") + ([string]::IsNullOrEmpty($TenantFilter) -or $TenantFilter -eq 'AllTenants' -or $_.Tenant -like "*$TenantFilter*" -or $_.TenantID -eq $TenantFilter) -and + ([string]::IsNullOrEmpty($ApiFilter) -or $_.API -match "$ApiFilter") -and + ([string]::IsNullOrEmpty($StandardFilter) -or $_.StandardTemplateId -eq $StandardFilter) -and + ([string]::IsNullOrEmpty($ScheduledTaskFilter) -or $_.ScheduledTaskId -eq $ScheduledTaskFilter) } if ($AllowedTenants -notcontains 'AllTenants') { @@ -98,26 +124,46 @@ function Invoke-ListLogs { foreach ($Row in $Rows) { if ($AllowedTenants -contains 'AllTenants' -or ($AllowedTenants -notcontains 'AllTenants' -and ($TenantList.defaultDomainName -contains $Row.Tenant -or $Row.Tenant -eq 'CIPP' -or $TenantList.customerId -contains $Row.TenantId)) ) { + if ($StandardTaskFilter -and $Row.StandardTemplateId) { + $Standard = ($Templates | Where-Object { $_.RowKey -eq $Row.StandardTemplateId }).JSON | ConvertFrom-Json + + $StandardInfo = @{ + Template = $Standard.templateName + Standard = $Row.Standard + } + + if ($Row.IntuneTemplateId) { + $IntuneTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.IntuneTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.IntunePolicy = $IntuneTemplate.displayName + } + if ($Row.ConditionalAccessTemplateId) { + $ConditionalAccessTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.ConditionalAccessTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.ConditionalAccessPolicy = $ConditionalAccessTemplate.displayName + } + } else { + $StandardInfo = @{} + } $LogData = if ($Row.LogData -and (Test-Json -Json $Row.LogData -ErrorAction SilentlyContinue)) { $Row.LogData | ConvertFrom-Json } else { $Row.LogData } [PSCustomObject]@{ - DateTime = $Row.Timestamp - Tenant = $Row.Tenant - API = $Row.API - Message = $Row.Message - User = $Row.Username - Severity = $Row.Severity - LogData = $LogData - TenantID = if ($Row.TenantID -ne $null) { + DateTime = $Row.Timestamp + Tenant = $Row.Tenant + API = $Row.API + Message = $Row.Message + User = $Row.Username + Severity = $Row.Severity + LogData = $LogData + TenantID = if ($Row.TenantID -ne $null) { $Row.TenantID } else { 'None' } - AppId = $Row.AppId - IP = $Row.IP - RowKey = $Row.RowKey + AppId = $Row.AppId + IP = $Row.IP + RowKey = $Row.RowKey + StandardInfo = $StandardInfo } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 index cbc46fd9e518..04c1e2c9153a 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ListRoles { +function Invoke-ListRoles { <# .FUNCTIONALITY Entrypoint @@ -9,23 +9,34 @@ Function Invoke-ListRoles { param($Request, $TriggerMetadata) # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter - $SelectList = 'id', 'displayName', 'userPrincipalName' - [System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter - $GraphRequest = foreach ($Role in $Roles) { - - #[System.Collections.Generic.List[PSCustomObject]]$Members = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles/$($Role.id)/members?`$select=$($SelectList -join ',')" -tenantid $TenantFilter | Select-Object $SelectList - $Members = if ($Role.members) { $role.members | ForEach-Object { " $($_.displayName) ($($_.userPrincipalName))" } } else { 'none' } - [PSCustomObject]@{ - DisplayName = $Role.displayName - Description = $Role.description - Members = $Members -join ',' + try { + [System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter + $GraphRequest = foreach ($Role in $Roles) { + $Members = if ($Role.members) { + $Role.members | ForEach-Object { [PSCustomObject]@{ + displayName = $_.displayName + userPrincipalName = $_.userPrincipalName + id = $_.id + } } + } + [PSCustomObject]@{ + Id = $Role.id + roleTemplateId = $Role.roleTemplateId + DisplayName = $Role.displayName + Description = $Role.description + Members = @($Members) + } } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to list roles for tenant $TenantFilter. $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest } return [HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $GraphRequest - } - + StatusCode = $StatusCode + Body = $GraphRequest + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 index dd03ae0af352..5aa10ac22f33 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 @@ -55,6 +55,8 @@ function Invoke-ListTenantAllowBlockList { Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null $Results = @() } else { + $TenantList = Get-Tenants -IncludeErrors + $Rows = $Rows | Where-Object { $TenantList.defaultDomainName -contains $_.Tenant } $Metadata = [PSCustomObject]@{ QueueId = $RunningQueue.RowKey ?? $null } diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 new file mode 100644 index 000000000000..5abd101abc09 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 @@ -0,0 +1,42 @@ +function Invoke-ListUsersAndGroups { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.TenantFilter + $select = 'id,displayName,userPrincipalName' + + try { + # Build batch requests for users and groups + $BulkRequests = @( + @{ + id = 'users' + method = 'GET' + url = "users?`$select=$select&`$top=999&" + } + @{ + id = 'groups' + method = 'GET' + url = "groups?`$select=id,displayName&`$top=999" + } + ) + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + $Users = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value | Select-Object *, @{Name = '@odata.type'; Expression = { '#microsoft.graph.user' } } + $Groups = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value | Select-Object id, displayName, @{Name = 'userPrincipalName'; Expression = { $null } }, @{Name = '@odata.type'; Expression = { '#microsoft.graph.group' } } + $GraphRequest = @($Users) + @($Groups) | Sort-Object displayName + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 index 015b0da0ae5d..5d9375cba697 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 @@ -20,7 +20,7 @@ function Invoke-PublicPhishingCheck { $ID = (New-Guid).GUID $TableBody = @{ RowKey = "$ID" - PartitionKey = [string]$Tenant.defaultDomainName + PartitionKey = 'CheckAlert' tenantFilter = [string]$Tenant.defaultDomainName message = [string]$Message type = [string]$request.body.type @@ -39,7 +39,7 @@ function Invoke-PublicPhishingCheck { } return [HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = 'OK' - } + StatusCode = [HttpStatusCode]::OK + Body = 'OK' + } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 new file mode 100644 index 000000000000..f11d8f9396a3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 @@ -0,0 +1,91 @@ +function Start-AuditLogIngestion { + <# + .SYNOPSIS + Start the Audit Log Ingestion Orchestrator using Office 365 Management Activity API + + .DESCRIPTION + Orchestrator that creates batches of tenants to ingest audit logs from the Office 365 Management Activity API. + Each tenant is processed by Push-AuditLogIngestion activity function. + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + try { + Write-Information 'Office 365 Management Activity API: Starting audit log ingestion orchestrator' + # Get webhook rules to determine which tenants to monitor + $WebhookRulesTable = Get-CippTable -TableName 'WebhookRules' + $WebhookRules = Get-CIPPAzDataTableEntity @WebhookRulesTable -Filter "PartitionKey eq 'Webhookv2'" + if (($WebhookRules | Measure-Object).Count -eq 0) { + Write-Information 'No webhook rules defined, skipping audit log ingestion' + return + } + + # Process webhook rules to get tenant list + $ConfigEntries = $WebhookRules | ForEach-Object { + $ConfigEntry = $_ + if (!$ConfigEntry.excludedTenants) { + $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force + } else { + $ConfigEntry.excludedTenants = $ConfigEntry.excludedTenants | ConvertFrom-Json + } + $ConfigEntry.Tenants = $ConfigEntry.Tenants | ConvertFrom-Json + $ConfigEntry + } + + $TenantList = Get-Tenants -IncludeErrors + $TenantsToProcess = [System.Collections.Generic.List[object]]::new() + + foreach ($Tenant in $TenantList) { + # Check if tenant has any webhook rules and collect content types + $TenantInConfig = $false + $MatchingConfigs = [System.Collections.Generic.List[object]]::new() + + foreach ($ConfigEntry in $ConfigEntries) { + if ($ConfigEntry.excludedTenants.value -contains $Tenant.defaultDomainName) { + continue + } + $TenantsList = Expand-CIPPTenantGroups -TenantFilter ($ConfigEntry.Tenants) + if ($TenantsList.value -contains $Tenant.defaultDomainName -or $TenantsList.value -contains 'AllTenants') { + $TenantInConfig = $true + $MatchingConfigs.Add($ConfigEntry) + } + } + + if ($TenantInConfig -and $MatchingConfigs.Count -gt 0) { + # Extract unique content types from webhook rules (e.g., Audit.Exchange, Audit.SharePoint) + $ContentTypes = @($MatchingConfigs | Select-Object -Property type | Where-Object { $_.type } | Sort-Object -Property type -Unique | ForEach-Object { $_.type }) + + if ($ContentTypes.Count -gt 0) { + $TenantsToProcess.Add([PSCustomObject]@{ + defaultDomainName = $Tenant.defaultDomainName + customerId = $Tenant.customerId + ContentTypes = $ContentTypes + }) + } + } + } if ($TenantsToProcess.Count -eq 0) { + Write-Information 'No tenants configured for audit log ingestion' + return + } + + Write-Information "Audit Log Ingestion: Processing $($TenantsToProcess.Count) tenants" + + if ($PSCmdlet.ShouldProcess('Start-AuditLogIngestion', 'Starting Audit Log Ingestion')) { + $Queue = New-CippQueueEntry -Name 'Audit Logs Ingestion' -Reference 'AuditLogsIngestion' -TotalTasks $TenantsToProcess.Count + $Batch = $TenantsToProcess | Select-Object @{Name = 'TenantFilter'; Expression = { $_.defaultDomainName } }, @{Name = 'TenantId'; Expression = { $_.customerId } }, @{Name = 'ContentTypes'; Expression = { $_.ContentTypes } }, @{Name = 'QueueId'; Expression = { $Queue.RowKey } }, @{Name = 'FunctionName'; Expression = { 'AuditLogIngestion' } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'AuditLogsIngestion' + Batch = @($Batch) + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started audit log ingestion orchestration for $($TenantsToProcess.Count) tenants" + } + } catch { + Write-LogMessage -API 'AuditLogIngestion' -message 'Error in audit log ingestion orchestrator' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information "Audit log ingestion orchestrator error: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 index 3971a7d3e728..2a1427d33028 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 @@ -28,9 +28,9 @@ function Start-AuditLogProcessingOrchestrator { $ProcessBatch = foreach ($TenantGroup in $TenantGroups) { $TenantFilter = $TenantGroup.Name $RowIds = @($TenantGroup.Group.RowKey) - for ($i = 0; $i -lt $RowIds.Count; $i += 1000) { - Write-Host "Processing $TenantFilter with $($RowIds.Count) row IDs. We're processing id $($RowIds[$i]) to $($RowIds[[Math]::Min($i + 999, $RowIds.Count - 1)])" - $BatchRowIds = $RowIds[$i..([Math]::Min($i + 999, $RowIds.Count - 1))] + for ($i = 0; $i -lt $RowIds.Count; $i += 500) { + Write-Host "Processing $TenantFilter with $($RowIds.Count) row IDs. We're processing id $($RowIds[$i]) to $($RowIds[[Math]::Min($i + 499, $RowIds.Count - 1)])" + $BatchRowIds = $RowIds[$i..([Math]::Min($i + 499, $RowIds.Count - 1))] [PSCustomObject]@{ TenantFilter = $TenantFilter RowIds = $BatchRowIds diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 index f21b4592acd8..c1ae93dd22a1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 @@ -29,7 +29,7 @@ function Start-AuditLogSearchCreation { Write-Information 'Audit Logs: Creating new searches' - foreach ($Tenant in $TenantList) { + $Batch = foreach ($Tenant in $TenantList) { Write-Information "Processing tenant $($Tenant.defaultDomainName) - $($Tenant.customerId)" $TenantInConfig = $false $MatchingConfigs = [System.Collections.Generic.List[object]]::new() @@ -50,64 +50,27 @@ function Start-AuditLogSearchCreation { } if ($MatchingConfigs) { - $ServiceFilters = $MatchingConfigs | Select-Object -Property type | Sort-Object -Property type -Unique | ForEach-Object { $_.type.split('.')[1] } - try { - $LogSearch = @{ - StartTime = $StartTime - EndTime = $EndTime - ServiceFilters = $ServiceFilters - TenantFilter = $Tenant.defaultDomainName - ProcessLogs = $true - RecordTypeFilters = @( - 'exchangeAdmin', 'azureActiveDirectory', 'azureActiveDirectoryAccountLogon', 'dataCenterSecurityCmdlet', - 'complianceDLPSharePoint', 'complianceDLPExchange', 'azureActiveDirectoryStsLogon', 'skypeForBusinessPSTNUsage', - 'skypeForBusinessUsersBlocked', 'securityComplianceCenterEOPCmdlet', 'microsoftFlow', 'aeD', 'microsoftStream', - 'threatFinder', 'project', 'dataGovernance', 'securityComplianceAlerts', 'threatIntelligenceUrl', - 'securityComplianceInsights', 'mipLabel', 'workplaceAnalytics', 'powerAppsApp', 'powerAppsPlan', - 'threatIntelligenceAtpContent', 'labelContentExplorer', 'hygieneEvent', - 'dataInsightsRestApiAudit', 'informationBarrierPolicyApplication', 'microsoftTeamsAdmin', 'hrSignal', - 'informationWorkerProtection', 'campaign', 'dlpEndpoint', 'airInvestigation', 'quarantine', 'microsoftForms', - 'applicationAudit', 'complianceSupervisionExchange', 'customerKeyServiceEncryption', 'officeNative', - 'mipAutoLabelSharePointItem', 'mipAutoLabelSharePointPolicyLocation', 'secureScore', - 'mipAutoLabelExchangeItem', 'cortanaBriefing', 'search', 'wdatpAlerts', 'powerPlatformAdminDlp', - 'powerPlatformAdminEnvironment', 'mdatpAudit', 'sensitivityLabelPolicyMatch', 'sensitivityLabelAction', - 'sensitivityLabeledFileAction', 'attackSim', 'airManualInvestigation', 'securityComplianceRBAC', 'userTraining', - 'airAdminActionInvestigation', 'mstic', 'physicalBadgingSignal', 'aipDiscover', 'aipSensitivityLabelAction', - 'aipProtectionAction', 'aipFileDeleted', 'aipHeartBeat', 'mcasAlerts', 'onPremisesFileShareScannerDlp', - 'onPremisesSharePointScannerDlp', 'exchangeSearch', 'privacyDataMinimization', 'labelAnalyticsAggregate', - 'myAnalyticsSettings', 'securityComplianceUserChange', 'complianceDLPExchangeClassification', - 'complianceDLPEndpoint', 'mipExactDataMatch', 'msdeResponseActions', 'msdeGeneralSettings', 'msdeIndicatorsSettings', - 'ms365DCustomDetection', 'msdeRolesSettings', 'mapgAlerts', 'mapgPolicy', 'mapgRemediation', - 'privacyRemediationAction', 'privacyDigestEmail', 'mipAutoLabelSimulationProgress', 'mipAutoLabelSimulationCompletion', - 'mipAutoLabelProgressFeedback', 'dlpSensitiveInformationType', 'mipAutoLabelSimulationStatistics', - 'largeContentMetadata', 'microsoft365Group', 'cdpMlInferencingResult', 'filteringMailMetadata', - 'cdpClassificationMailItem', 'cdpClassificationDocument', 'officeScriptsRunAction', 'filteringPostMailDeliveryAction', - 'cdpUnifiedFeedback', 'tenantAllowBlockList', 'consumptionResource', 'healthcareSignal', 'dlpImportResult', - 'cdpCompliancePolicyExecution', 'multiStageDisposition', 'privacyDataMatch', 'filteringDocMetadata', - 'filteringEmailFeatures', 'powerBIDlp', 'filteringUrlInfo', 'filteringAttachmentInfo', 'coreReportingSettings', - 'complianceConnector', 'powerPlatformLockboxResourceAccessRequest', 'powerPlatformLockboxResourceCommand', - 'cdpPredictiveCodingLabel', 'cdpCompliancePolicyUserFeedback', 'webpageActivityEndpoint', 'omePortal', - 'cmImprovementActionChange', 'filteringUrlClick', 'mipLabelAnalyticsAuditRecord', 'filteringEntityEvent', - 'filteringRuleHits', 'filteringMailSubmission', 'labelExplorer', 'microsoftManagedServicePlatform', - 'powerPlatformServiceActivity', 'scorePlatformGenericAuditRecord', 'filteringTimeTravelDocMetadata', 'alert', - 'alertStatus', 'alertIncident', 'incidentStatus', 'case', 'caseInvestigation', 'recordsManagement', - 'privacyRemediation', 'dataShareOperation', 'cdpDlpSensitive', 'ehrConnector', 'filteringMailGradingResult', - 'microsoftTodoAudit', 'timeTravelFilteringDocMetadata', 'microsoftDefenderForIdentityAudit', - 'supervisoryReviewDayXInsight', 'defenderExpertsforXDRAdmin', 'cdpEdgeBlockedMessage', 'hostedRpa', - 'cdpContentExplorerAggregateRecord', 'cdpHygieneAttachmentInfo', 'cdpHygieneSummary', 'cdpPostMailDeliveryAction', - 'cdpEmailFeatures', 'cdpHygieneUrlInfo', 'cdpUrlClick', 'cdpPackageManagerHygieneEvent', 'filteringDocScan', - 'timeTravelFilteringDocScan', 'mapgOnboard' - ) - } - if ($PSCmdlet.ShouldProcess('Start-AuditLogSearchCreation', 'Creating Audit Log Search')) { - $NewSearch = New-CippAuditLogSearch @LogSearch - Write-Information "Created audit log search $($Tenant.defaultDomainName) - $($NewSearch.displayName)" - } - } catch { - Write-Information "Error creating audit log search $($Tenant.defaultDomainName) - $($_.Exception.Message)" + [PSCustomObject]@{ + FunctionName = 'AuditLogSearchCreation' + Tenant = $Tenant | Select-Object defaultDomainName, customerId, displayName + StartTime = $StartTime + EndTime = $EndTime + ServiceFilters = @($MatchingConfigs | Select-Object -Property type | Sort-Object -Property type -Unique | ForEach-Object { $_.type.split('.')[1] }) } } } + + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = 'AuditLogSearchCreation' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started Audit Log search creation orchestratorwith $($Batch.Count) tenants" + } else { + Write-Information 'No tenants found for Audit Log search creation' + } } catch { Write-LogMessage -API 'Audit Logs' -message 'Error creating audit log searches' -sev Error -LogData (Get-CippException -Exception $_) Write-Information ( 'Audit logs error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 new file mode 100644 index 000000000000..e6dc730a762c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 @@ -0,0 +1,50 @@ +function Start-CIPPDBCacheOrchestrator { + <# + .SYNOPSIS + Orchestrates database cache collection across all tenants + + .DESCRIPTION + Creates per-tenant jobs to collect and cache Microsoft Graph data + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param() + + try { + Write-LogMessage -API 'CIPPDBCache' -message 'Starting database cache orchestration' -sev Info + Write-Host 'Starting database cache orchestration' + $TenantList = Get-Tenants | Where-Object { $_.defaultDomainName -ne $null } + + if ($TenantList.Count -eq 0) { + Write-LogMessage -API 'CIPPDBCache' -message 'No tenants found for cache collection' -sev Warning + return + } + + $Queue = New-CippQueueEntry -Name 'Database Cache Collection' -TotalTasks $TenantList.Count + $Batch = foreach ($Tenant in $TenantList) { + [PSCustomObject]@{ + FunctionName = 'CIPPDBCacheData' + TenantFilter = $Tenant.defaultDomainName + QueueId = $Queue.RowKey + QueueName = "DB Cache - $($Tenant.defaultDomainName)" + } + } + Write-Host "Created queue $($Queue.RowKey) for database cache collection of $($TenantList.Count) tenants" + Write-Host "Starting batch of $($Batch.Count) cache collection activities" + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = 'CIPPDBCacheOrchestrator' + SkipLog = $false + } + + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + + Write-LogMessage -API 'CIPPDBCache' -message "Queued database cache collection for $($TenantList.Count) tenants" -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -message "Failed to start orchestration: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 index 9d6fa6a119b7..65773f8b0652 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 @@ -9,8 +9,12 @@ function Start-ExtensionOrchestrator { param() $Table = Get-CIPPTable -TableName Extensionsconfig - - $Configuration = ((Get-AzDataTableEntity @Table).config | ConvertFrom-Json) + $ExtensionConfig = (Get-AzDataTableEntity @Table).config + if ($ExtensionConfig -and (Test-Json -Json $ExtensionConfig)) { + $Configuration = ($ExtensionConfig | ConvertFrom-Json) + } else { + $Configuration = @{} + } Write-Host 'Started Scheduler for Extensions' diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 new file mode 100644 index 000000000000..da22c521107e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 @@ -0,0 +1,16 @@ +function Start-TestsOrchestrator { + <# + .SYNOPSIS + Start the Tests Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if ($PSCmdlet.ShouldProcess('Start-TestsOrchestrator', 'Starting Tests Orchestrator')) { + Write-LogMessage -API 'Tests' -message 'Starting Tests Schedule' -sev Info + Invoke-CIPPTestsRun -TenantFilter 'allTenants' + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 index d635141637dc..272c78ee2627 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 @@ -10,8 +10,11 @@ function Start-UserTasksOrchestrator { param() $Table = Get-CippTable -tablename 'ScheduledTasks' - $1HourAgo = (Get-Date).AddHours(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') - $Filter = "PartitionKey eq 'ScheduledTask' and (TaskState eq 'Planned' or TaskState eq 'Failed - Planned' or (TaskState eq 'Running' and Timestamp lt datetime'$1HourAgo'))" + $30MinutesAgo = (Get-Date).AddMinutes(-30).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $4HoursAgo = (Get-Date).AddHours(-4).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + # Pending = orchestrator queued, Running = actively executing + # Pick up: Planned, Failed-Planned, stuck Pending (>30min), or stuck Running (>4hr for large AllTenants tasks) + $Filter = "PartitionKey eq 'ScheduledTask' and (TaskState eq 'Planned' or TaskState eq 'Failed - Planned' or (TaskState eq 'Pending' and Timestamp lt datetime'$30MinutesAgo') or (TaskState eq 'Running' and Timestamp lt datetime'$4HoursAgo'))" $tasks = Get-CIPPAzDataTableEntity @Table -Filter $Filter $RateLimitTable = Get-CIPPTable -tablename 'SchedulerRateLimits' @@ -49,11 +52,14 @@ function Start-UserTasksOrchestrator { $currentUnixTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds if ($currentUnixTime -ge $task.ScheduledTime) { try { + # Update task state to 'Pending' immediately to prevent concurrent orchestrator runs from picking it up + # 'Pending' = orchestrator has picked it up and is queuing commands + # 'Running' = actual execution is happening (set by Push-ExecScheduledCommand) $null = Update-AzDataTableEntity -Force @Table -Entity @{ PartitionKey = $task.PartitionKey RowKey = $task.RowKey ExecutedTime = "$currentUnixTime" - TaskState = 'Planned' + TaskState = 'Pending' } $task.Parameters = $task.Parameters | ConvertFrom-Json -AsHashtable $task.AdditionalProperties = $task.AdditionalProperties | ConvertFrom-Json diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 new file mode 100644 index 000000000000..ed00a0292aa1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 @@ -0,0 +1,164 @@ +function Start-BackupRetentionCleanup { + <# + .SYNOPSIS + Start the Backup Retention Cleanup Timer + .DESCRIPTION + This function cleans up old CIPP and Tenant backups based on the retention policy + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + try { + # Get retention settings + $ConfigTable = Get-CippTable -tablename Config + $Filter = "PartitionKey eq 'BackupRetention' and RowKey eq 'Settings'" + $RetentionSettings = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + # Default to 30 days if not set + $RetentionDays = if ($RetentionSettings.RetentionDays) { + [int]$RetentionSettings.RetentionDays + } else { + 30 + } + + # Ensure minimum retention of 7 days + if ($RetentionDays -lt 7) { + $RetentionDays = 7 + } + + Write-Host "Starting backup cleanup with retention of $RetentionDays days" + + # Calculate cutoff date + $CutoffDate = (Get-Date).AddDays(-$RetentionDays).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + + $DeletedCounts = [System.Collections.Generic.List[int]]::new() + + # Clean up CIPP Backups + if ($PSCmdlet.ShouldProcess('CIPPBackup', 'Cleaning up old backups')) { + $CIPPBackupTable = Get-CippTable -tablename 'CIPPBackup' + $CutoffFilter = "PartitionKey eq 'CIPPBackup' and Timestamp lt datetime'$CutoffDate'" + + # Delete blob files + $BlobFilter = "$CutoffFilter and BackupIsBlob eq true" + $BlobBackups = Get-AzDataTableEntity @CIPPBackupTable -Filter $BlobFilter -Property @('PartitionKey', 'RowKey', 'Backup') + + $BlobDeletedCount = 0 + if ($BlobBackups) { + foreach ($Backup in $BlobBackups) { + if ($Backup.Backup) { + try { + $BlobPath = $Backup.Backup + # Extract container/blob path from URL + if ($BlobPath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $BlobPath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $BlobPath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($BlobPath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $BlobPath = ($BlobPath -split '.blob.core.windows.net/', 2)[-1] + } + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $BlobPath -Method 'DELETE' -ConnectionString $ConnectionString + $BlobDeletedCount++ + Write-Host "Deleted blob: $BlobPath" + } catch { + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to delete blob $($Backup.Backup): $($_.Exception.Message)" -Sev 'Warning' + } + } + } + # Delete blob table entities + Remove-AzDataTableEntity @CIPPBackupTable -Entity $BlobBackups -Force + } + + # Delete table-only backups (no blobs) + # Fetch all old entries and filter out blob entries client-side (null check is unreliable in filters) + $AllOldBackups = Get-AzDataTableEntity @CIPPBackupTable -Filter $CutoffFilter -Property @('PartitionKey', 'RowKey', 'ETag', 'BackupIsBlob') + $TableBackups = $AllOldBackups | Where-Object { $_.BackupIsBlob -ne $true } + + $TableDeletedCount = 0 + if ($TableBackups) { + Remove-AzDataTableEntity @CIPPBackupTable -Entity $TableBackups -Force + $TableDeletedCount = ($TableBackups | Measure-Object).Count + } + + $TotalDeleted = $BlobDeletedCount + $TableDeletedCount + if ($TotalDeleted -gt 0) { + $DeletedCounts.Add($TotalDeleted) + Write-LogMessage -API 'BackupRetentionCleanup' -message "Deleted $TotalDeleted old CIPP backups ($BlobDeletedCount blobs, $TableDeletedCount table entries)" -Sev 'Info' + Write-Host "Deleted $TotalDeleted old CIPP backups" + } else { + Write-Host 'No old CIPP backups found' + } + } + + # Clean up Scheduled/Tenant Backups + if ($PSCmdlet.ShouldProcess('ScheduledBackup', 'Cleaning up old backups')) { + $ScheduledBackupTable = Get-CippTable -tablename 'ScheduledBackup' + $CutoffFilter = "PartitionKey eq 'ScheduledBackup' and Timestamp lt datetime'$CutoffDate'" + + # Delete blob files + $BlobFilter = "$CutoffFilter and BackupIsBlob eq true" + $BlobBackups = Get-AzDataTableEntity @ScheduledBackupTable -Filter $BlobFilter -Property @('PartitionKey', 'RowKey', 'Backup') + + $BlobDeletedCount = 0 + if ($BlobBackups) { + foreach ($Backup in $BlobBackups) { + if ($Backup.Backup) { + try { + $BlobPath = $Backup.Backup + # Extract container/blob path from URL + if ($BlobPath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $BlobPath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $BlobPath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($BlobPath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $BlobPath = ($BlobPath -split '.blob.core.windows.net/', 2)[-1] + } + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $BlobPath -Method 'DELETE' -ConnectionString $ConnectionString + $BlobDeletedCount++ + Write-Host "Deleted blob: $BlobPath" + } catch { + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to delete blob $($Backup.Backup): $($_.Exception.Message)" -Sev 'Warning' + } + } + } + # Delete blob table entities + Remove-AzDataTableEntity @ScheduledBackupTable -Entity $BlobBackups -Force + } + + # Delete table-only backups (no blobs) + # Fetch all old entries and filter out blob entries client-side (null check is unreliable in filters) + $AllOldBackups = Get-AzDataTableEntity @ScheduledBackupTable -Filter $CutoffFilter -Property @('PartitionKey', 'RowKey', 'ETag', 'BackupIsBlob') + $TableBackups = $AllOldBackups | Where-Object { $_.BackupIsBlob -ne $true } + + $TableDeletedCount = 0 + if ($TableBackups) { + Remove-AzDataTableEntity @ScheduledBackupTable -Entity $TableBackups -Force + $TableDeletedCount = ($TableBackups | Measure-Object).Count + } + + $TotalDeleted = $BlobDeletedCount + $TableDeletedCount + if ($TotalDeleted -gt 0) { + $DeletedCounts.Add($TotalDeleted) + Write-LogMessage -API 'BackupRetentionCleanup' -message "Deleted $TotalDeleted old tenant backups ($BlobDeletedCount blobs, $TableDeletedCount table entries)" -Sev 'Info' + Write-Host "Deleted $TotalDeleted old tenant backups" + } else { + Write-Host 'No old tenant backups found' + } + } + + $TotalDeleted = ($DeletedCounts | Measure-Object -Sum).Sum + Write-LogMessage -API 'BackupRetentionCleanup' -message "Backup cleanup completed. Total backups deleted: $TotalDeleted (retention: $RetentionDays days)" -Sev 'Info' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to run backup cleanup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 index 094cfe4875a5..4e34dc09f102 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 @@ -24,7 +24,29 @@ function Start-CIPPProcessorQueue { } if (Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) { try { - Invoke-Command -ScriptBlock { & $FunctionName @Parameters } + # Prepare telemetry metadata + $metadata = @{ + FunctionName = $FunctionName + TriggerType = 'ProcessorQueue' + QueueRowKey = $QueueItem.RowKey + } + + # Add parameters info if available + if ($Parameters.Count -gt 0) { + $metadata['ParameterCount'] = $Parameters.Count + # Add common parameters + if ($Parameters.Tenant) { + $metadata['Tenant'] = $Parameters.Tenant + } + if ($Parameters.TenantFilter) { + $metadata['Tenant'] = $Parameters.TenantFilter + } + } + + # Wrap function execution with telemetry + Measure-CippTask -TaskName $FunctionName -Metadata $metadata -Script { + Invoke-Command -ScriptBlock { & $FunctionName @Parameters } + } } catch { Write-Warning "Failed to run function $($FunctionName). Error: $($_.Exception.Message)" } diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 index e8d56975c448..e4060f1c0a37 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 @@ -43,7 +43,12 @@ function Start-CIPPStatsTimer { CFZTNA = $RawExt.CFZTNA.Enabled GitHub = $RawExt.GitHub.Enabled } | ConvertTo-Json - - Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + try { + Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + } catch { + $rand = Get-Random -Minimum 0.5 -Maximum 5.5 + Start-Sleep -Seconds $rand + Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + } } } diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 index 661bf5182d89..7abf8bb608f5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 @@ -19,7 +19,6 @@ function Start-DurableCleanup { ) $WarningPreference = 'SilentlyContinue' - $StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage $TargetTime = (Get-Date).ToUniversalTime().AddSeconds(-$MaxDuration) $Context = New-AzDataTableContext -ConnectionString $env:AzureWebJobsStorage $InstancesTables = Get-AzDataTable -Context $Context | Where-Object { $_ -match 'Instances' } @@ -28,33 +27,56 @@ function Start-DurableCleanup { $QueueCount = 0 $FunctionsWithLongRunningOrchestrators = [System.Collections.Generic.List[object]]::new() + $NonDeterministicOrchestrators = [System.Collections.Generic.List[object]]::new() + foreach ($Table in $InstancesTables) { $Table = Get-CippTable -TableName $Table $FunctionName = $Table.TableName -replace 'Instances', '' $Orchestrators = Get-CIPPAzDataTableEntity @Table -Filter "RuntimeStatus eq 'Running'" | Select-Object * -ExcludeProperty Input $Queues = Get-AzStorageQueue -Context $StorageContext -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount, QueueClient $LongRunningOrchestrators = $Orchestrators | Where-Object { $_.CreatedTime.DateTime -lt $TargetTime } + if ($LongRunningOrchestrators.Count -gt 0) { $FunctionsWithLongRunningOrchestrators.Add(@{'FunctionName' = $FunctionName }) + foreach ($Orchestrator in $LongRunningOrchestrators) { + $CreatedTime = [DateTime]::SpecifyKind($Orchestrator.CreatedTime.DateTime, [DateTimeKind]::Utc) + $TimeSpan = New-TimeSpan -Start $CreatedTime -End (Get-Date).ToUniversalTime() + $RunningDuration = [math]::Round($TimeSpan.TotalMinutes, 2) + Write-Information "Orchestrator: $($Orchestrator.PartitionKey), created: $CreatedTime, running for: $RunningDuration minutes" + if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { + $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" + $Orchestrator.RuntimeStatus = 'Failed' + if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { + $Orchestrator.CustomStatus = "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + } else { + $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + } + Update-AzDataTableEntity @Table -Entity $Orchestrator + $CleanupCount++ + } + } } - foreach ($Orchestrator in $LongRunningOrchestrators) { - $CreatedTime = [DateTime]::SpecifyKind($Orchestrator.CreatedTime.DateTime, [DateTimeKind]::Utc) - $TimeSpan = New-TimeSpan -Start $CreatedTime -End (Get-Date).ToUniversalTime() - $RunningDuration = [math]::Round($TimeSpan.TotalMinutes, 2) - Write-Information "Orchestrator: $($Orchestrator.PartitionKey), created: $CreatedTime, running for: $RunningDuration minutes" - if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { - $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" - $Orchestrator.RuntimeStatus = 'Failed' - if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { - $Orchestrator.CustomStatus = "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" - } else { - $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + + $NonDeterministicOrchestrators = $Orchestrators | Where-Object { $_.Output -match 'Non-Deterministic workflow detected' } + if ($NonDeterministicOrchestrators.Count -gt 0) { + $NonDeterministicOrchestrators.Add(@{'FunctionName' = $FunctionName }) + foreach ($Orchestrator in $NonDeterministicOrchestrators) { + Write-Information "Orchestrator: $($Orchestrator.PartitionKey) is Non-Deterministic" + if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { + $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" + $Orchestrator.RuntimeStatus = 'Failed' + if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { + $Orchestrator.CustomStatus = 'Terminated by Durable Cleanup - Non-Deterministic workflow detected' + } else { + $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value 'Terminated by Durable Cleanup - Non-Deterministic workflow detected' + } + Update-AzDataTableEntity @Table -Entity $Orchestrator + $CleanupCount++ } - Update-AzDataTableEntity @Table -Entity $Orchestrator - $CleanupCount++ } } - if ($LongRunningOrchestrators.Count -gt 0 -and $Queues.ApproximateMessageCount -gt 0) { + + if (($LongRunningOrchestrators.Count -gt 0 -or $NonDeterministicOrchestrators.Count -gt 0) -and $Queues.ApproximateMessageCount -gt 0) { $RunningQueues = $Queues | Where-Object { $_.ApproximateMessageCount -gt 0 } foreach ($Queue in $RunningQueues) { Write-Information "- Removing queue: $($Queue.Name), message count: $($Queue.ApproximateMessageCount)" diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 index fd8654db8907..416318bb4438 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 @@ -23,15 +23,9 @@ function Start-UpdateTokensTimer { Write-LogMessage -API 'Update Tokens' -message 'Could not update refresh token. Will try again in 7 days.' -sev 'CRITICAL' } } else { - if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - } $KV = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] if ($Refreshtoken) { - Set-AzKeyVaultSecret -VaultName $KV -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $KV -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) } else { Write-LogMessage -API 'Update Tokens' -message 'Could not update refresh token. Will try again in 7 days.' -sev 'CRITICAL' } @@ -63,7 +57,7 @@ function Start-UpdateTokensTimer { $Secret.ApplicationSecret = $AppSecret.secretText Add-AzDataTableEntity @Table -Entity $Secret -Force } else { - Set-AzKeyVaultSecret -VaultName $KV -Name 'ApplicationSecret' -SecretValue (ConvertTo-SecureString -String $AppSecret.secretText -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $KV -Name 'ApplicationSecret' -SecretValue (ConvertTo-SecureString -String $AppSecret.secretText -AsPlainText -Force) } Write-LogMessage -API 'Update Tokens' -message "New application secret generated for $AppId. Expiration date: $($AppSecret.endDateTime)." -sev 'INFO' } @@ -74,7 +68,7 @@ function Start-UpdateTokensTimer { Write-Information "Found $($ExpiredSecrets.Count) expired application secrets for $AppId. Removing them." foreach ($Secret in $ExpiredSecrets) { try { - New-GraphPostRequest -type DELETE -uri "https://graph.microsoft.com/v1.0/applications/$($PasswordCredentials.id)/removePassword" -Body "{`"keyId`":`"$($Secret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop + New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/applications/$($PasswordCredentials.id)/removePassword" -Body "{`"keyId`":`"$($Secret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop Write-Information "Removed expired application secret with keyId $($Secret.keyId)." } catch { Write-LogMessage -API 'Update Tokens' -message "Error removing expired application secret with keyId $($Secret.keyId), see Log Data for details." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) @@ -113,7 +107,7 @@ function Start-UpdateTokensTimer { } else { if ($Refreshtoken) { $name = $Tenant.customerId - Set-AzKeyVaultSecret -VaultName $KV -Name $name -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $KV -Name $name -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) } else { Write-Warning "Could not update refresh token for tenant $($Tenant.displayName) ($($Tenant.customerId))." Write-LogMessage -API 'Update Tokens' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Could not update refresh token for tenant $($Tenant.displayName). Will try again in 7 days." -sev 'CRITICAL' diff --git a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 index 364e6c9bdf85..1f080836f9aa 100644 --- a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 +++ b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 @@ -24,14 +24,14 @@ function Get-CIPPTenantAlignment { [Parameter(Mandatory = $false)] [string]$TemplateId ) + $TemplateTable = Get-CippTable -tablename 'templates' + $TemplateFilter = "PartitionKey eq 'StandardsTemplateV2'" + $TenantGroups = Get-TenantGroups try { # Get all standard templates - $TemplateTable = Get-CippTable -tablename 'templates' - $TemplateFilter = "PartitionKey eq 'StandardsTemplateV2'" - $Templates = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $TemplateFilter) | ForEach-Object { - $JSON = $_.JSON -replace '"Action":', '"action":' + $JSON = $_.JSON try { $RowKey = $_.RowKey $Data = $JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop @@ -51,19 +51,25 @@ function Get-CIPPTenantAlignment { } # Get standards comparison data - $StandardsTable = Get-CIPPTable -TableName 'CippStandardsReports' - $AllStandards = Get-CIPPAzDataTableEntity @StandardsTable -Filter "PartitionKey ne 'StandardReport' and PartitionKey ne ''" + $StandardsTable = Get-CippTable -TableName 'CippStandardsReports' + #this if statement is to bring down performance when running scheduled checks, we have to revisit this to a better query due to the extreme size this can get. + if ($TenantFilter) { + $filter = "PartitionKey eq '$TenantFilter'" + } else { + $filter = "PartitionKey ne 'StandardReport' and PartitionKey ne ''" + } + $AllStandards = Get-CIPPAzDataTableEntity @StandardsTable -Filter $filter # Filter by tenant if specified $Standards = if ($TenantFilter) { - $AllStandards | Where-Object { $_.PartitionKey -eq $TenantFilter } + $AllStandards } else { $Tenants = Get-Tenants -IncludeErrors $AllStandards | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } } - + $TagTemplates = Get-CIPPAzDataTableEntity @TemplateTable # Build tenant standards data structure - $TenantStandards = @{} + $tenantData = @{} foreach ($Standard in $Standards) { $FieldName = $Standard.RowKey $FieldValue = $Standard.Value @@ -72,28 +78,26 @@ function Get-CIPPTenantAlignment { # Process field value if ($FieldValue -is [System.Boolean]) { $FieldValue = [bool]$FieldValue - } elseif (Test-Json -Json $FieldValue -ErrorAction SilentlyContinue) { + } else { try { - $FieldValue = ConvertFrom-Json -Depth 100 -InputObject $FieldValue -ErrorAction Stop + $FieldValue = ConvertFrom-Json -Depth 5 -InputObject $FieldValue -ErrorAction Stop } catch { - Write-Warning "$($FieldName) standard report could not be loaded: $($_.Exception.Message)" - $FieldValue = [PSCustomObject]@{ - Error = "Invalid JSON format: $($_.Exception.Message)" - OriginalValue = $FieldValue - } + $FieldValue = [string]$FieldValue } - } else { - $FieldValue = [string]$FieldValue } - if (-not $TenantStandards.ContainsKey($Tenant)) { - $TenantStandards[$Tenant] = @{} + if ($Tenant -and -not $tenantData.ContainsKey($Tenant)) { + $tenantData[$Tenant] = @{} } - $TenantStandards[$Tenant][$FieldName] = @{ - Value = $FieldValue - LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $tenantData[$Tenant][$FieldName] = @{ + Value = $FieldValue + LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + LicenseAvailable = $Standard.LicenseAvailable + CurrentValue = $Standard.CurrentValue + ExpectedValue = $Standard.ExpectedValue } } + $TenantStandards = $tenantData $Results = [System.Collections.Generic.List[object]]::new() @@ -110,18 +114,28 @@ function Get-CIPPTenantAlignment { if ($Template.tenantFilter -and $Template.tenantFilter.Count -gt 0) { # Extract tenant values from the tenantFilter array - $TenantValues = $Template.tenantFilter | ForEach-Object { - if ($_.type -eq 'group') { - (Get-TenantGroups -GroupId $_.value).members.defaultDomainName + $TenantValues = [System.Collections.Generic.List[string]]::new() + foreach ($filterItem in $Template.tenantFilter) { + if ($filterItem.type -eq 'group') { + # Look up group members by Id (GUID in the value field) + $GroupMembers = $TenantGroups | Where-Object { $_.Id -eq $filterItem.value } + if ($GroupMembers -and $GroupMembers.Members) { + foreach ($member in $GroupMembers.Members.defaultDomainName) { + $TenantValues.Add($member) + } + } } else { - $_.value + $TenantValues.Add($filterItem.value) } } - - if ($TenantValues -contains 'AllTenants') { +` + if ($TenantValues -contains 'AllTenants') { $AppliestoAllTenants = $true + } elseif ($TenantValues.Count -gt 0) { + $TemplateAssignedTenants = @($TenantValues) } else { - $TemplateAssignedTenants = $TenantValues + # Filter was specified but resolved to no tenants (empty group) - skip this template + continue } } else { $AppliestoAllTenants = $true @@ -152,26 +166,25 @@ function Get-CIPPTenantAlignment { $IntuneStandardId = "standards.IntuneTemplate.$($IntuneTemplate.TemplateList.value)" $IntuneActions = if ($IntuneTemplate.action) { $IntuneTemplate.action } else { @() } $IntuneReportingEnabled = ($IntuneActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 - [PSCustomObject]@{ StandardId = $IntuneStandardId ReportingEnabled = $IntuneReportingEnabled } } + if ($IntuneTemplate.'TemplateList-Tags') { foreach ($Tag in $IntuneTemplate.'TemplateList-Tags') { Write-Host "Processing Intune Tag: $($Tag.value)" $IntuneActions = if ($IntuneTemplate.action) { $IntuneTemplate.action } else { @() } $IntuneReportingEnabled = ($IntuneActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 - $TemplatesList = Get-CIPPAzDataTableEntity @TemplateTable -Filter $Filter | Where-Object -Property package -EQ $Tag.value - $TemplatesList | ForEach-Object { + $TagTemplate = $TagTemplates | Where-Object -Property package -EQ $Tag.value + $TagTemplates | ForEach-Object { $TagStandardId = "standards.IntuneTemplate.$($_.GUID)" [PSCustomObject]@{ StandardId = $TagStandardId ReportingEnabled = $IntuneReportingEnabled } } - } } } @@ -199,22 +212,44 @@ function Get-CIPPTenantAlignment { } $AllStandards = $StandardsData.StandardId - $ReportingEnabledStandards = ($StandardsData | Where-Object { $_.ReportingEnabled }).StandardId + $AllStandardsArray = @($AllStandards) $ReportingDisabledStandards = ($StandardsData | Where-Object { -not $_.ReportingEnabled }).StandardId + $ReportingDisabledSet = [System.Collections.Generic.HashSet[string]]::new() + foreach ($item in $ReportingDisabledStandards) { [void]$ReportingDisabledSet.Add($item) } + $TemplateAssignedTenantsSet = if ($TemplateAssignedTenants.Count -gt 0) { + $set = [System.Collections.Generic.HashSet[string]]::new() + foreach ($item in $TemplateAssignedTenants) { [void]$set.Add($item) } + $set + } else { $null } foreach ($TenantName in $TenantStandards.Keys) { - if (-not $AppliestoAllTenants -and $TenantName -notin $TemplateAssignedTenants) { - continue + # Check tenant scope with HashSet and cache tenant data + if (-not $AppliestoAllTenants) { + if ($TemplateAssignedTenantsSet -and -not $TemplateAssignedTenantsSet.Contains($TenantName)) { + continue + } } $AllCount = $AllStandards.Count $LatestDataCollection = $null + # Cache hashtable lookup + $CurrentTenantStandards = $TenantStandards[$TenantName] + + # Pre-allocate list with capacity + $ComparisonResults = [System.Collections.Generic.List[object]]::new($AllStandardsArray.Count) - $ComparisonTable = foreach ($StandardKey in $AllStandards) { - $IsReportingDisabled = $ReportingDisabledStandards -contains $StandardKey + # Use for loop instead of foreach + for ($i = 0; $i -lt $AllStandardsArray.Count; $i++) { + $StandardKey = $AllStandardsArray[$i] - if ($TenantStandards[$TenantName].ContainsKey($StandardKey)) { - $StandardObject = $TenantStandards[$TenantName][$StandardKey] + # Use HashSet for Contains + $IsReportingDisabled = $ReportingDisabledSet.Contains($StandardKey) + # Use cached tenant data + + $HasStandard = $StandardKey -and $CurrentTenantStandards.ContainsKey($StandardKey) + + if ($HasStandard) { + $StandardObject = $CurrentTenantStandards[$StandardKey] $Value = $StandardObject.Value if ($StandardObject.LastRefresh) { @@ -227,44 +262,60 @@ function Get-CIPPTenantAlignment { $IsCompliant = ($Value -eq $true) $IsLicenseMissing = ($Value -is [string] -and $Value -like 'License Missing:*') - if ($IsReportingDisabled) { - $ComplianceStatus = 'Reporting Disabled' + $ComplianceStatus = if ($IsReportingDisabled) { + 'Reporting Disabled' } elseif ($IsCompliant) { - $ComplianceStatus = 'Compliant' + 'Compliant' } elseif ($IsLicenseMissing) { - $ComplianceStatus = 'License Missing' + 'License Missing' } else { - $ComplianceStatus = 'Non-Compliant' + 'Non-Compliant' } - [PSCustomObject]@{ - StandardName = $StandardKey - Compliant = $IsCompliant - StandardValue = ($Value | ConvertTo-Json -Depth 100 -Compress) - ComplianceStatus = $ComplianceStatus - ReportingDisabled = $IsReportingDisabled - } + $StandardValueJson = $Value | ConvertTo-Json -Depth 5 -Compress + + $ComparisonResults.Add([PSCustomObject]@{ + StandardName = $StandardKey + Compliant = $IsCompliant + StandardValue = $StandardValueJson + ComplianceStatus = $ComplianceStatus + ReportingDisabled = $IsReportingDisabled + LicenseAvailable = $StandardObject.LicenseAvailable + CurrentValue = $StandardObject.CurrentValue + ExpectedValue = $StandardObject.ExpectedValue + }) } else { - if ($IsReportingDisabled) { - $ComplianceStatus = 'Reporting Disabled' + $ComplianceStatus = if ($IsReportingDisabled) { + 'Reporting Disabled' } else { - $ComplianceStatus = 'Non-Compliant' + 'Non-Compliant' } - [PSCustomObject]@{ - StandardName = $StandardKey - Compliant = $false - StandardValue = 'NOT FOUND' - ComplianceStatus = $ComplianceStatus - ReportingDisabled = $IsReportingDisabled - } + $ComparisonResults.Add([PSCustomObject]@{ + StandardName = $StandardKey + Compliant = $false + StandardValue = 'NOT FOUND' + ComplianceStatus = $ComplianceStatus + ReportingDisabled = $IsReportingDisabled + LicenseAvailable = $null + CurrentValue = $null + ExpectedValue = $null + }) } } - $CompliantStandards = ($ComparisonTable | Where-Object { $_.ComplianceStatus -eq 'Compliant' }).Count - $NonCompliantStandards = ($ComparisonTable | Where-Object { $_.ComplianceStatus -eq 'Non-Compliant' }).Count - $LicenseMissingStandards = ($ComparisonTable | Where-Object { $_.ComplianceStatus -eq 'License Missing' }).Count - $ReportingDisabledStandardsCount = ($ComparisonTable | Where-Object { $_.ReportingDisabled }).Count + # Replace Where-Object with direct counting + $CompliantStandards = 0 + $NonCompliantStandards = 0 + $LicenseMissingStandards = 0 + $ReportingDisabledStandardsCount = 0 + + foreach ($item in $ComparisonResults) { + if ($item.ComplianceStatus -eq 'Compliant') { $CompliantStandards++ } + elseif ($item.ComplianceStatus -eq 'Non-Compliant') { $NonCompliantStandards++ } + elseif ($item.ComplianceStatus -eq 'License Missing') { $LicenseMissingStandards++ } + if ($item.ReportingDisabled) { $ReportingDisabledStandardsCount++ } + } $AlignmentPercentage = if (($AllCount - $ReportingDisabledStandardsCount) -gt 0) { [Math]::Round(($CompliantStandards / ($AllCount - $ReportingDisabledStandardsCount)) * 100) @@ -286,6 +337,7 @@ function Get-CIPPTenantAlignment { standardSettings = $Template.Standards driftAlertEmail = $Template.driftAlertEmail driftAlertWebhook = $Template.driftAlertWebhook + driftAlertDisableEmail = $Template.driftAlertDisableEmail AlignmentScore = $AlignmentPercentage LicenseMissingPercentage = $LicenseMissingPercentage CombinedScore = $AlignmentPercentage + $LicenseMissingPercentage @@ -295,7 +347,7 @@ function Get-CIPPTenantAlignment { TotalStandards = $AllCount ReportingDisabledCount = $ReportingDisabledStandardsCount LatestDataCollection = if ($LatestDataCollection) { $LatestDataCollection } else { $null } - ComparisonDetails = $ComparisonTable + ComparisonDetails = $ComparisonResults } $Results.Add($Result) diff --git a/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 index 758c68b75ea5..851822afe56c 100644 --- a/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 +++ b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 @@ -37,7 +37,7 @@ function Test-CIPPStandardLicense { $TenantCapabilities = Get-CIPPTenantCapabilities -TenantFilter $TenantFilter $Capabilities = foreach ($Capability in $RequiredCapabilities) { - Write-Host "Checking capability: $Capability" + Write-Verbose "Checking capability: $Capability" if ($TenantCapabilities.$Capability -eq $true) { $Capability } @@ -45,19 +45,19 @@ function Test-CIPPStandardLicense { if ($Capabilities.Count -le 0) { if (!$SkipLog.IsPresent) { - Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Tenant does not have the required capability to run standard $StandardName`: The tenant needs one of the following service plans: $($RequiredCapabilities -join ',')" -sev Error - Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: This tenant is not licensed for the following capabilities: $($RequiredCapabilities -join ',')" -Tenant $TenantFilter - Write-Host "Tenant does not have the required capability to run standard $StandardName - $($RequiredCapabilities -join ','). Exiting" + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Tenant does not have the required capability to run standard $StandardName`: The tenant needs one of the following service plans: $($RequiredCapabilities -join ',')" -sev Info + Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -LicenseAvailable $false -FieldValue "License Missing: This tenant is not licensed for the following capabilities: $($RequiredCapabilities -join ',')" -Tenant $TenantFilter + Write-Verbose "Tenant does not have the required capability to run standard $StandardName - $($RequiredCapabilities -join ','). Exiting" } return $false } - Write-Host "Tenant has the required capabilities for standard $StandardName" + Write-Verbose "Tenant has the required capabilities for standard $StandardName" return $true } catch { if (!$SkipLog.IsPresent) { # Sanitize exception message to prevent JSON parsing issues - remove characters that could interfere with JSON detection $SanitizedMessage = $_.Exception.Message -replace '[{}\[\]]', '' - Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Error checking license capabilities for standard $StandardName`: $SanitizedMessage" -sev Error + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Error checking license capabilities for standard $StandardName`: $SanitizedMessage" -sev Info Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: Error checking license capabilities - $SanitizedMessage" -Tenant $TenantFilter } return $false diff --git a/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 b/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 new file mode 100644 index 000000000000..a1eee795710c --- /dev/null +++ b/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 @@ -0,0 +1,50 @@ +function Get-ApplicationInsightsQuery { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Query + ) + + if (-not $env:APPLICATIONINSIGHTS_CONNECTION_STRING -and -not $env:APPINSIGHTS_INSTRUMENTATIONKEY) { + throw 'Application Insights is not enabled for this instance.' + } + + $SubscriptionId = Get-CIPPAzFunctionAppSubId + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + $AppInsightsName = $env:WEBSITE_SITE_NAME + + $Body = @{ + 'query' = $Query + 'options' = @{'truncationMaxSize' = 67108864 } + 'maxRows' = 1001 + 'workspaceFilters' = @{'regions' = @() } + } | ConvertTo-Json -Depth 10 -Compress + + $AppInsightsQuery = 'subscriptions/{0}/resourceGroups/{1}/providers/microsoft.insights/components/{2}/query' -f $SubscriptionId, $RGName, $AppInsightsName + + $resource = 'https://api.loganalytics.io' + $Token = Get-CIPPAzIdentityToken -ResourceUrl $resource + + $headerParams = @{'Authorization' = "Bearer $Token" } + $logAnalyticsBaseURI = 'https://api.loganalytics.io/v1' + + $result = Invoke-RestMethod -Method POST -Uri "$($logAnalyticsBaseURI)/$AppInsightsQuery" -Headers $headerParams -Body $Body -ContentType 'application/json' -ErrorAction Stop + + # Format Result to PSObject + $headerRow = $null + $headerRow = $result.tables.columns | Select-Object name + $columnsCount = $headerRow.Count + $logData = foreach ($row in $result.tables.rows) { + $data = New-Object PSObject + for ($i = 0; $i -lt $columnsCount; $i++) { + $data | Add-Member -MemberType NoteProperty -Name $headerRow[$i].name -Value $row[$i] + } + $data + } + + return $logData +} diff --git a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 index 02d791993929..1aecba454413 100644 --- a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 @@ -34,22 +34,6 @@ function Get-CIPPAuthentication { } } } else { - Write-Information 'Connecting to Azure' - Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - try { - $Context = Get-AzContext - if ($Context.Subscription) { - #Write-Information "Current context: $($Context | ConvertTo-Json)" - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - } catch { - Write-Information "ERROR: Could not set context to subscription $SubscriptionId." - } - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] #Get list of tenants that have 'directTenant' set to true $TenantsTable = Get-CippTable -tablename 'Tenants' @@ -58,14 +42,14 @@ function Get-CIPPAuthentication { if ($tenants) { $tenants | ForEach-Object { $name = $_.customerId - $secret = Get-AzKeyVaultSecret -VaultName $keyvaultname -Name $name -AsPlainText -ErrorAction Stop + $secret = Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $name -AsPlainText -ErrorAction Stop if ($secret) { Set-Item -Path env:$name -Value $secret -Force } } } $Variables | ForEach-Object { - Set-Item -Path env:$_ -Value (Get-AzKeyVaultSecret -VaultName $keyvaultname -Name $_ -AsPlainText -ErrorAction Stop) -Force + Set-Item -Path env:$_ -Value (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $_ -AsPlainText -ErrorAction Stop) -Force } } $env:SetFromProfile = $true diff --git a/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 index e824402a7b85..4ce3d174b30a 100644 --- a/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 @@ -18,14 +18,77 @@ function Get-CIPPBackup { } if ($NameOnly.IsPresent) { - $Table.Property = @('PartitionKey', 'RowKey', 'Timestamp', 'OriginalEntityId') + if ($Type -ne 'Scheduled') { + $Table.Property = @('RowKey', 'Timestamp', 'BackupIsBlob') + } else { + $Table.Property = @('RowKey', 'Timestamp') + } + } + + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Conditions.Add("RowKey gt '$($TenantFilter)' and RowKey lt '$($TenantFilter)~'") } $Filter = $Conditions -join ' and ' $Table.Filter = $Filter - $Info = Get-CIPPAzDataTableEntity @Table -Debug - if ($TenantFilter) { - $Info = $Info | Where-Object { $_.TenantFilter -eq $TenantFilter } + $Info = Get-CIPPAzDataTableEntity @Table + + if ($NameOnly.IsPresent) { + $Info = $Info | Where-Object { $_.RowKey -notmatch '-part[0-9]+$' } + } else { + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Info = $Info | Where-Object { $_.TenantFilter -eq $TenantFilter } + } + } + + # Augment results with blob-link awareness and fetch blob content when needed + if (-not $NameOnly.IsPresent -and $Info) { + foreach ($item in $Info) { + $isBlobLink = $false + $blobPath = $null + if ($null -ne $item.PSObject.Properties['Backup']) { + $b = $item.Backup + if ($b -is [string] -and ($b -like 'https://*' -or $b -like 'http://*')) { + $isBlobLink = $true + $blobPath = $b + + # Fetch the actual backup content from blob storage + try { + # Extract container/blob path from URL + $resourcePath = $blobPath + if ($resourcePath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $resourcePath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $resourcePath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($resourcePath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $resourcePath = ($resourcePath -split '.blob.core.windows.net/', 2)[-1] + } + + # Download the blob content + $ConnectionString = $env:AzureWebJobsStorage + $blobResponse = New-CIPPAzStorageRequest -Service 'blob' -Resource $resourcePath -Method 'GET' -ConnectionString $ConnectionString + + if ($blobResponse -and $blobResponse.Bytes) { + $backupContent = [System.Text.Encoding]::UTF8.GetString($blobResponse.Bytes) + # Replace the URL with the actual backup content + $item.Backup = $backupContent + Write-Verbose "Successfully retrieved backup content from blob storage for $($item.RowKey)" + } else { + Write-Warning "Failed to retrieve backup content from blob storage for $($item.RowKey)" + } + } catch { + Write-Warning "Error fetching backup from blob storage: $($_.Exception.Message)" + # Leave the URL in place if we can't fetch the content + } + } + } + $item | Add-Member -NotePropertyName 'BackupIsBlobLink' -NotePropertyValue $isBlobLink -Force + $item | Add-Member -NotePropertyName 'BlobResourcePath' -NotePropertyValue $blobPath -Force + } } return $Info } diff --git a/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 b/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 index 6035975ad1d2..0b159e9807be 100644 --- a/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 @@ -1,3 +1,31 @@ +<# +.SYNOPSIS + Retrieves BitLocker recovery keys for a managed device from Microsoft Graph API. + +.DESCRIPTION + This function queries the Microsoft Graph API to retrieve all BitLocker recovery keys + associated with a specified device. It handles cases where no key is found and provides appropriate + logging and error handling. +.PARAMETER Device + The ID of the device for which to retrieve BitLocker recovery keys. + +.PARAMETER TenantFilter + The tenant ID to filter the request to the appropriate tenant. + +.PARAMETER APIName + The name of the API operation for logging purposes. Defaults to 'Get BitLocker key'. + +.PARAMETER Headers + The headers to include in the request, typically used for authentication and logging. + +.OUTPUTS + Array of PSCustomObject with properties: + - resultText: Formatted string containing the key ID and key value + - copyField: The raw key value + - state: Status of the operation ('success') + + Or a string message if no keys are found. +#> function Get-CIPPBitLockerKey { [CmdletBinding()] diff --git a/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 b/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 new file mode 100644 index 000000000000..4ec9970979e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 @@ -0,0 +1,62 @@ +function Get-CIPPDbItem { + <# + .SYNOPSIS + Get specific items from the CIPP Reporting database + + .DESCRIPTION + Retrieves items from the CippReportingDB table using partition key (tenant) and type + + .PARAMETER TenantFilter + The tenant domain or GUID (partition key) + + .PARAMETER Type + The type of data to retrieve (used in row key filter) + + .PARAMETER CountsOnly + If specified, returns all count rows for the tenant + + .EXAMPLE + Get-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' + + .EXAMPLE + Get-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -CountsOnly + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$Type, + + [Parameter(Mandatory = $false)] + [switch]$CountsOnly + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + if ($CountsOnly) { + if ($TenantFilter -eq 'allTenants') { + $Filter = $null + } else { + $Filter = "PartitionKey eq '{0}'" -f $TenantFilter + } + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $Results = $Results | Where-Object { $_.RowKey -like '*-Count' } + } else { + if (-not $Type) { + throw 'Type parameter is required when CountsOnly is not specified' + } + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}.'" -f $TenantFilter, $Type + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter + } + + return $Results + + } catch { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -message "Failed to get items$(if ($Type) { " of type $Type" })$(if ($CountsOnly) { ' (counts only)' }): $($_.Exception.Message)" -sev Error + throw + } +} + diff --git a/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 b/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 index fc7fcd31ba6d..d201d8a5a41f 100644 --- a/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 @@ -13,19 +13,21 @@ function Get-CIPPDomainAnalyser { Get-CIPPDomainAnalyser -TenantFilter 'AllTenants' #> [CmdletBinding()] - Param([string]$TenantFilter) + param([string]$TenantFilter) $DomainTable = Get-CIPPTable -Table 'Domains' # Get all the things #Transform the tenantFilter to the GUID. - $TenantFilter = (Get-Tenants -TenantFilter $tenantFilter).customerId if ($TenantFilter -ne 'AllTenants' -and ![string]::IsNullOrEmpty($TenantFilter)) { + $TenantFilter = (Get-Tenants -TenantFilter $tenantFilter).customerId $DomainTable.Filter = "TenantGUID eq '{0}'" -f $TenantFilter + } else { + $Tenants = Get-Tenants -IncludeErrors } - + $Domains = Get-CIPPAzDataTableEntity @DomainTable | Where-Object { $_.TenantGUID -in $Tenants.customerId -or $TenantFilter -eq $_.TenantGUID } try { # Extract json from table results - $Results = foreach ($DomainAnalyserResult in (Get-CIPPAzDataTableEntity @DomainTable).DomainAnalyser) { + $Results = foreach ($DomainAnalyserResult in ($Domains).DomainAnalyser) { try { if (![string]::IsNullOrEmpty($DomainAnalyserResult)) { $Object = $DomainAnalyserResult | ConvertFrom-Json -ErrorAction SilentlyContinue diff --git a/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 index bb32924cc8c4..17da95a2ad11 100644 --- a/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 @@ -29,26 +29,44 @@ function Get-CIPPDrift { [switch]$AllTenants ) - + $IntuneCapable = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + $ConditionalAccessCapable = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') $IntuneTable = Get-CippTable -tablename 'templates' - $IntuneFilter = "PartitionKey eq 'IntuneTemplate'" - $RawIntuneTemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $IntuneFilter) - $AllIntuneTemplates = $RawIntuneTemplates | ForEach-Object { - try { - $JSONData = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue - $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue - $data | Add-Member -NotePropertyName 'displayName' -NotePropertyValue $JSONData.Displayname -Force - $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force - $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force - $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force - $data - } catch { - # Skip invalid templates - } - } | Sort-Object -Property displayName + if ($IntuneCapable) { + $IntuneFilter = "PartitionKey eq 'IntuneTemplate'" + $RawIntuneTemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $IntuneFilter) + $AllIntuneTemplates = $RawIntuneTemplates | ForEach-Object { + try { + $JSONData = $_.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'displayName' -NotePropertyValue $JSONData.Displayname -Force + $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force + $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data + } catch { + # Skip invalid templates + } + } | Sort-Object -Property displayName + } + # Load all CA templates + if ($ConditionalAccessCapable) { + $CAFilter = "PartitionKey eq 'CATemplate'" + $RawCATemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $CAFilter) + $AllCATemplates = $RawCATemplates | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data + } catch { + # Skip invalid templates + } + } | Sort-Object -Property displayName + } try { $AlignmentData = Get-CIPPTenantAlignment -TenantFilter $TenantFilter -TemplateId $TemplateId | Where-Object -Property standardType -EQ 'drift' + if (-not $AlignmentData) { Write-Warning "No alignment data found for tenant $TenantFilter" return @() @@ -82,113 +100,134 @@ function Get-CIPPDrift { } else { 'New' } + # Reset displayName and description for each deviation to prevent carryover from previous iterations + $displayName = $null + $standardDescription = $null #if the $ComparisonItem.StandardName contains *intuneTemplate*, then it's an Intune policy deviation, and we need to grab the correct displayname from the template table if ($ComparisonItem.StandardName -like '*intuneTemplate*') { $CompareGuid = $ComparisonItem.StandardName.Split('.') | Select-Object -Index 2 - Write-Host "Extracted GUID: $CompareGuid" - $Template = $AllIntuneTemplates | Where-Object { $_.GUID -like "*$CompareGuid*" } - if ($Template) { $displayName = $Template.displayName } + Write-Verbose "Extracted GUID: $CompareGuid" + $Template = $AllIntuneTemplates | Where-Object { $_.GUID -eq "$CompareGuid" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + } + } + # Handle Conditional Access templates + if ($ComparisonItem.StandardName -like '*ConditionalAccessTemplate*') { + $CompareGuid = $ComparisonItem.StandardName.Split('.') | Select-Object -Index 2 + Write-Verbose "Extracted CA GUID: $CompareGuid" + $Template = $AllCATemplates | Where-Object { $_.GUID -eq "$CompareGuid" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + } } $reason = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].Reason } $User = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].User } $StandardsDeviations.Add([PSCustomObject]@{ standardName = $ComparisonItem.StandardName standardDisplayName = $displayName - expectedValue = 'Compliant' + standardDescription = $standardDescription receivedValue = $ComparisonItem.StandardValue state = 'current' Status = $Status Reason = $reason lastChangedByUser = $User + LicenseAvailable = $ComparisonItem.LicenseAvailable + CurrentValue = $ComparisonItem.CurrentValue + ExpectedValue = $ComparisonItem.ExpectedValue }) } } } # Perform full policy collection + if ($IntuneCapable) { + # Always get live data when not in AllTenants mode + $IntuneRequests = @( + @{ + id = 'deviceAppManagement/managedAppPolicies' + url = 'deviceAppManagement/managedAppPolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceCompliancePolicies' + url = 'deviceManagement/deviceCompliancePolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/groupPolicyConfigurations' + url = 'deviceManagement/groupPolicyConfigurations?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceConfigurations' + url = 'deviceManagement/deviceConfigurations?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/configurationPolicies' + url = 'deviceManagement/configurationPolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsDriverUpdateProfiles' + url = 'deviceManagement/windowsDriverUpdateProfiles?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsFeatureUpdateProfiles' + url = 'deviceManagement/windowsFeatureUpdateProfiles?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdatePolicies' + url = 'deviceManagement/windowsQualityUpdatePolicies?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdateProfiles' + url = 'deviceManagement/windowsQualityUpdateProfiles?$top=200' + method = 'GET' + } + ) - # Always get live data when not in AllTenants mode - $IntuneRequests = @( - @{ - id = 'deviceAppManagement/managedAppPolicies' - url = 'deviceAppManagement/managedAppPolicies' - method = 'GET' - } - @{ - id = 'deviceManagement/deviceCompliancePolicies' - url = 'deviceManagement/deviceCompliancePolicies' - method = 'GET' - } - @{ - id = 'deviceManagement/groupPolicyConfigurations' - url = 'deviceManagement/groupPolicyConfigurations' - method = 'GET' - } - @{ - id = 'deviceManagement/deviceConfigurations' - url = 'deviceManagement/deviceConfigurations' - method = 'GET' - } - @{ - id = 'deviceManagement/configurationPolicies' - url = 'deviceManagement/configurationPolicies' - method = 'GET' - } - @{ - id = 'deviceManagement/windowsDriverUpdateProfiles' - url = 'deviceManagement/windowsDriverUpdateProfiles' - method = 'GET' - } - @{ - id = 'deviceManagement/windowsFeatureUpdateProfiles' - url = 'deviceManagement/windowsFeatureUpdateProfiles' - method = 'GET' - } - @{ - id = 'deviceManagement/windowsQualityUpdatePolicies' - url = 'deviceManagement/windowsQualityUpdatePolicies' - method = 'GET' - } - @{ - id = 'deviceManagement/windowsQualityUpdateProfiles' - url = 'deviceManagement/windowsQualityUpdateProfiles' - method = 'GET' - } - ) - - $TenantIntunePolicies = [System.Collections.Generic.List[object]]::new() - - try { - $IntuneGraphRequest = New-GraphBulkRequest -Requests $IntuneRequests -tenantid $TenantFilter -asapp $true + $TenantIntunePolicies = [System.Collections.Generic.List[object]]::new() - foreach ($Request in $IntuneGraphRequest) { - if ($Request.body.value) { - foreach ($Policy in $Request.body.value) { - $TenantIntunePolicies.Add([PSCustomObject]@{ - Type = $Request.id - Policy = $Policy - }) + try { + $IntuneGraphRequest = New-GraphBulkRequest -Requests $IntuneRequests -tenantid $TenantFilter -asapp $true + + foreach ($Request in $IntuneGraphRequest) { + if ($Request.body.value) { + foreach ($Policy in $Request.body.value) { + $TenantIntunePolicies.Add([PSCustomObject]@{ + Type = $Request.id + Policy = $Policy + }) + } } } + } catch { + Write-Warning "Failed to get Intune policies: $($_.Exception.Message)" } - } catch { - Write-Warning "Failed to get Intune policies: $($_.Exception.Message)" } - # Get Conditional Access policies - try { - $CARequests = @( - @{ - id = 'policies' - url = 'identity/conditionalAccess/policies' - method = 'GET' - } - ) - $CAGraphRequest = New-GraphBulkRequest -Requests $CARequests -tenantid $TenantFilter -asapp $true - $TenantCAPolicies = ($CAGraphRequest | Where-Object { $_.id -eq 'policies' }).body.value - } catch { - Write-Warning "Failed to get Conditional Access policies: $($_.Exception.Message)" - $TenantCAPolicies = @() + if ($ConditionalAccessCapable) { + try { + $CARequests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies?$top=999' + method = 'GET' + } + ) + $CAGraphRequest = New-GraphBulkRequest -Requests $CARequests -tenantid $TenantFilter -asapp $true + $TenantCAPolicies = ($CAGraphRequest | Where-Object { $_.id -eq 'policies' }).body.value + } catch { + Write-Warning "Failed to get Conditional Access policies: $($_.Exception.Message)" + $TenantCAPolicies = @() + } } if ($Alignment.standardSettings) { @@ -203,14 +242,6 @@ function Get-CIPPDrift { # Get actual CA templates from templates table if ($CATemplateIds.Count -gt 0) { try { - $CATable = Get-CippTable -tablename 'templates' - $CAFilter = "PartitionKey eq 'CATemplate'" - $AllCATemplates = (Get-CIPPAzDataTableEntity @CATable -Filter $CAFilter) | ForEach-Object { - $data = $_.JSON | ConvertFrom-Json -Depth 100 - $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.GUID -Force - $data - } | Sort-Object -Property displayName - $TemplateCATemplates = $AllCATemplates | Where-Object { $_.GUID -in $CATemplateIds } } catch { Write-Warning "Failed to get CA templates: $($_.Exception.Message)" @@ -251,6 +282,8 @@ function Get-CIPPDrift { } else { 'New' } + $reason = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].Reason } + $User = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].User } $PolicyDeviation = [PSCustomObject]@{ standardName = $PolicyKey standardDisplayName = "Intune - $TenantPolicyName" @@ -258,6 +291,8 @@ function Get-CIPPDrift { receivedValue = ($TenantPolicy.Policy | ConvertTo-Json -Depth 10 -Compress) state = 'current' Status = $Status + Reason = $reason + lastChangedByUser = $User } $PolicyDeviations.Add($PolicyDeviation) } @@ -281,13 +316,17 @@ function Get-CIPPDrift { } else { 'New' } + $reason = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].Reason } + $User = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].User } $PolicyDeviation = [PSCustomObject]@{ standardName = $PolicyKey standardDisplayName = "Conditional Access - $($TenantCAPolicy.displayName)" expectedValue = 'This policy only exists in the tenant, not in the template.' - receivedValue = ($TenantCAPolicy | ConvertTo-Json -Depth 10 -Compress) + receivedValue = $TenantCAPolicy | Out-String state = 'current' Status = $Status + Reason = $reason + lastChangedByUser = $User } $PolicyDeviations.Add($PolicyDeviation) } @@ -325,6 +364,7 @@ function Get-CIPPDrift { deniedDeviations = @($DeniedDeviations) allDeviations = @($AllDeviations) latestDataCollection = $Alignment.LatestDataCollection + driftSettings = $AlignmentData } $Results.Add($Result) diff --git a/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 b/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 new file mode 100644 index 000000000000..bc1933d3bc2f --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 @@ -0,0 +1,63 @@ +<# +.SYNOPSIS + Retrieves the FileVault recovery key for a managed device from Microsoft Graph API. + +.DESCRIPTION + This function makes a request to the Microsoft Graph API to retrieve the FileVault recovery key + for a specified managed device. It handles cases where no key is found and provides appropriate + logging and error handling. + +.PARAMETER Device + The GUID of the managed device for which to retrieve the FileVault key. + +.PARAMETER TenantFilter + The tenant ID to filter the request to the appropriate tenant. + +.PARAMETER APIName + The name of the API operation for logging purposes. Defaults to 'Get FileVault key'. + +.PARAMETER Headers + The headers to include in the request, typically used for authentication and logging. + +.OUTPUTS + PSCustomObject with properties: + - resultText: Formatted string containing the key + - copyField: The raw key value + - state: Status of the operation ('success') + + Or a string message if no key is found. + +#> + +function Get-CIPPFileVaultKey { + [CmdletBinding()] + param ( + $Device, + $TenantFilter, + $APIName = 'Get FileVault key', + $Headers + ) + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$Device/getFileVaultKey" -tenantid $TenantFilter + + if ([string]::IsNullOrEmpty($GraphRequest)) { + $Result = "No FileVault recovery key found for $($Device)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Info -tenant $TenantFilter + return $Result + } + + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved FileVault recovery key for $($Device)" -Sev Info -tenant $TenantFilter + return [PSCustomObject]@{ + resultText = "Key: $($GraphRequest)" + copyField = $GraphRequest + state = 'success' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not retrieve FileVault recovery key for $($Device). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } + +} diff --git a/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 b/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 index 8a5cddf7a400..2866df56749f 100644 --- a/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 @@ -18,6 +18,22 @@ function Get-CIPPLicenseOverview { url = 'directory/subscriptions' method = 'GET' } + @{ + id = 'licensedUsers' + url = "users?`$select=id,displayName,userPrincipalName,assignedLicenses&`$filter=assignedLicenses/`$count ne 0&`$count=true" + method = 'GET' + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'licensedGroups' + url = "groups?`$select=id,displayName,assignedLicenses,mailEnabled,securityEnabled,groupTypes,onPremisesSyncEnabled&`$filter=assignedLicenses/`$count ne 0&`$count=true" + method = 'GET' + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } ) try { @@ -34,13 +50,58 @@ function Get-CIPPLicenseOverview { Tenant = $TenantFilter Licenses = $LicRequest } - Set-Location (Get-Item $PSScriptRoot).FullName - $ConvertTable = Import-Csv ConversionTable.csv + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable - $GraphRequest = foreach ($singlereq in $RawGraphRequest) { - $skuid = $singlereq.Licenses - foreach ($sku in $skuid) { + + $AllLicensedUsers = @(($Results | Where-Object { $_.id -eq 'licensedUsers' }).body.value) + $UsersBySku = @{} + foreach ($User in $AllLicensedUsers) { + if (-not $User.assignedLicenses) { continue } # Skip users with no assigned licenses. Should not happens as the filter is applied, but just in case + $UserInfo = [PSCustomObject]@{ + displayName = [string]$User.displayName + userPrincipalName = [string]$User.userPrincipalName + id = [string]$User.id + } + + foreach ($AssignedLicense in $User.assignedLicenses) { + $LicenseSkuId = ([string]$AssignedLicense.skuId).ToLowerInvariant() + if ([string]::IsNullOrWhiteSpace($LicenseSkuId)) { continue } # Skip if SKU ID is null or whitespace. Should not happen but just in case + if (-not $UsersBySku.ContainsKey($LicenseSkuId)) { + $UsersBySku[$LicenseSkuId] = [System.Collections.Generic.List[object]]::new() + } + $UsersBySku[$LicenseSkuId].Add($UserInfo) + } + + } + + $AllLicensedGroups = @(($Results | Where-Object { $_.id -eq 'licensedGroups' }).body.value) + $GroupsBySku = @{} + foreach ($Group in $AllLicensedGroups) { + if (-not $Group.assignedLicenses) { continue } + $GroupInfo = [PSCustomObject]@{ + displayName = [string]$Group.displayName + calculatedGroupType = if ($Group.groupTypes -contains 'Unified') { 'Microsoft 365' } + elseif ($Group.mailEnabled -and $Group.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $Group.mailEnabled -and $Group.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($Group.groupTypes)) -and ($Group.mailEnabled) -and (-not $Group.securityEnabled)) { 'Distribution List' } + id = [string]$Group.id + onPremisesSyncEnabled = [bool]$Group.onPremisesSyncEnabled + + } + foreach ($AssignedLicense in $Group.assignedLicenses) { + $LicenseSkuId = ([string]$AssignedLicense.skuId).ToLowerInvariant() + if ([string]::IsNullOrWhiteSpace($LicenseSkuId)) { continue } + if (-not $GroupsBySku.ContainsKey($LicenseSkuId)) { + $GroupsBySku[$LicenseSkuId] = [System.Collections.Generic.List[object]]::new() + } + $GroupsBySku[$LicenseSkuId].Add($GroupInfo) + } + } + $GraphRequest = foreach ($singleReq in $RawGraphRequest) { + $skuId = $singleReq.Licenses + foreach ($sku in $skuId) { if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } $PrettyNameAdmin = $AdminPortalLicenses | Where-Object { $_.SkuId -eq $sku.skuId } | Select-Object -ExpandProperty Name $PrettyNameCSV = ($ConvertTable | Where-Object { $_.guid -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 @@ -71,8 +132,9 @@ function Get-CIPPLicenseOverview { OCPSubscriptionId = $SubInfo.ocpSubscriptionId } } + $SkuKey = ([string]$sku.skuId).ToLowerInvariant() [pscustomobject]@{ - Tenant = [string]$singlereq.Tenant + Tenant = [string]$singleReq.Tenant License = [string]$PrettyName CountUsed = [string]"$($sku.consumedUnits)" CountAvailable = [string]$sku.prepaidUnits.enabled - $sku.consumedUnits @@ -80,12 +142,11 @@ function Get-CIPPLicenseOverview { skuId = [string]$sku.skuId skuPartNumber = [string]$PrettyName availableUnits = [string]$sku.prepaidUnits.enabled - $sku.consumedUnits - TermInfo = [string]($TermInfo | ConvertTo-Json -Depth 10 -Compress) - 'PartitionKey' = 'License' - 'RowKey' = "$($singlereq.Tenant) - $($sku.skuid)" + TermInfo = $TermInfo + AssignedUsers = ($UsersBySku.ContainsKey($SkuKey) ? @(($UsersBySku[$SkuKey])) : $null) + AssignedGroups = ($GroupsBySku.ContainsKey($SkuKey) ? @(($GroupsBySku[$SkuKey])) : $null) } } } return $GraphRequest } - diff --git a/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 b/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 index b3d8dd5b1c44..651261d3bdfb 100644 --- a/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 @@ -69,7 +69,16 @@ function Get-CIPPMFAState { } if ($CAState.count -eq 0) { $CAState.Add('None') | Out-Null } + + $assignments = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?`$expand=principal" -tenantid $TenantFilter -ErrorAction SilentlyContinue + $adminObjectIds = $assignments | + Where-Object { + $_.principal.'@odata.type' -eq '#microsoft.graph.user' + } | + ForEach-Object { + $_.principal.id + } # Interact with query parameters or the body of the request. $GraphRequest = $Users | ForEach-Object { @@ -98,6 +107,7 @@ function Get-CIPPMFAState { $CoveredByCA = 'Not Enforced' } } + $IsAdmin = if ($adminObjectIds -contains $_.ObjectId) { $true } else { $false } $PerUser = $_.PerUserMFAState @@ -117,6 +127,7 @@ function Get-CIPPMFAState { CoveredByCA = $CoveredByCA CAPolicies = $UserCAState CoveredBySD = $SecureDefaultsState + IsAdmin = $IsAdmin RowKey = [string]($_.UserPrincipalName).replace('#', '') PartitionKey = 'users' } diff --git a/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 b/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 index 0435eabdaf13..27fc292c63fa 100644 --- a/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 @@ -1,9 +1,10 @@ function Get-CIPPSPOTenant { [CmdletBinding()] - Param( + param( [Parameter(Mandatory = $true)] [string]$TenantFilter, - [string]$SharepointPrefix + [string]$SharepointPrefix, + [switch]$SkipCache ) if (!$SharepointPrefix) { @@ -16,6 +17,16 @@ function Get-CIPPSPOTenant { $AdminUrl = "https://$($tenantName)-admin.sharepoint.com" } + $Table = Get-CIPPTable -tablename 'cachespotenant' + $Filter = "PartitionKey eq 'Tenant' and RowKey eq '$TenantFilter' and Timestamp gt datetime'$( (Get-Date).AddHours(-1).ToString('yyyy-MM-ddTHH:mm:ssZ') )'" + if (!$SkipCache.IsPresent) { + $CachedTenant = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if ($CachedTenant -and (Test-Json $CachedTenant.JSON)) { + $Results = $CachedTenant.JSON | ConvertFrom-Json + return $Results + } + } + # Query tenant settings $XML = @' @@ -23,7 +34,17 @@ function Get-CIPPSPOTenant { $AdditionalHeaders = @{ 'Accept' = 'application/json;odata=verbose' } + $Results = New-GraphPostRequest -scope "$($AdminUrl)/.default" -tenantid $TenantFilter -Uri "$($SharePointInfo.AdminUrl)/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders - $Results | Select-Object -Last 1 *, @{n = 'SharepointPrefix'; e = { $tenantName } }, @{n = 'TenantFilter'; e = { $TenantFilter } } + $Results = $Results | Select-Object -Last 1 *, @{n = 'SharepointPrefix'; e = { $tenantName } }, @{n = 'TenantFilter'; e = { $TenantFilter } } + + # Cache result + $Entity = @{ + PartitionKey = 'Tenant' + RowKey = $TenantFilter + JSON = [string]($Results | ConvertTo-Json -Depth 10 -Compress) + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + return $Results } diff --git a/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 b/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 index 196568107230..cc743b6b2893 100644 --- a/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 @@ -8,7 +8,7 @@ function Get-CIPPTenantCapabilities { ) $ConfigTable = Get-CIPPTable -TableName 'CacheCapabilities' $datetime = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') - $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq '$TenantFilter' and Timestamp ge datetime'$datetime'" + $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq '$TenantFilter' and PartitionKey eq 'Capabilities' and Timestamp ge datetime'$datetime'" if ($ConfigEntries) { $Org = $ConfigEntries.JSON | ConvertFrom-Json } else { diff --git a/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 b/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 new file mode 100644 index 000000000000..312236c81c4d --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 @@ -0,0 +1,44 @@ +function Get-CIPPTestResults { + <# + .SYNOPSIS + Retrieves test results and tenant counts for a specific tenant + + .PARAMETER TenantFilter + The tenant domain or GUID to retrieve results for + + .EXAMPLE + Get-CIPPTestResults -TenantFilter 'contoso.onmicrosoft.com' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $Table = Get-CippTable -tablename 'CippTestResults' + $Filter = "PartitionKey eq '{0}'" -f $TenantFilter + $TestResults = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $CountData = Get-CIPPDbItem -TenantFilter $TenantFilter -CountsOnly + + $TenantCounts = @{} + $LatestTimestamp = $null + + foreach ($CountRow in $CountData) { + $TypeName = $CountRow.RowKey -replace '-Count$', '' + $TenantCounts[$TypeName] = $CountRow.DataCount + $LatestTimestamp = $CountRow.Timestamp + } + + return [PSCustomObject]@{ + TestResults = $TestResults + TenantCounts = $TenantCounts + LatestReportTimeStamp = $LatestTimestamp + } + + } catch { + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Failed to get test results: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 index af5a29646f5c..a86ce4751645 100644 --- a/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 @@ -40,7 +40,8 @@ function Get-CIPPTextReplacement { '%programdata%', '%cippuserschema%', '%cippurl%', - '%defaultdomain%' + '%defaultdomain%', + '%organizationid%' ) $Tenant = Get-Tenants -TenantFilter $TenantFilter @@ -89,6 +90,7 @@ function Get-CIPPTextReplacement { } #default replacements for all tenants: %tenantid% becomes $tenant.customerId, %tenantfilter% becomes $tenant.defaultDomainName, %tenantname% becomes $tenant.displayName $Text = $Text -replace '%tenantid%', $Tenant.customerId + $Text = $Text -replace '%organizationid%', $Tenant.customerId $Text = $Text -replace '%tenantfilter%', $Tenant.defaultDomainName $Text = $Text -replace '%defaultdomain%', $Tenant.defaultDomainName $Text = $Text -replace '%initialdomain%', $Tenant.initialDomainName diff --git a/Modules/CIPPCore/Public/Get-CIPPTimerFunctions.ps1 b/Modules/CIPPCore/Public/Get-CIPPTimerFunctions.ps1 index c17c4dd61100..d60ca8ed40cf 100644 --- a/Modules/CIPPCore/Public/Get-CIPPTimerFunctions.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPTimerFunctions.ps1 @@ -10,9 +10,11 @@ function Get-CIPPTimerFunctions { # Check running nodes $VersionTable = Get-CIPPTable -tablename 'Version' - $Nodes = Get-CIPPAzDataTableEntity @VersionTable -Filter "PartitionKey eq 'Version' and RowKey ne 'Version'" | Where-Object { $_.RowKey -match '-' } - $AvailableNodes = $Nodes.RowKey | ForEach-Object { ($_ -split '-')[1] } + $Nodes = Get-CIPPAzDataTableEntity @VersionTable -Filter "PartitionKey eq 'Version' and RowKey ne 'Version' and RowKey ne 'frontend'" + $FunctionName = $env:WEBSITE_SITE_NAME + $MainFunctionVersion = ($Nodes | Where-Object { $_.RowKey -eq $FunctionName }).Version + $AvailableNodes = $Nodes.RowKey | Where-Object { $_.RowKey -match '-' -and $_.Version -eq $MainFunctionVersion } | ForEach-Object { ($_ -split '-')[1] } # Get node name if ($FunctionName -match '-') { @@ -22,7 +24,7 @@ function Get-CIPPTimerFunctions { } $RunOnProcessor = $true - if ($Config -and $Config.state -eq $true) { + if ($Config -and $Config.state -eq $true -and $AvailableNodes.Count -gt 0) { if ($env:CIPP_PROCESSOR -ne 'true') { $RunOnProcessor = $false } @@ -39,6 +41,7 @@ function Get-CIPPTimerFunctions { $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent $CippTimers = Get-Content -Path $CIPPRoot\CIPPTimers.json + if ($ListAllTasks) { $Orchestrators = $CippTimers | ConvertFrom-Json | Sort-Object -Property Priority } else { @@ -57,45 +60,47 @@ function Get-CIPPTimerFunctions { } foreach ($Orchestrator in $Orchestrators) { - $Status = $OrchestratorStatus | Where-Object { $_.RowKey -eq $Orchestrator.Id } - if ($Status.Cron) { - $CronString = $Status.Cron - } else { - $CronString = $Orchestrator.Cron - } - $CronCount = ($CronString -split ' ' | Measure-Object).Count - if ($CronCount -eq 5) { - $Cron = [Ncrontab.Advanced.CrontabSchedule]::Parse($CronString) - } elseif ($CronCount -eq 6) { - $Cron = [Ncrontab.Advanced.CrontabSchedule]::Parse($CronString, [Ncrontab.Advanced.Enumerations.CronStringFormat]::WithSeconds) - } else { - Write-Warning "Invalid cron expression for $($Orchestrator.Command): $($Orchestrator.Cron)" - continue - } + if (Get-Command -Name $Orchestrator.Command -Module CIPPCore -ErrorAction SilentlyContinue) { + $Status = $OrchestratorStatus | Where-Object { $_.RowKey -eq $Orchestrator.Id } + if ($Status.Cron -and $Orchestrator.IsSystem -eq $true -and -not $ResetToDefault.IsPresent) { + $CronString = $Status.Cron + } else { + $CronString = $Orchestrator.Cron + } - if (!$ListAllTasks.IsPresent) { - if ($Orchestrator.PreferredProcessor -and $AvailableNodes -contains $Orchestrator.PreferredProcessor -and $Node -ne $Orchestrator.PreferredProcessor) { - # only run on preferred processor when available - continue - } elseif ((!$Orchestrator.PreferredProcessor -or $AvailableNodes -notcontains $Orchestrator.PreferredProcessor) -and $Node -notin ('http', 'proc')) { - # Catchall function nodes + $CronCount = ($CronString -split ' ' | Measure-Object).Count + if ($CronCount -eq 5) { + $Cron = [Ncrontab.Advanced.CrontabSchedule]::Parse($CronString) + } elseif ($CronCount -eq 6) { + $Cron = [Ncrontab.Advanced.CrontabSchedule]::Parse($CronString, [Ncrontab.Advanced.Enumerations.CronStringFormat]::WithSeconds) + } else { + Write-Warning "Invalid cron expression for $($Orchestrator.Command): $($Orchestrator.Cron)" continue } - } - $Now = Get-Date - if ($ListAllTasks.IsPresent) { - $NextOccurrence = [datetime]$Cron.GetNextOccurrence($Now) - } else { - $NextOccurrences = $Cron.GetNextOccurrences($Now.AddMinutes(-15), $Now.AddMinutes(15)) - if (!$Status -or $Status.LastOccurrence -eq 'Never') { - $NextOccurrence = $NextOccurrences | Where-Object { $_ -le (Get-Date) } | Select-Object -First 1 + if (!$ListAllTasks.IsPresent) { + if ($Orchestrator.PreferredProcessor -and $AvailableNodes -contains $Orchestrator.PreferredProcessor -and $Node -ne $Orchestrator.PreferredProcessor) { + # only run on preferred processor when available + continue + } elseif ((!$Orchestrator.PreferredProcessor -or $AvailableNodes -notcontains $Orchestrator.PreferredProcessor) -and $Node -notin ('http', 'proc')) { + # Catchall function nodes + continue + } + } + + $Now = Get-Date + if ($ListAllTasks.IsPresent) { + $NextOccurrence = [datetime]$Cron.GetNextOccurrence($Now) } else { - $NextOccurrence = $NextOccurrences | Where-Object { $_ -gt $Status.LastOccurrence.DateTime.ToLocalTime() -and $_ -le (Get-Date) } | Select-Object -First 1 + $NextOccurrences = $Cron.GetNextOccurrences($Now.AddMinutes(-15), $Now.AddMinutes(15)) + if (!$Status -or $Status.LastOccurrence -eq 'Never') { + $NextOccurrence = $NextOccurrences | Where-Object { $_ -le (Get-Date) } | Select-Object -First 1 + } else { + $NextOccurrence = $NextOccurrences | Where-Object { $_ -gt $Status.LastOccurrence.DateTime.ToLocalTime() -and $_ -le (Get-Date) } | Select-Object -First 1 + } } - } - if (Get-Command -Name $Orchestrator.Command -Module CIPPCore -ErrorAction SilentlyContinue) { + if ($NextOccurrence -or $ListAllTasks.IsPresent) { if (!$Status) { $Status = [pscustomobject]@{ @@ -113,8 +118,9 @@ function Get-CIPPTimerFunctions { } Add-CIPPAzDataTableEntity @Table -Entity $Status -Force } else { + $Status.Command = $Orchestrator.Command if ($Orchestrator.IsSystem -eq $true -or $ResetToDefault.IsPresent) { - $Status.Cron = $CronString + $Status.Cron = $Orchestrator.Cron } $Status.NextOccurrence = $NextOccurrence.ToUniversalTime() $PreferredProcessor = $Orchestrator.PreferredProcessor ?? '' @@ -149,4 +155,11 @@ function Get-CIPPTimerFunctions { } } } + + foreach ($StaleStatus in $OrchestratorStatus) { + if ($Orchestrators.Id -notcontains $StaleStatus.RowKey) { + Write-Warning "Removing stale timer function entry: $($StaleStatus.RowKey)" + Remove-AzDataTableEntity @Table -Entity $StaleStatus + } + } } diff --git a/Modules/CIPPCore/Public/Get-CippDbRole.ps1 b/Modules/CIPPCore/Public/Get-CippDbRole.ps1 new file mode 100644 index 000000000000..02313a9a96ad --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippDbRole.ps1 @@ -0,0 +1,53 @@ +function Get-CippDbRole { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [switch]$IncludePrivilegedRoles, + + [Parameter(Mandatory = $false)] + [switch]$CisaHighlyPrivilegedRoles + ) + + $Roles = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'Roles' + + if ($IncludePrivilegedRoles) { + $PrivilegedRoleTemplateIds = @( + '62e90394-69f5-4237-9190-012177145e10', + '194ae4cb-b126-40b2-bd5b-6091b380977d', + '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3', + 'e8611ab8-c189-46e8-94e1-60213ab1f814', + '29232cdf-9323-42fd-ade2-1d097af3e4de', + 'b1be1c3e-b65d-4f19-8427-f6fa0d97feb9', + 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c', + 'fe930be7-5e62-47db-91af-98c3a49a38b1', + '729827e3-9c14-49f7-bb1b-9608f156bbb8', + '966707d0-3269-4727-9be2-8c3a10f19b9d', + 'b0f54661-2d74-4c50-afa3-1ec803f12efe', + '7be44c8a-adaf-4e2a-84d6-ab2649e08a13', + '158c047a-c907-4556-b7ef-446551a6b5f7', + 'c4e39bd9-1100-46d3-8c65-fb160da0071f', + '9f06204d-73c1-4d4c-880a-6edb90606fd8', + '17315797-102d-40b4-93e0-432062caca18', + '4a5d8f65-41da-4de4-8968-e035b65339cf', + '75941009-915a-4869-abe7-691bff18279e' + ) + $Roles = $Roles | Where-Object { $PrivilegedRoleTemplateIds -contains $_.RoletemplateId } + } + + if ($CisaHighlyPrivilegedRoles) { + $CisaRoleTemplateIds = @( + '62e90394-69f5-4237-9190-012177145e10', + '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3', + '29232cdf-9323-42fd-ade2-1d097af3e4de', + '729827e3-9c14-49f7-bb1b-9608f156bbb8', + '966707d0-3269-4727-9be2-8c3a10f19b9d', + 'b0f54661-2d74-4c50-afa3-1ec803f12efe' + ) + $Roles = $Roles | Where-Object { $CisaRoleTemplateIds -contains $_.RoletemplateId } + } + + return $Roles +} diff --git a/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 b/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 new file mode 100644 index 000000000000..907917fa69d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 @@ -0,0 +1,49 @@ +function Get-CippDbRoleMembers { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$RoleTemplateId + ) + + $RoleAssignments = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'RoleAssignmentScheduleInstances' + $RoleEligibilities = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'RoleEligibilitySchedules' + + $ActiveMembers = $RoleAssignments | Where-Object { + $_.roleDefinitionId -eq $RoleTemplateId -and $_.assignmentType -eq 'Assigned' + } + + $EligibleMembers = $RoleEligibilities | Where-Object { + $_.roleDefinitionId -eq $RoleTemplateId + } + + $AllMembers = [System.Collections.Generic.List[object]]::new() + + foreach ($member in $ActiveMembers) { + $memberObj = [PSCustomObject]@{ + id = $member.principalId + displayName = $member.principal.displayName + userPrincipalName = $member.principal.userPrincipalName + '@odata.type' = $member.principal.'@odata.type' + AssignmentType = 'Active' + } + $AllMembers.Add($memberObj) + } + + foreach ($member in $EligibleMembers) { + if ($AllMembers.id -notcontains $member.principalId) { + $memberObj = [PSCustomObject]@{ + id = $member.principalId + displayName = $member.principal.displayName + userPrincipalName = $member.principal.userPrincipalName + '@odata.type' = $member.principal.'@odata.type' + AssignmentType = 'Eligible' + } + $AllMembers.Add($memberObj) + } + } + + return $AllMembers +} diff --git a/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 new file mode 100644 index 000000000000..6de9dc5c25a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 @@ -0,0 +1,71 @@ +function Get-CippKeyVaultSecret { + <# + .SYNOPSIS + Retrieves a secret from Azure Key Vault using REST API (no Az.KeyVault module required) + + .DESCRIPTION + Lightweight replacement for Get-AzKeyVaultSecret that uses REST API directly. + Significantly faster as it doesn't require loading the Az.KeyVault module. + + .PARAMETER VaultName + Name of the Key Vault. If not provided, derives from WEBSITE_DEPLOYMENT_ID environment variable. + + .PARAMETER Name + Name of the secret to retrieve. + + .PARAMETER AsPlainText + Returns the secret value as plain text instead of SecureString. + + .EXAMPLE + Get-CippKeyVaultSecret -Name 'ApplicationID' -AsPlainText + + .EXAMPLE + Get-CippKeyVaultSecret -VaultName 'mykeyvault' -Name 'RefreshToken' -AsPlainText + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$VaultName, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $false)] + [switch]$AsPlainText + ) + + try { + # Derive vault name if not provided + if (-not $VaultName) { + if ($env:WEBSITE_DEPLOYMENT_ID) { + $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + } else { + throw "VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set" + } + } + + # Get access token for Key Vault + $token = Get-CIPPAzIdentityToken -ResourceUrl "https://vault.azure.net" + + # Call Key Vault REST API + $uri = "https://$VaultName.vault.azure.net/secrets/$Name`?api-version=7.4" + $response = Invoke-RestMethod -Uri $uri -Headers @{ + Authorization = "Bearer $token" + } -Method Get -ErrorAction Stop + + # Return based on AsPlainText switch + if ($AsPlainText) { + return $response.value + } else { + # Return object similar to Get-AzKeyVaultSecret for compatibility + return @{ + SecretValue = ($response.value | ConvertTo-SecureString -AsPlainText -Force) + Name = $Name + VaultName = $VaultName + } + } + } catch { + Write-Error "Failed to retrieve secret '$Name' from vault '$VaultName': $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 b/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 new file mode 100644 index 000000000000..2c361bf3e2bb --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 @@ -0,0 +1,43 @@ +function Clear-CIPPAzStorageQueue { + <# + .SYNOPSIS + Clears all messages from a specified Azure Storage Queue. + .DESCRIPTION + Issues a DELETE request to //messages via New-CIPPAzStorageRequest. + Returns a compact object with StatusCode, Headers, and Request Uri. + .PARAMETER Name + The name of the queue to clear. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage. + .EXAMPLE + Clear-CIPPAzStorageQueue -Name 'cippjta72-workitems' + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateNotNullOrEmpty()] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + if ($PSCmdlet.ShouldProcess($Name, 'Clear queue messages')) { + try { + $headers = @{ Accept = 'application/xml' } + $resp = New-CIPPAzStorageRequest -Service 'queue' -Resource ("$Name/messages") -Method 'DELETE' -Headers $headers -ConnectionString $ConnectionString + if ($null -eq $resp) { + # Fallback when no object returned: assume 204 if no exception was thrown + return [PSCustomObject]@{ StatusCode = 204; Headers = @{}; Uri = $null; Name = $Name } + } + # Normalize to concise output and include the queue name + $status = $null; $uri = $null; $hdrs = @{} + if ($resp.PSObject.Properties['StatusCode']) { $status = [int]$resp.StatusCode } + if ($resp.PSObject.Properties['Uri']) { $uri = $resp.Uri } + if ($resp.PSObject.Properties['Headers']) { $hdrs = $resp.Headers } + return [PSCustomObject]@{ Name = $Name; StatusCode = $status; Headers = $hdrs; Uri = $uri } + } catch { + throw $_ + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 b/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 index 1e5fda8371b9..698288f18598 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 @@ -4,15 +4,15 @@ function Convert-SKUname { Internal #> param( - $skuname, - $skuID, + $SkuName, + $SkuID, $ConvertTable ) if (!$ConvertTable) { - Set-Location (Get-Item $PSScriptRoot).Parent.FullName - $ConvertTable = Import-Csv ConversionTable.csv + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') } - if ($skuname) { $ReturnedName = ($ConvertTable | Where-Object { $_.String_Id -eq $skuname } | Select-Object -Last 1).'Product_Display_Name' } - if ($skuID) { $ReturnedName = ($ConvertTable | Where-Object { $_.guid -eq $skuid } | Select-Object -Last 1).'Product_Display_Name' } - if ($ReturnedName) { return $ReturnedName } else { return $skuname, $skuID } + if ($SkuName) { $ReturnedName = ($ConvertTable | Where-Object { $_.String_Id -eq $SkuName } | Select-Object -Last 1).'Product_Display_Name' } + if ($SkuID) { $ReturnedName = ($ConvertTable | Where-Object { $_.guid -eq $SkuID } | Select-Object -Last 1).'Product_Display_Name' } + if ($ReturnedName) { return $ReturnedName } else { return $SkuName, $SkuID } } diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 new file mode 100644 index 000000000000..54b2c332faa8 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 @@ -0,0 +1,35 @@ +function Get-CIPPAzFunctionAppSetting { + <# + .SYNOPSIS + Retrieves Azure Function App application settings via ARM REST using managed identity. + .PARAMETER Name + Function App name. + .PARAMETER ResourceGroupName + Resource group name. + .PARAMETER AccessToken + Optional bearer token to override Managed Identity. If provided, this token is used for Authorization. + .EXAMPLE + Get-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName, + + [Parameter(Mandatory = $false)] + [string]$AccessToken + ) + + $subscriptionId = Get-CIPPAzFunctionAppSubId + $apiVersion = '2024-11-01' + $uri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Web/sites/$Name/config/appsettings/list?api-version=$apiVersion" + + # ARM peculiarity: listing appsettings can require POST on some endpoints + $restParams = @{ Uri = $uri; Method = 'POST' } + if ($AccessToken) { $restParams.AccessToken = $AccessToken } + $resp = New-CIPPAzRestRequest @restParams + return $resp +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 new file mode 100644 index 000000000000..98418a2add4b --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 @@ -0,0 +1,15 @@ +function Get-CIPPAzFunctionAppSubId { + <# + .SYNOPSIS + Get the subscription ID for the current function app + .DESCRIPTION + Get the subscription ID for the current function app + .EXAMPLE + Get-CIPPAzFunctionAppSubId + #> + [CmdletBinding()] + param() + + $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 + return $SubscriptionId +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 new file mode 100644 index 000000000000..bcc7a0c44abf --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 @@ -0,0 +1,155 @@ +function Get-CIPPAzStorageContainer { + <# + .SYNOPSIS + Lists Azure Storage blob containers using Shared Key auth. + .DESCRIPTION + Uses New-CIPPAzStorageRequest to call the Blob service list API. + - Uses server-side 'prefix' when Name ends with a single trailing '*'. + - Builds container URIs from the connection string (standard, provided endpoint, emulator). + - Passes through container Properties returned by the service. + .PARAMETER Name + Container name filter. Supports wildcards (e.g., 'cipp*'). Defaults to '*'. + When the pattern ends with a single trailing '*' and contains no other wildcards, + a server-side 'prefix' is used for listing; otherwise client-side filtering is applied. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .EXAMPLE + Get-CIPPAzStorageContainer -Name 'cipp*' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false, Position = 0)] + [string]$Name = '*', + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + begin { + function Parse-ConnString { + param([string]$Conn) + $map = @{} + if (-not $Conn) { return $map } + foreach ($part in ($Conn -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $map[$matches[1]] = $matches[2] } + } + $map + } + + function Get-BlobBaseInfo { + param([hashtable]$ConnParams) + $service = 'blob' + $svcCap = [char]::ToUpper($service[0]) + $service.Substring(1) + $endpointKey = "${svcCap}Endpoint" + $provided = $ConnParams[$endpointKey] + $useDev = ($ConnParams['UseDevelopmentStorage'] -eq 'true') + $account = $ConnParams['AccountName'] + + if ($provided) { + $u = [System.Uri]::new($provided) + return [PSCustomObject]@{ + Scheme = $u.Scheme + Host = $u.Host + Port = $u.Port + Path = $u.AbsolutePath.TrimEnd('/') + Mode = 'ProvidedEndpoint' + Account = $account + } + } + + if ($useDev) { + return [PSCustomObject]@{ + Scheme = 'http' + Host = '127.0.0.1' + Port = 10000 + Path = $null + Mode = 'Emulator' + Account = ($account ?? 'devstoreaccount1') + } + } + + $suffix = $ConnParams['EndpointSuffix'] + if (-not $suffix) { $suffix = 'core.windows.net' } + $scheme = $ConnParams['DefaultEndpointsProtocol'] + if (-not $scheme) { $scheme = 'https' } + return [PSCustomObject]@{ + Scheme = $scheme + Host = "$account.blob.$suffix" + Port = -1 + Path = $null + Mode = 'Standard' + Account = $account + } + } + + function Build-ContainerUri { + param([pscustomobject]$BaseInfo, [string]$ContainerName) + $ub = [System.UriBuilder]::new() + $ub.Scheme = $BaseInfo.Scheme + $ub.Host = $BaseInfo.Host + if ($BaseInfo.Port -and $BaseInfo.Port -ne -1) { $ub.Port = [int]$BaseInfo.Port } + switch ($BaseInfo.Mode) { + 'ProvidedEndpoint' { + $prefixPath = $BaseInfo.Path + if ([string]::IsNullOrEmpty($prefixPath)) { $ub.Path = "/$ContainerName" } + else { $ub.Path = ("$prefixPath/$ContainerName").Replace('//', '/') } + } + 'Emulator' { $ub.Path = "$($BaseInfo.Account)/$ContainerName" } + default { $ub.Path = "/$ContainerName" } + } + $ub.Uri.AbsoluteUri + } + } + + process { + $connParams = Parse-ConnString -Conn $ConnectionString + $baseInfo = Get-BlobBaseInfo -ConnParams $connParams + + # Determine server-side prefix optimization + $serverPrefix = $null + $pattern = $Name + if ([string]::IsNullOrEmpty($pattern)) { $pattern = '*' } + $canUsePrefix = $false + if ($pattern.EndsWith('*') -and $pattern.IndexOfAny([char[]]@('*', '?')) -eq ($pattern.Length - 1)) { + $serverPrefix = $pattern.Substring(0, $pattern.Length - 1) + $canUsePrefix = $true + } + + $listParams = @{ Service = 'blob'; Component = 'list'; ConnectionString = $ConnectionString } + if ($canUsePrefix -and $serverPrefix) { $listParams['QueryParams'] = @{ prefix = $serverPrefix } } + + $containers = New-CIPPAzStorageRequest @listParams + if (-not $containers) { return @() } + + # Normalize to array of {Name, Properties} + $items = @() + foreach ($c in $containers) { + if ($null -ne $c -and $c.PSObject.Properties['Name']) { + $items += [PSCustomObject]@{ Name = $c.Name; Properties = $c.Properties } + } + } + + # Client-side wildcard filtering when needed + if (-not $canUsePrefix) { + $items = $items | Where-Object { $_.Name -like $pattern } + } + + $results = @() + foreach ($it in $items) { + $uri = Build-ContainerUri -BaseInfo $baseInfo -ContainerName $it.Name + $results += [PSCustomObject]@{ + Name = $it.Name + Uri = $uri + Properties = $it.Properties + } + } + + # Optional banner for UX parity when displayed directly + if ($results.Count -gt 0 -and $baseInfo.Account) { + Write-Host "\n Storage Account Name: $($baseInfo.Account)\n" -ForegroundColor DarkGray + } + + $results + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 new file mode 100644 index 000000000000..91e7c11077ad --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 @@ -0,0 +1,166 @@ +function Get-CIPPAzStorageQueue { + <# + .SYNOPSIS + Lists Azure Storage queues and approximate message counts using Shared Key auth. + .DESCRIPTION + Uses New-CIPPAzStorageRequest to call the Queue service REST API. + - Lists queues (optionally with server-side prefix when Name ends with '*'). + - Enriches each queue with ApproximateMessageCount via comp=metadata. + - Constructs queue URIs consistent with the resolved endpoint. + .PARAMETER Name + Queue name filter. Supports wildcards (e.g., 'cipp*'). Defaults to '*'. + When the pattern ends with a single trailing '*' and contains no other wildcards, + a server-side 'prefix' is used for listing; otherwise client-side filtering is applied. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .PARAMETER NoCount + If set, skips the metadata call and returns ApproximateMessageCount as $null. + .EXAMPLE + Get-CIPPAzStorageQueue -Name 'cippjta*' + Returns objects similar to Get-AzStorageQueue with Name, Uri, and ApproximateMessageCount. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false, Position = 0)] + [string]$Name = '*', + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage, + + [Parameter(Mandatory = $false)] + [switch]$NoCount + ) + + begin { + function Parse-ConnString { + param([string]$Conn) + $map = @{} + if (-not $Conn) { return $map } + foreach ($part in ($Conn -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $map[$matches[1]] = $matches[2] } + } + $map + } + + function Get-QueueBaseInfo { + param([hashtable]$ConnParams) + $service = 'queue' + $svcCap = [char]::ToUpper($service[0]) + $service.Substring(1) + $endpointKey = "${svcCap}Endpoint" + $provided = $ConnParams[$endpointKey] + $useDev = ($ConnParams['UseDevelopmentStorage'] -eq 'true') + $account = $ConnParams['AccountName'] + + if ($provided) { + $u = [System.Uri]::new($provided) + return [PSCustomObject]@{ + Scheme = $u.Scheme + Host = $u.Host + Port = $u.Port + Path = $u.AbsolutePath.TrimEnd('/') + Mode = 'ProvidedEndpoint' + Account = $account + } + } + + if ($useDev) { + return [PSCustomObject]@{ + Scheme = 'http' + Host = '127.0.0.1' + Port = 10001 + Path = $null + Mode = 'Emulator' + Account = ($account ?? 'devstoreaccount1') + } + } + + $suffix = $ConnParams['EndpointSuffix'] + if (-not $suffix) { $suffix = 'core.windows.net' } + $scheme = $ConnParams['DefaultEndpointsProtocol'] + if (-not $scheme) { $scheme = 'https' } + return [PSCustomObject]@{ + Scheme = $scheme + Host = "$account.queue.$suffix" + Port = -1 + Path = $null + Mode = 'Standard' + Account = $account + } + } + + function Build-QueueUri { + param([pscustomobject]$BaseInfo, [string]$QueueName) + $ub = [System.UriBuilder]::new() + $ub.Scheme = $BaseInfo.Scheme + $ub.Host = $BaseInfo.Host + if ($BaseInfo.Port -and $BaseInfo.Port -ne -1) { $ub.Port = [int]$BaseInfo.Port } + switch ($BaseInfo.Mode) { + 'ProvidedEndpoint' { + $prefixPath = $BaseInfo.Path + if ([string]::IsNullOrEmpty($prefixPath)) { $ub.Path = "/$QueueName" } + else { $ub.Path = ("$prefixPath/$QueueName").Replace('//', '/') } + } + 'Emulator' { $ub.Path = "$($BaseInfo.Account)/$QueueName" } + default { $ub.Path = "/$QueueName" } + } + $ub.Uri.AbsoluteUri + } + } + + process { + $connParams = Parse-ConnString -Conn $ConnectionString + $baseInfo = Get-QueueBaseInfo -ConnParams $connParams + + # Determine server-side prefix optimization + $serverPrefix = $null + $pattern = $Name + if ([string]::IsNullOrEmpty($pattern)) { $pattern = '*' } + $canUsePrefix = $false + if ($pattern.EndsWith('*') -and $pattern.IndexOfAny([char[]]@('*', '?')) -eq ($pattern.Length - 1)) { + $serverPrefix = $pattern.Substring(0, $pattern.Length - 1) + $canUsePrefix = $true + } + + $listParams = @{ Service = 'queue'; Component = 'list'; ConnectionString = $ConnectionString } + if ($canUsePrefix -and $serverPrefix) { $listParams['QueryParams'] = @{ prefix = $serverPrefix } } + + $queues = New-CIPPAzStorageRequest @listParams + if (-not $queues) { return @() } + + # Normalize to array of names + $queueItems = @() + foreach ($q in $queues) { + if ($null -ne $q -and $q.PSObject.Properties['Name']) { $queueItems += $q.Name } + } + + # Client-side wildcard filtering when needed + if (-not $canUsePrefix) { + $queueItems = $queueItems | Where-Object { $_ -like $pattern } + } + + $results = @() + foreach ($qn in $queueItems) { + $uri = Build-QueueUri -BaseInfo $baseInfo -QueueName $qn + $count = $null + if (-not $NoCount) { + try { + $meta = New-CIPPAzStorageRequest -Service 'queue' -Component 'metadata' -Resource $qn -ConnectionString $ConnectionString -Method 'GET' + if ($meta -and $meta.PSObject.Properties['ApproximateMessagesCount']) { $count = $meta.ApproximateMessagesCount } + } catch { $count = $null } + } + $results += [PSCustomObject]@{ + Name = $qn + Uri = $uri + ApproximateMessageCount = $count + } + } + + # Optional banner for UX parity when displayed directly + if ($results.Count -gt 0 -and $baseInfo.Account) { + Write-Host "\n Storage Account Name: $($baseInfo.Account)\n" -ForegroundColor DarkGray + } + + $results + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 index 3018d7abf23d..2ab308fc22c5 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 @@ -25,8 +25,8 @@ function Get-CippSamPermissions { if (!$SavedOnly.IsPresent) { $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase - $SamManifestFile = Get-Item (Join-Path $ModuleBase 'Public\SAMManifest.json') - $AdditionalPermissions = Get-Item (Join-Path $ModuleBase 'Public\AdditionalPermissions.json') + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') + $AdditionalPermissions = Get-Item (Join-Path $ModuleBase 'lib\data\AdditionalPermissions.json') $ServicePrincipalList = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/servicePrincipals?$top=999&$select=id,appId,displayName' -tenantid $env:TenantID -NoAuthCheck $true $SAMManifest = Get-Content -Path $SamManifestFile.FullName | ConvertFrom-Json diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 index 9a67193e698c..a568c38099f2 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 @@ -16,10 +16,7 @@ function Get-Tenants { [switch]$CleanOld, [string]$TenantFilter ) - #$caller = $MyInvocation.InvocationName - #$scriptName = $MyInvocation.ScriptName - #Write-Host "Called by: $caller" - #Write-Host "In script: $scriptName" + $TenantsTable = Get-CippTable -tablename 'Tenants' $ExcludedFilter = "PartitionKey eq 'Tenants' and Excluded eq true" @@ -61,7 +58,9 @@ function Get-Tenants { if ($CleanOld.IsPresent) { try { - $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active' and not startsWith(displayName,'MLT_')&`$select=customer,autoExtendDuration,endDateTime&`$top=300" -NoAuthCheck:$true + $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'&`$select=customer,autoExtendDuration,endDateTime" -NoAuthCheck:$true + # Filter out MLT relationships locally + $GDAPRelationships = $GDAPRelationships | Where-Object { $_.displayName -notlike 'MLT_*' } if (!$GDAPRelationships) { Write-LogMessage -API 'Get-Tenants' -message 'Tried cleaning old tenants but failed to get GDAP relationships - No relationships returned' -Sev 'Critical' throw 'Failed to get GDAP relationships for cleaning old tenants.' @@ -94,7 +93,9 @@ function Get-Tenants { throw 'RefreshToken not set. Cannot get tenant list.' } #get the full list of tenants - $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active' and not startsWith(displayName,'MLT_')$RelationshipFilter&`$select=customer,autoExtendDuration,endDateTime" -NoAuthCheck:$true + $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'$RelationshipFilter&`$select=customer,autoExtendDuration,endDateTime" -NoAuthCheck:$true + # Filter out MLT relationships locally + $GDAPRelationships = $GDAPRelationships | Where-Object { $_.displayName -notlike 'MLT_*' } Write-Host "GDAP relationships found: $($GDAPRelationships.Count)" Write-Information "GDAP relationships found: $($GDAPRelationships.Count)" $totalTenants = $GDAPRelationships.customer.tenantId | Select-Object -Unique @@ -273,5 +274,11 @@ function Get-Tenants { Add-CIPPAzDataTableEntity @TenantsTable -Entity $IncludedTenantsCache -Force | Out-Null } } + + # Limit tenant list to allowed tenants if set in script scope from New-CippCoreRequest + if ($script:CippAllowedTenantsStorage -and $script:CippAllowedTenantsStorage.Value) { + $IncludedTenantsCache = $IncludedTenantsCache | Where-Object { $script:CippAllowedTenantsStorage.Value -contains $_.customerId } + } + return $IncludedTenantsCache | Where-Object { ($null -ne $_.defaultDomainName -and ($_.defaultDomainName -notmatch 'Domain Error' -or $IncludeAll.IsPresent)) } | Where-Object $IncludedTenantFilter | Sort-Object -Property displayName } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 new file mode 100644 index 000000000000..248a94ee56ef --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 @@ -0,0 +1,333 @@ +function New-CIPPAzRestRequest { + <# + .SYNOPSIS + Create and send a REST request to Azure APIs using Managed Identity authentication + .DESCRIPTION + Wraps Invoke-RestMethod with automatic Azure Managed Identity token authentication. + Automatically adds the Authorization header using Get-CIPPAzIdentityToken. + Supports all Invoke-RestMethod parameters. + .PARAMETER Uri + The URI of the Azure REST API endpoint + .PARAMETER Method + The HTTP method (GET, POST, PUT, PATCH, DELETE, etc.). Defaults to GET. + .PARAMETER ResourceUrl + The Azure resource URL to get a token for. Defaults to 'https://management.azure.com/' for Azure Resource Manager. + Use 'https://vault.azure.net' for Key Vault, 'https://api.loganalytics.io' for Log Analytics, etc. + .PARAMETER AccessToken + Optional: A pre-acquired OAuth2 bearer token to use for Authorization. When provided, Managed Identity acquisition is skipped and this token is used as-is. + .PARAMETER Body + The request body (can be string, hashtable, or PSCustomObject) + .PARAMETER Headers + Additional headers to include in the request. Authorization header is automatically added. + .PARAMETER ContentType + The content type of the request body. Defaults to 'application/json' if Body is provided and ContentType is not specified. + .PARAMETER SkipHttpErrorCheck + Skip checking HTTP error status codes + .PARAMETER ResponseHeadersVariable + Variable name to store response headers + .PARAMETER StatusCodeVariable + Variable name to store HTTP status code + .PARAMETER MaximumRetryCount + Maximum number of retry attempts + .PARAMETER RetryIntervalSec + Interval between retries in seconds + .PARAMETER TimeoutSec + Request timeout in seconds + .PARAMETER UseBasicParsing + Use basic parsing (for older PowerShell versions) + .PARAMETER WebSession + Web session object for maintaining cookies/state + .PARAMETER MaxRetries + Maximum number of retry attempts for transient failures. Defaults to 3. + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{name}?api-version=2020-06-01' + Gets Azure Resource Manager resource using managed identity + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{name}/config/authsettingsV2/list?api-version=2020-06-01' -Method POST + POST request to Azure Resource Manager API + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://{vault}.vault.azure.net/secrets/{secret}?api-version=7.4' -ResourceUrl 'https://vault.azure.net' + Gets a Key Vault secret using managed identity + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/...' -Method PUT -Body @{ property = 'value' } -ContentType 'application/json' + PUT request with JSON body + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, Position = 0)] + [Alias('Url')] + [uri]$Uri, + + [Parameter(Mandatory = $false)] + [ValidateSet('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE')] + [string]$Method = 'GET', + + [Parameter(Mandatory = $false)] + [string]$ResourceUrl = 'https://management.azure.com/', + + [Parameter(Mandatory = $false)] + [string]$AccessToken, + + [Parameter(Mandatory = $false)] + [object]$Body, + + [Parameter(Mandatory = $false)] + [hashtable]$Headers = @{}, + + [Parameter(Mandatory = $false)] + [string]$ContentType = 'application/json', + + [Parameter(Mandatory = $false)] + [switch]$SkipHttpErrorCheck, + + [Parameter(Mandatory = $false)] + [string]$ResponseHeadersVariable, + + [Parameter(Mandatory = $false)] + [string]$StatusCodeVariable, + + [Parameter(Mandatory = $false)] + [int]$MaximumRetryCount, + + [Parameter(Mandatory = $false)] + [int]$RetryIntervalSec, + + [Parameter(Mandatory = $false)] + [int]$TimeoutSec, + + [Parameter(Mandatory = $false)] + [switch]$UseBasicParsing, + + [Parameter(Mandatory = $false)] + [Microsoft.PowerShell.Commands.WebRequestSession]$WebSession, + + [Parameter(Mandatory = $false)] + [int]$MaxRetries = 3 + ) + + # Resolve bearer token: prefer manually-supplied AccessToken, otherwise fetch via Managed Identity + $Token = $null + if ($AccessToken) { + $Token = $AccessToken + } else { + try { + $Token = Get-CIPPAzIdentityToken -ResourceUrl $ResourceUrl + } catch { + $errorMessage = "Failed to get Azure Managed Identity token: $($_.Exception.Message)" + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } + } + + # Build headers - add Authorization, merge with user-provided headers + $RequestHeaders = @{ + 'Authorization' = "Bearer $Token" + } + + # Merge user-provided headers (user headers take precedence) + foreach ($key in $Headers.Keys) { + $RequestHeaders[$key] = $Headers[$key] + } + + # Handle Content-Type + if ($Body -and -not $ContentType) { + $ContentType = 'application/json' + } + + # Convert Body to JSON if it's an object and ContentType is JSON + $RequestBody = $Body + if ($Body -and $ContentType -eq 'application/json' -and $Body -isnot [string]) { + try { + $RequestBody = $Body | ConvertTo-Json -Depth 10 -Compress + } catch { + Write-Warning "Failed to convert Body to JSON: $($_.Exception.Message). Sending as-is." + $RequestBody = $Body + } + } + + # Build Invoke-RestMethod parameters + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = $ErrorActionPreference + } + + if ($Body) { + $RestMethodParams['Body'] = $RequestBody + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + + if ($SkipHttpErrorCheck) { + $RestMethodParams['SkipHttpErrorCheck'] = $true + } + + if ($ResponseHeadersVariable) { + $RestMethodParams['ResponseHeadersVariable'] = $ResponseHeadersVariable + } + + if ($StatusCodeVariable) { + $RestMethodParams['StatusCodeVariable'] = $StatusCodeVariable + } + + if ($MaximumRetryCount) { + $RestMethodParams['MaximumRetryCount'] = $MaximumRetryCount + } + + if ($RetryIntervalSec) { + $RestMethodParams['RetryIntervalSec'] = $RetryIntervalSec + } + + if ($TimeoutSec) { + $RestMethodParams['TimeoutSec'] = $TimeoutSec + } + + if ($UseBasicParsing) { + $RestMethodParams['UseBasicParsing'] = $true + } + + if ($WebSession) { + $RestMethodParams['WebSession'] = $WebSession + } + + # Invoke the REST method with retry logic + $RetryCount = 0 + $RequestSuccessful = $false + $Message = $null + $MessageObj = $null + + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + + do { + try { + $Response = Invoke-RestMethod @RestMethodParams + $RequestSuccessful = $true + + # For compatibility with Invoke-AzRestMethod behavior, return object with Content property if response is a string + # Otherwise return the parsed object directly + if ($Response -is [string]) { + return [PSCustomObject]@{ + Content = $Response + } + } + + return $Response + } catch { + $ShouldRetry = $false + $WaitTime = 0 + + # Extract error message from JSON response if available + try { + if ($_.ErrorDetails.Message) { + $MessageObj = $_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($MessageObj.error) { + $MessageObj | Add-Member -NotePropertyName 'url' -NotePropertyValue $Uri -Force + $Message = if ($MessageObj.error.message) { + Get-NormalizedError -message $MessageObj.error.message + } elseif ($MessageObj.error.code) { + $MessageObj.error.code + } else { + $_.Exception.Message + } + } else { + $Message = Get-NormalizedError -message $_.ErrorDetails.Message + } + } else { + $Message = $_.Exception.Message + } + } catch { + $Message = $_.Exception.Message + } + + # If we couldn't extract a message, use the exception message + if ([string]::IsNullOrEmpty($Message)) { + $Message = $_.Exception.Message + $MessageObj = @{ + error = @{ + code = $_.Exception.GetType().FullName + message = $Message + url = $Uri + } + } + } + + # Check for 429 Too Many Requests (rate limiting) + if ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 429) { + $RetryAfterHeader = $_.Exception.Response.Headers['Retry-After'] + if ($RetryAfterHeader) { + $WaitTime = [int]$RetryAfterHeader + Write-Warning "Rate limited (429). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } elseif ($RetryCount -lt $MaxRetries) { + # Exponential backoff if no Retry-After header + $WaitTime = [Math]::Min([Math]::Pow(2, $RetryCount), 60) # Cap at 60 seconds + Write-Warning "Rate limited (429) without Retry-After header. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for 503 Service Unavailable or temporary errors + elseif ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 503) { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Service unavailable (503). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for "Resource temporarily unavailable" or other transient errors + elseif ($Message -like '*Resource temporarily unavailable*' -or $Message -like '*temporarily*' -or $Message -like '*timeout*') { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Transient error detected. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for 500/502/504 server errors (retryable) + elseif ($_.Exception.Response -and $_.Exception.Response.StatusCode -in @(500, 502, 504)) { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Server error ($($_.Exception.Response.StatusCode)). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + + # Retry if conditions are met + if ($ShouldRetry -and $RetryCount -lt $MaxRetries) { + $RetryCount++ + if ($WaitTime -gt 0) { + Start-Sleep -Seconds $WaitTime + } + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + } else { + # Final failure - build detailed error message + $errorMessage = "Azure REST API call failed: $Message" + if ($_.Exception.Response) { + $errorMessage += " (Status: $($_.Exception.Response.StatusCode))" + try { + $reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream()) + $responseBody = $reader.ReadToEnd() + $reader.Close() + if ($responseBody) { + $errorMessage += "`nResponse: $responseBody" + } + } catch { + # Ignore errors reading response stream + } + } + $errorMessage += "`nURI: $Uri" + + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } + } + } while (-not $RequestSuccessful -and $RetryCount -le $MaxRetries) + + # Should never reach here, but just in case + if (-not $RequestSuccessful) { + $errorMessage = "Azure REST API call failed after $MaxRetries attempts: $Message`nURI: $Uri" + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 new file mode 100644 index 000000000000..9f7f35d1eacb --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 @@ -0,0 +1,291 @@ +function New-CIPPAzServiceSAS { + [CmdletBinding()] param( + [Parameter(Mandatory = $true)] [string] $AccountName, + [Parameter(Mandatory = $true)] [string] $AccountKey, + [Parameter(Mandatory = $true)] [ValidateSet('blob', 'queue', 'file', 'table')] [string] $Service, + [Parameter(Mandatory = $true)] [string] $ResourcePath, + [Parameter(Mandatory = $true)] [string] $Permissions, + [Parameter(Mandatory = $false)] [DateTime] $StartTime, + [Parameter(Mandatory = $true)] [DateTime] $ExpiryTime, + [Parameter(Mandatory = $false)] [ValidateSet('http', 'https', 'https,http')] [string] $Protocol = 'https', + [Parameter(Mandatory = $false)] [string] $IP, + [Parameter(Mandatory = $false)] [string] $SignedIdentifier, + [Parameter(Mandatory = $false)] [string] $Version = '2022-11-02', + [Parameter(Mandatory = $false)] [ValidateSet('b', 'c', 'd', 'bv', 'bs', 'f', 's')] [string] $SignedResource, + [Parameter(Mandatory = $false)] [int] $DirectoryDepth, + [Parameter(Mandatory = $false)] [string] $SnapshotTime, + # Optional response header overrides (Blob/Files) + [Parameter(Mandatory = $false)] [string] $CacheControl, + [Parameter(Mandatory = $false)] [string] $ContentDisposition, + [Parameter(Mandatory = $false)] [string] $ContentEncoding, + [Parameter(Mandatory = $false)] [string] $ContentLanguage, + [Parameter(Mandatory = $false)] [string] $ContentType, + # Optional encryption scope (Blob, 2020-12-06+) + [Parameter(Mandatory = $false)] [string] $EncryptionScope, + # Optional connection string for endpoint/emulator support + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage + ) + + # Local helpers: canonicalized resource and signature (standalone) + function _GetCanonicalizedResource { + param( + [Parameter(Mandatory = $true)][string] $AccountName, + [Parameter(Mandatory = $true)][ValidateSet('blob', 'queue', 'file', 'table')] [string] $Service, + [Parameter(Mandatory = $true)][string] $ResourcePath + ) + $decodedPath = [System.Web.HttpUtility]::UrlDecode(($ResourcePath.TrimStart('/'))) + switch ($Service) { + 'blob' { return "/blob/$AccountName/$decodedPath" } + 'queue' { return "/queue/$AccountName/$decodedPath" } + 'file' { return "/file/$AccountName/$decodedPath" } + 'table' { return "/table/$AccountName/$decodedPath" } + } + } + + function _NewSharedKeySignature { + param( + [Parameter(Mandatory = $true)][string] $AccountKey, + [Parameter(Mandatory = $true)][string] $StringToSign + ) + $keyBytes = [Convert]::FromBase64String($AccountKey) + $hmac = [System.Security.Cryptography.HMACSHA256]::new($keyBytes) + try { + $bytes = [System.Text.Encoding]::UTF8.GetBytes($StringToSign) + $sig = $hmac.ComputeHash($bytes) + return [Convert]::ToBase64String($sig) + } finally { $hmac.Dispose() } + } + + # Parse connection string for emulator/provided endpoints + $ProvidedEndpoint = $null + $ProvidedPath = $null + $EmulatorHost = $null + $EndpointSuffix = 'core.windows.net' + + if ($ConnectionString) { + $conn = @{} + foreach ($part in ($ConnectionString -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $conn[$matches[1]] = $matches[2] } + } + if ($conn['EndpointSuffix']) { $EndpointSuffix = $conn['EndpointSuffix'] } + + $ServiceCapitalized = [char]::ToUpper($Service[0]) + $Service.Substring(1) + $EndpointKey = "${ServiceCapitalized}Endpoint" + if ($conn[$EndpointKey]) { + $ProvidedEndpoint = $conn[$EndpointKey] + $ep = [Uri]::new($ProvidedEndpoint) + $Protocol = $ep.Scheme + $EmulatorHost = $ep.Host + if ($ep.Port -ne -1) { $EmulatorHost = "$($ep.Host):$($ep.Port)" } + $ProvidedPath = $ep.AbsolutePath.TrimEnd('/') + } elseif ($conn['UseDevelopmentStorage'] -eq 'true') { + # Emulator defaults + if (-not $AccountName) { $AccountName = 'devstoreaccount1' } + if (-not $AccountKey) { $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' } + $Protocol = 'http' + $ports = @{ blob = 10000; queue = 10001; table = 10002 } + $EmulatorHost = "127.0.0.1:$($ports[$Service])" + } + } + + # Build the resource URI + if ($ResourcePath.StartsWith('/')) { $ResourcePath = $ResourcePath.TrimStart('/') } + $UriBuilder = [System.UriBuilder]::new() + $UriBuilder.Scheme = $Protocol + + if ($ProvidedEndpoint) { + # Use provided endpoint + its base path + if ($EmulatorHost -match '^(.+?):(\d+)$') { $UriBuilder.Host = $matches[1]; $UriBuilder.Port = [int]$matches[2] } + else { $UriBuilder.Host = $EmulatorHost } + $UriBuilder.Path = ("$ProvidedPath/$ResourcePath").Replace('//', '/') + } elseif ($EmulatorHost) { + # Emulator: include account name in path + if ($EmulatorHost -match '^(.+?):(\d+)$') { $UriBuilder.Host = $matches[1]; $UriBuilder.Port = [int]$matches[2] } + else { $UriBuilder.Host = $EmulatorHost } + $UriBuilder.Path = "$AccountName/$ResourcePath" + } else { + # Standard Azure endpoint + $UriBuilder.Host = "$AccountName.$Service.$EndpointSuffix" + $UriBuilder.Path = $ResourcePath + } + $uri = $UriBuilder.Uri + + # Canonicalized resource for SAS string-to-sign (service-name style, 2015-02-21+) + $canonicalizedResource = _GetCanonicalizedResource -AccountName $AccountName -Service $Service -ResourcePath $ResourcePath + + # Time formatting per SAS spec (ISO 8601 UTC) + function _FormatSasTime($dt) { + if ($null -eq $dt) { return '' } + if ($dt -is [string]) { + if ([string]::IsNullOrWhiteSpace($dt)) { return '' } + $parsed = [DateTime]::Parse($dt, [System.Globalization.CultureInfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::AssumeUniversal) + $utc = $parsed.ToUniversalTime() + return $utc.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + if ($dt -is [DateTime]) { + $utc = ([DateTime]$dt).ToUniversalTime() + return $utc.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + return '' + } + + $st = _FormatSasTime $StartTime + $se = _FormatSasTime $ExpiryTime + if ([string]::IsNullOrEmpty($se)) { throw 'ExpiryTime is required for SAS generation.' } + + # Assemble query parameters (service-specific) + $q = @{} + $q['sp'] = $Permissions + if ($st) { $q['st'] = $st } + $q['se'] = $se + if ($IP) { $q['sip'] = $IP } + if ($Protocol) { $q['spr'] = $Protocol } + if ($Version) { $q['sv'] = $Version } + if ($SignedIdentifier) { $q['si'] = $SignedIdentifier } + + # Blob/Files response headers overrides + if ($CacheControl) { $q['rscc'] = $CacheControl } + if ($ContentDisposition) { $q['rscd'] = $ContentDisposition } + if ($ContentEncoding) { $q['rsce'] = $ContentEncoding } + if ($ContentLanguage) { $q['rscl'] = $ContentLanguage } + if ($ContentType) { $q['rsct'] = $ContentType } + + # Resource-type specifics + $includeEncryptionScope = $false + if ($Service -eq 'blob') { + if (-not $SignedResource) { throw 'SignedResource (sr) is required for blob SAS: use b, c, d, bv, or bs.' } + $q['sr'] = $SignedResource + # Blob snapshot time uses the 'snapshot' parameter when applicable + if ($SnapshotTime) { $q['snapshot'] = $SnapshotTime } + if ($SignedResource -eq 'd') { + if ($null -eq $DirectoryDepth) { throw 'DirectoryDepth (sdd) is required when sr=d (Data Lake Hierarchical Namespace).' } + $q['sdd'] = [string]$DirectoryDepth + } + if ($EncryptionScope -and $Version -ge '2020-12-06') { + $q['ses'] = $EncryptionScope + $includeEncryptionScope = $true + } + } elseif ($Service -eq 'file') { + if (-not $SignedResource) { throw 'SignedResource (sr) is required for file SAS: use f or s.' } + $q['sr'] = $SignedResource + if ($SnapshotTime) { $q['sst'] = $SnapshotTime } + } elseif ($Service -eq 'table') { + # Table SAS may include ranges (spk/srk/epk/erk), omitted here unless future parameters are added + # Table also uses tn (table name) in query, but canonicalizedResource already includes table name + # We rely on canonicalizedResource and omit tn unless specified by callers via ResourcePath + } elseif ($Service -eq 'queue') { + # No sr for queue + } + + # Construct string-to-sign based on service and version + $StringToSign = $null + if ($Service -eq 'blob') { + # Version 2018-11-09 and later (optionally 2020-12-06 with encryption scope) + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + $q['sr'], + ($q.ContainsKey('snapshot') ? $q['snapshot'] : ''), + ($includeEncryptionScope ? $q['ses'] : ''), + ($q.ContainsKey('rscc') ? $q['rscc'] : ''), + ($q.ContainsKey('rscd') ? $q['rscd'] : ''), + ($q.ContainsKey('rsce') ? $q['rsce'] : ''), + ($q.ContainsKey('rscl') ? $q['rscl'] : ''), + ($q.ContainsKey('rsct') ? $q['rsct'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'file') { + # Use 2015-04-05+ format (no signedResource in string until 2018-11-09; we include response headers) + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + ($q.ContainsKey('rscc') ? $q['rscc'] : ''), + ($q.ContainsKey('rscd') ? $q['rscd'] : ''), + ($q.ContainsKey('rsce') ? $q['rsce'] : ''), + ($q.ContainsKey('rscl') ? $q['rscl'] : ''), + ($q.ContainsKey('rsct') ? $q['rsct'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'queue') { + # Version 2015-04-05 and later + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'table') { + # Version 2015-04-05 and later + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + '', # startingPartitionKey + '', # startingRowKey + '', # endingPartitionKey + '' # endingRowKey + ) + $StringToSign = ($fields -join "`n") + } + + # Generate signature using account key (HMAC-SHA256 over UTF-8 string-to-sign) + try { + $SignatureBase64 = _NewSharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign + } catch { + throw "Failed to create SAS signature: $($_.Exception.Message)" + } + + # Store signature; will be URL-encoded when assembling query + $q['sig'] = $SignatureBase64 + + # Compose ordered query for readability (common fields first) + $orderedKeys = @('sp', 'st', 'se', 'sip', 'spr', 'sv', 'sr', 'si', 'snapshot', 'ses', 'sdd', 'rscc', 'rscd', 'rsce', 'rscl', 'rsct', 'sig') + $parts = [System.Collections.Generic.List[string]]::new() + foreach ($k in $orderedKeys) { + if ($q.ContainsKey($k) -and -not [string]::IsNullOrEmpty($q[$k])) { + $parts.Add("$k=" + [System.Net.WebUtility]::UrlEncode($q[$k])) + } + } + # Include any remaining keys + foreach ($k in $q.Keys) { + if ($orderedKeys -notcontains $k) { + $parts.Add("$k=" + [System.Net.WebUtility]::UrlEncode($q[$k])) + } + } + + $token = '?' + ($parts -join '&') + + # Return structured output for debugging/usage + [PSCustomObject]@{ + Token = $token + Query = $q + CanonicalizedResource = $canonicalizedResource + StringToSign = $StringToSign + Version = $Version + Service = $Service + ResourceUri = $uri.AbsoluteUri + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 new file mode 100644 index 000000000000..96f2cd729593 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 @@ -0,0 +1,946 @@ +function New-CIPPAzStorageRequest { + <# + .SYNOPSIS + Create and send a REST request to Azure Storage APIs using Shared Key authorization + .DESCRIPTION + Wraps Invoke-RestMethod with automatic Azure Storage Shared Key authentication. + Parses AzureWebJobsStorage connection string and generates authorization headers. + Supports Blob, Queue, and Table storage services. + .PARAMETER Service + The Azure Storage service (blob, queue, table, file) + .PARAMETER Resource + The resource path (e.g., 'tables', 'myqueue/messages') + .PARAMETER QueryParams + Optional hashtable of query string parameters + .PARAMETER Method + The HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, etc.). Defaults to GET. + .PARAMETER Body + The request body (can be string, hashtable, or PSCustomObject) + .PARAMETER Headers + Additional headers to include in the request. Authorization header is automatically added. + .PARAMETER ContentType + The content type of the request body + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .PARAMETER MaxRetries + Maximum number of retry attempts for transient failures. Defaults to 3. + .EXAMPLE + New-CIPPStorageRequest -Service 'table' -Resource 'tables' + Lists all tables in storage account (returns PSObjects) + .EXAMPLE + New-CIPPStorageRequest -Service 'queue' -Resource 'myqueue/messages' -Method DELETE + Clears messages from a queue + .EXAMPLE + New-CIPPStorageRequest -Service 'queue' -Component 'list' + Lists queues (returns PSObjects with Name and optional Metadata) + .EXAMPLE + New-CIPPStorageRequest -Service 'blob' -Component 'list' + Lists blob containers (returns PSObjects with Name and Properties) + .LINK + https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateSet('blob', 'queue', 'table', 'file')] + [string]$Service, + + [Parameter(Mandatory = $false, Position = 1)] + [string]$Resource, + + [Parameter(Mandatory = $false, Position = 2)] + [string]$Component, + + [Parameter(Mandatory = $false)] + [hashtable]$QueryParams, + + [Parameter(Mandatory = $false)] + [ValidateSet('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS')] + [string]$Method = 'GET', + + [Parameter(Mandatory = $false)] + [object]$Body, + + [Parameter(Mandatory = $false)] + [hashtable]$Headers = @{}, + + [Parameter(Mandatory = $false)] + [string]$ContentType, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage, + + [Parameter(Mandatory = $false)] + [int]$MaxRetries = 3 + ) + + # Helper: robustly convert XML string to XmlDocument (handles BOM/whitespace) + function Convert-XmlStringToDocument { + param( + [Parameter(Mandatory = $true)][string]$XmlText + ) + # Normalize: trim leading BOM and whitespace + $normalized = $XmlText + # Remove UTF-8 BOM if present + if ($normalized.Length -gt 0 -and [int][char]$normalized[0] -eq 65279) { + $normalized = $normalized.Substring(1) + } + $normalized = $normalized.Trim() + + $settings = [System.Xml.XmlReaderSettings]::new() + $settings.IgnoreWhitespace = $true + $settings.DtdProcessing = [System.Xml.DtdProcessing]::Ignore + $sr = [System.IO.StringReader]::new($normalized) + try { + $xr = [System.Xml.XmlReader]::Create($sr, $settings) + $doc = [System.Xml.XmlDocument]::new() + $doc.Load($xr) + $xr.Dispose() + $sr.Dispose() + return $doc + } catch { + try { if ($xr) { $xr.Dispose() } } catch {} + try { if ($sr) { $sr.Dispose() } } catch {} + throw $_ + } + } + + # Helper: compute Shared Key HMAC-SHA256 signature (Base64 over UTF-8 string) + function New-SharedKeySignature { + param( + [Parameter(Mandatory = $true)][string]$AccountKey, + [Parameter(Mandatory = $true)][string]$StringToSign + ) + try { + $KeyBytes = [Convert]::FromBase64String($AccountKey) + $Hmac = [System.Security.Cryptography.HMACSHA256]::new($KeyBytes) + $StringBytes = [System.Text.Encoding]::UTF8.GetBytes($StringToSign) + $SignatureBytes = $Hmac.ComputeHash($StringBytes) + $Hmac.Dispose() + return [Convert]::ToBase64String($SignatureBytes) + } catch { + throw $_ + } + } + + # Helper: canonicalize x-ms-* headers (lowercase names, sort ascending, collapse whitespace) + function Get-CanonicalizedXmsHeaders { + param( + [Parameter(Mandatory = $true)][hashtable]$Headers + ) + $CanonicalizedHeadersList = [System.Collections.Generic.List[string]]::new() + $XmsHeaders = $Headers.Keys | Where-Object { $_ -like 'x-ms-*' } | Sort-Object + foreach ($Header in $XmsHeaders) { + $HeaderName = $Header.ToLowerInvariant() + $HeaderValue = $Headers[$Header] -replace '\s+', ' ' + $CanonicalizedHeadersList.Add("${HeaderName}:${HeaderValue}") + } + return ($CanonicalizedHeadersList -join "`n") + } + + # Helper: canonicalize resource for Shared Key + function Get-CanonicalizedResourceSharedKey { + param( + [Parameter(Mandatory = $true)][string]$AccountName, + [Parameter(Mandatory = $true)][uri]$Uri, + [switch]$TableFormat + ) + $CanonicalizedResource = "/$AccountName" + $Uri.AbsolutePath + if ($TableFormat) { + if ($Uri.Query) { + try { + $parsed = [System.Web.HttpUtility]::ParseQueryString($Uri.Query) + $compVal = $parsed['comp'] + if ($compVal) { $CanonicalizedResource += "?comp=$compVal" } + } catch { } + } + return $CanonicalizedResource + } + if ($Uri.Query) { + $ParsedQueryParams = [System.Web.HttpUtility]::ParseQueryString($Uri.Query) + $CanonicalizedParams = [System.Collections.Generic.List[string]]::new() + foreach ($Key in ($ParsedQueryParams.AllKeys | Sort-Object)) { + $Value = $ParsedQueryParams[$Key] + $CanonicalizedParams.Add("$($Key.ToLowerInvariant()):$Value") + } + if ($CanonicalizedParams.Count -gt 0) { + $CanonicalizedResource += "`n" + ($CanonicalizedParams -join "`n") + } + } + return $CanonicalizedResource + } + + # Helper: build StringToSign for Blob/Queue/File + function Get-StringToSignBlobQueueFile { + param( + [Parameter(Mandatory = $true)][string]$Method, + [Parameter()][string]$ContentType, + [Parameter(Mandatory = $true)][hashtable]$Headers, + [Parameter()][string]$CanonicalizedHeaders, + [Parameter(Mandatory = $true)][string]$CanonicalizedResource + ) + $ContentLengthString = '' + if ($Headers.ContainsKey('Content-Length')) { + $cl = [string]$Headers['Content-Length'] + if ($cl -ne '0') { $ContentLengthString = $cl } + } + $parts = @( + $Method.ToUpperInvariant() + if ($Headers['Content-Encoding']) { $Headers['Content-Encoding'] } else { '' } + if ($Headers['Content-Language']) { $Headers['Content-Language'] } else { '' } + $ContentLengthString + '' + if ($ContentType) { $ContentType } else { '' } + '' + if ($Headers['If-Modified-Since']) { $Headers['If-Modified-Since'] } else { '' } + if ($Headers['If-Match']) { $Headers['If-Match'] } else { '' } + if ($Headers['If-None-Match']) { $Headers['If-None-Match'] } else { '' } + if ($Headers['If-Unmodified-Since']) { $Headers['If-Unmodified-Since'] } else { '' } + if ($Headers['Range']) { $Headers['Range'] } else { '' } + ) + $str = ($parts -join "`n") + if ($CanonicalizedHeaders) { $str += "`n" + $CanonicalizedHeaders } + $str += "`n" + $CanonicalizedResource + return $str + } + + # Helper: build StringToSign for Table + function Get-StringToSignTable { + param( + [Parameter(Mandatory = $true)][string]$Method, + [Parameter()][string]$ContentType, + [Parameter(Mandatory = $true)][string]$Date, + [Parameter(Mandatory = $true)][string]$CanonicalizedResource + ) + $contentTypeForSign = if ($ContentType) { $ContentType } else { '' } + return ($Method.ToUpperInvariant() + "`n" + '' + "`n" + $contentTypeForSign + "`n" + $Date + "`n" + $CanonicalizedResource) + } + + # Parse connection string + try { + # Initialize variables + $ProvidedEndpoint = $null + $ProvidedPath = $null + $EmulatorHost = $null + $EndpointSuffix = $null + $Protocol = $null + + Write-Verbose 'Parsing connection string' + $ConnectionParams = @{} + $ConnectionString -split ';' | ForEach-Object { + $Part = $_.Trim() + if ($Part -and $Part -match '^(.+?)=(.+)$') { + $ConnectionParams[$matches[1]] = $matches[2] + } + } + + Write-Verbose "Connection string parsed. Keys: $($ConnectionParams.Keys -join ', ')" + + # For development storage, use default account name if not provided + if ($ConnectionParams['UseDevelopmentStorage'] -eq 'true') { + $AccountName = $ConnectionParams['AccountName'] ?? 'devstoreaccount1' + $AccountKey = $ConnectionParams['AccountKey'] ?? 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' + Write-Verbose 'Using development storage defaults' + } else { + $AccountName = $ConnectionParams['AccountName'] + $AccountKey = $ConnectionParams['AccountKey'] + } + + $AccountKeyMasked = if ($AccountKey) { '***' } else { 'NOT FOUND' } + + Write-Verbose "AccountName: $AccountName, AccountKey: $AccountKeyMasked" + + if (-not $AccountName) { + throw 'Connection string must contain AccountName' + } + + # For localhost (emulator), use default key if not provided + if (-not $AccountKey) { + if ($ConnectionParams[$EndpointKey] -and $ConnectionParams[$EndpointKey] -match '127\.0\.0\.1') { + $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' + Write-Verbose 'Using default emulator key for 127.0.0.1' + } else { + throw 'Connection string must contain AccountKey for non-emulator storage' + } + } + + # Check for service-specific endpoint (e.g., BlobEndpoint, QueueEndpoint, TableEndpoint) + $ServiceCapitalized = [char]::ToUpper($Service[0]) + $Service.Substring(1) + $EndpointKey = "${ServiceCapitalized}Endpoint" + $ProvidedEndpoint = $ConnectionParams[$EndpointKey] + + Write-Verbose "Looking for endpoint key: $EndpointKey" + + if ($ProvidedEndpoint) { + Write-Verbose "Found provided endpoint: $ProvidedEndpoint" + # Parse provided endpoint + $EndpointUri = [System.Uri]::new($ProvidedEndpoint) + $Protocol = $EndpointUri.Scheme + $EmulatorHost = "$($EndpointUri.Host)" + if ($EndpointUri.Port -ne -1) { + $EmulatorHost += ":$($EndpointUri.Port)" + } + # Path will be used for canonicalized resource + $ProvidedPath = $EndpointUri.AbsolutePath.TrimEnd('/') + Write-Verbose "Parsed endpoint - Protocol: $Protocol, Host: $EmulatorHost, Path: $ProvidedPath" + } + # Check for development storage emulator + elseif ($ConnectionParams['UseDevelopmentStorage'] -eq 'true') { + Write-Verbose 'Using development storage emulator' + $Protocol = 'http' + # Map service to emulator port + $ServicePorts = @{ + 'blob' = 10000 + 'queue' = 10001 + 'table' = 10002 + } + $EmulatorHost = "127.0.0.1:$($ServicePorts[$Service])" + Write-Verbose "Emulator host: $EmulatorHost" + } else { + Write-Verbose 'Using standard Azure Storage' + # Extract endpoint suffix and protocol + $EndpointSuffix = $ConnectionParams['EndpointSuffix'] + if (-not $EndpointSuffix) { + $EndpointSuffix = 'core.windows.net' + } + + $Protocol = $ConnectionParams['DefaultEndpointsProtocol'] + if (-not $Protocol) { + $Protocol = 'https' + } + Write-Verbose "Protocol: $Protocol, EndpointSuffix: $EndpointSuffix" + } + } catch { + Write-Error "Failed to parse connection string: $($_.Exception.Message)" + return + } + + # Build URI using UriBuilder + Write-Verbose "Building URI - Service: $Service, Resource: $Resource" + + # Treat Resource strictly as a path; only Component/QueryParams build queries + $ResourcePath = $Resource + $InlineQueryString = $null + if ($Component) { + $InlineQueryString = "comp=$Component" + Write-Verbose "Using component -> comp=$Component" + } + + $UriBuilder = [System.UriBuilder]::new() + $UriBuilder.Scheme = $Protocol + + if ($ProvidedEndpoint) { + # Use provided endpoint host - split host and port if present + if ($EmulatorHost -match '^(.+?):(\d+)$') { + $UriBuilder.Host = $matches[1] + $UriBuilder.Port = [int]$matches[2] + Write-Verbose "Set host with port - Host: $($matches[1]), Port: $($matches[2])" + } else { + $UriBuilder.Host = $EmulatorHost + } + # Build path from provided endpoint base + resource + $FullResourcePath = "$ProvidedPath/$ResourcePath".Replace('//', '/') + $UriBuilder.Path = $FullResourcePath + Write-Verbose "Using provided endpoint - Host: $EmulatorHost, Path: $FullResourcePath" + } elseif ($EmulatorHost) { + # Emulator without provided endpoint - split host and port if present + if ($EmulatorHost -match '^(.+?):(\d+)$') { + $UriBuilder.Host = $matches[1] + $UriBuilder.Port = [int]$matches[2] + Write-Verbose "Set host with port - Host: $($matches[1]), Port: $($matches[2])" + } else { + $UriBuilder.Host = $EmulatorHost + } + $UriBuilder.Path = "$AccountName/$ResourcePath" + Write-Verbose "Using emulator - Host: $EmulatorHost, Path: $AccountName/$ResourcePath" + } else { + # Standard Azure Storage + $UriBuilder.Host = "$AccountName.$Service.$EndpointSuffix" + $UriBuilder.Path = $ResourcePath + Write-Verbose "Using standard Azure Storage - Host: $AccountName.$Service.$EndpointSuffix, Path: $ResourcePath" + } + + # Build query string from both explicit QueryParams and inline query string + $QueryString = [System.Web.HttpUtility]::ParseQueryString('') + + # Add inline query string if present (from Component only) + if ($InlineQueryString) { + Write-Verbose "Adding inline query string: $InlineQueryString" + foreach ($Param in $InlineQueryString -split '&') { + $Key, $Value = $Param -split '=', 2 + $QueryString.Add([System.Web.HttpUtility]::UrlDecode($Key), [System.Web.HttpUtility]::UrlDecode($Value)) + } + } + + # Add explicit QueryParams + if ($QueryParams) { + Write-Verbose "Adding query parameters: $($QueryParams.Keys -join ', ')" + foreach ($Key in $QueryParams.Keys) { + $QueryString.Add($Key, $QueryParams[$Key]) + } + } + + # Ensure comp from Component is set even if QueryParams provided (QueryParams can override) + if ($Component -and -not $QueryString['comp']) { + $QueryString.Add('comp', $Component) + } + + if ($QueryString.Count -gt 0) { + $UriBuilder.Query = $QueryString.ToString() + Write-Verbose "Final query string: $($UriBuilder.Query)" + } + + $Uri = $UriBuilder.Uri + Write-Verbose "Final URI: $Uri" + + # Initialize request headers + $RequestHeaders = @{} + $currentDateRfc = [DateTime]::UtcNow.ToString('R', [System.Globalization.CultureInfo]::InvariantCulture) + # Default a recent stable service version if none supplied by caller (Blob/Queue/File) + $RequestHeaders['x-ms-version'] = '2023-11-03' + + # Add Table service specific headers + if ($Service -eq 'table') { + # Table service: align with Az (SharedKey). Table uses Date (never empty) and may also set x-ms-date to same value + $RequestHeaders['x-ms-date'] = $currentDateRfc + $RequestHeaders['Date'] = $currentDateRfc + $RequestHeaders['x-ms-version'] = '2017-07-29' + $RequestHeaders['Accept'] = 'application/json; odata=minimalmetadata' + $RequestHeaders['DataServiceVersion'] = '3.0;' + $RequestHeaders['MaxDataServiceVersion'] = '3.0;NetFx' + $RequestHeaders['Accept-Charset'] = 'utf-8' + } else { + # Blob/Queue/File use x-ms-date + $RequestHeaders['x-ms-date'] = $currentDateRfc + } + + # Build canonical headers and resource + $UtcNow = $currentDateRfc + + # Determine storage service headers already set; no unused version variable + + # Build canonicalized resource - format differs by service + if ($Service -eq 'table') { + # Table Service canonicalized resource + $CanonicalizedResource = Get-CanonicalizedResourceSharedKey -AccountName $AccountName -Uri $Uri -TableFormat + Write-Verbose "Table Service canonicalized resource: $CanonicalizedResource" + # Build string to sign for Table Service (SharedKey) + # Per docs, Table SharedKey DOES NOT include CanonicalizedHeaders. Date is never empty. + $StringToSign = Get-StringToSignTable -Method $Method -ContentType $ContentType -Date $RequestHeaders['Date'] -CanonicalizedResource $CanonicalizedResource + Write-Verbose 'Using SharedKey format (Table Service)' + + Write-Verbose "String to sign (escaped): $($StringToSign -replace "`n", '\n')" + Write-Verbose "String to sign length: $($StringToSign.Length)" + + # Generate signature + try { $Signature = New-SharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign; Write-Verbose "Generated signature: $Signature" } + catch { Write-Error "Failed to generate signature: $($_.Exception.Message)"; return } + + # Add authorization header + $RequestHeaders['Authorization'] = "SharedKey ${AccountName}:${Signature}" + Write-Verbose "Authorization header: SharedKey ${AccountName}:$($Signature.Substring(0, [Math]::Min(10, $Signature.Length)))..." + + # Headers for Table response already set (Accept minimalmetadata etc.) + + # Merge user-provided headers + foreach ($Key in $Headers.Keys) { + $RequestHeaders[$Key] = $Headers[$Key] + } + + # Build Invoke-RestMethod parameters for Table Service + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = 'Stop' + } + + if ($Body) { + if ($Body -is [string]) { + $RestMethodParams['Body'] = $Body + } elseif ($Body -is [byte[]]) { + $RestMethodParams['Body'] = $Body + } else { + $RestMethodParams['Body'] = ($Body | ConvertTo-Json -Depth 10 -Compress) + } + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + } else { + # Blob/Queue/File canonicalized resource + $CanonicalizedResource = Get-CanonicalizedResourceSharedKey -AccountName $AccountName -Uri $Uri + Write-Verbose "Blob/Queue/File canonicalized resource: $($CanonicalizedResource -replace "`n", ' | ')" + + # Do not force JSON Accept on blob/queue; service returns XML for list ops + if (-not $RequestHeaders.ContainsKey('Accept')) { + if ($Service -eq 'blob') { + $isList = (($Component -eq 'list') -or ($Uri.Query -match 'comp=list')) + if ($isList) { $RequestHeaders['Accept'] = 'application/xml' } + } elseif ($Service -eq 'queue') { + $RequestHeaders['Accept'] = 'application/xml' + } + # For Azure Files, avoid forcing Accept; binary downloads should be raw bytes + } + + # Merge user-provided headers (these override defaults) + foreach ($Key in $Headers.Keys) { + $RequestHeaders[$Key] = $Headers[$Key] + } + + # Add Content-Length for PUT/POST/PATCH + $ContentLength = 0 + if ($Body) { + if ($Body -is [string]) { + $ContentLength = [System.Text.Encoding]::UTF8.GetByteCount($Body) + } elseif ($Body -is [byte[]]) { + $ContentLength = $Body.Length + } else { + $BodyJson = $Body | ConvertTo-Json -Depth 10 -Compress + $ContentLength = [System.Text.Encoding]::UTF8.GetByteCount($BodyJson) + } + } + + if ($Method -in @('PUT', 'POST', 'PATCH')) { + $RequestHeaders['Content-Length'] = $ContentLength.ToString() + } + + # Blob upload: default to BlockBlob when performing a simple Put Blob (no comp parameter) + if ($Service -eq 'blob') { + $isCompSpecified = ($Component) -or ($Uri.Query -match 'comp=') + if ($Method -eq 'PUT' -and -not $isCompSpecified) { + if (-not $RequestHeaders.ContainsKey('x-ms-blob-type')) { $RequestHeaders['x-ms-blob-type'] = 'BlockBlob' } + } + } + + # Azure Files specific conveniences and validations + if ($Service -eq 'file') { + # Create file: PUT to file path without comp=range should specify x-ms-type and x-ms-content-length; body typically empty + $isRangeOp = ($Component -eq 'range') -or ($Uri.Query -match 'comp=range') + if ($Method -eq 'PUT' -and -not $isRangeOp) { + if (-not $RequestHeaders.ContainsKey('x-ms-type')) { $RequestHeaders['x-ms-type'] = 'file' } + # x-ms-content-length is required for create; if not provided by caller, try to infer from header Content-Length when body is empty + if (-not $RequestHeaders.ContainsKey('x-ms-content-length')) { + if ($ContentLength -eq 0) { + # Caller must supply x-ms-content-length for file size; fail fast for correctness + Write-Error 'Azure Files create operation requires header x-ms-content-length specifying file size in bytes.' + return + } else { + # If body present, assume immediate range upload is intended; advise using comp=range + Write-Verbose 'Body detected on Azure Files PUT without comp=range; consider using comp=range for content upload.' + } + } + } elseif ($Method -eq 'PUT' -and $isRangeOp) { + # Range upload must include x-ms-write and x-ms-range + if (-not $RequestHeaders.ContainsKey('x-ms-write')) { $RequestHeaders['x-ms-write'] = 'update' } + if (-not $RequestHeaders.ContainsKey('x-ms-range')) { + Write-Error 'Azure Files range upload requires header x-ms-range (e.g., bytes=0-).' + return + } + } + } + + # Build canonicalized headers (x-ms-*) + $CanonicalizedHeaders = Get-CanonicalizedXmsHeaders -Headers $RequestHeaders + + Write-Verbose "CanonicalizedHeaders: $($CanonicalizedHeaders -replace "`n", '\n')" + + # Build string to sign for Blob/Queue/File + $StringToSign = Get-StringToSignBlobQueueFile -Method $Method -ContentType $ContentType -Headers $RequestHeaders -CanonicalizedHeaders $CanonicalizedHeaders -CanonicalizedResource $CanonicalizedResource + Write-Verbose 'Using SharedKey format (Blob/Queue/File)' + + Write-Verbose "String to sign (escaped): $($StringToSign -replace "`n", '\n')" + Write-Verbose "String to sign length: $($StringToSign.Length)" + + # Generate signature + try { $Signature = New-SharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign; Write-Verbose "Generated signature: $Signature" } + catch { Write-Error "Failed to generate signature: $($_.Exception.Message)"; return } + + # Add authorization header + $RequestHeaders['Authorization'] = "SharedKey ${AccountName}:${Signature}" + Write-Verbose "Authorization header: SharedKey ${AccountName}:$($Signature.Substring(0, [Math]::Min(10, $Signature.Length)))..." + + # Build Invoke-RestMethod parameters + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = 'Stop' + } + + if ($Body) { + if ($Body -is [string]) { + $RestMethodParams['Body'] = $Body + } elseif ($Body -is [byte[]]) { + $RestMethodParams['Body'] = $Body + } else { + $RestMethodParams['Body'] = ($Body | ConvertTo-Json -Depth 10 -Compress) + } + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + } + + # Invoke with retry logic + $RetryCount = 0 + $RequestSuccessful = $false + + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + + $TriedAltTableAuth = $false + $UseInvokeWebRequest = $false + if ($Service -eq 'queue' -and (($Component -eq 'metadata') -or ($Uri.Query -match 'comp=metadata'))) { + # Use Invoke-WebRequest to access response headers for queue metadata + $UseInvokeWebRequest = $true + } elseif ($Method -eq 'DELETE') { + # For other DELETE operations across services, prefer capturing headers/status + $UseInvokeWebRequest = $true + } elseif ($Service -eq 'file' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=properties') -or ($Uri.Query -match 'comp=metadata'))) { + # For Azure Files binary downloads, use Invoke-WebRequest and return bytes + $UseInvokeWebRequest = $true + } elseif ($Service -eq 'blob' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=metadata') -or ($Uri.Query -match 'comp=properties'))) { + # For Blob binary downloads, use Invoke-WebRequest and return bytes (memory stream, no filesystem) + $UseInvokeWebRequest = $true + } + do { + try { + # Blob: binary GET returns bytes from RawContentStream + if ($UseInvokeWebRequest -and $Service -eq 'blob' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=metadata') -or ($Uri.Query -match 'comp=properties'))) { + Write-Verbose 'Processing Blob binary download' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $ms = [System.IO.MemoryStream]::new() + try { $resp.RawContentStream.CopyTo($ms) } catch { } + $bytes = $ms.ToArray() + $hdrHash = @{} + if ($resp -and $resp.Headers) { foreach ($key in $resp.Headers.Keys) { $hdrHash[$key] = $resp.Headers[$key] } } + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $Uri.AbsoluteUri } + return [PSCustomObject]@{ Bytes = $bytes; Length = $bytes.Length; Headers = $hdrHash; Uri = $reqUri } + } + # Azure Files: binary GET returns bytes + if ($UseInvokeWebRequest -and $Service -eq 'file' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=properties') -or ($Uri.Query -match 'comp=metadata'))) { + Write-Verbose 'Processing Azure Files binary download' + $tmp = [System.IO.Path]::GetTempFileName() + try { + $resp = Invoke-WebRequest @RestMethodParams -OutFile $tmp + $RequestSuccessful = $true + $bytes = [System.IO.File]::ReadAllBytes($tmp) + $hdrHash = @{} + if ($resp -and $resp.Headers) { foreach ($key in $resp.Headers.Keys) { $hdrHash[$key] = $resp.Headers[$key] } } + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $Uri.AbsoluteUri } + return [PSCustomObject]@{ Bytes = $bytes; Length = $bytes.Length; Headers = $hdrHash; Uri = $reqUri } + } finally { + try { if (Test-Path -LiteralPath $tmp) { Remove-Item -LiteralPath $tmp -Force -ErrorAction SilentlyContinue } } catch {} + } + } + # For queue comp=metadata, capture headers-only and return a compact object + if ($UseInvokeWebRequest -and $Service -eq 'queue' -and (($Component -eq 'metadata') -or ($Uri.Query -match 'comp=metadata'))) { + Write-Verbose 'Processing queue metadata response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $respHeaders = $null + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $approx = $null + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $null } + if ($respHeaders) { + $val = $null + if ($respHeaders.ContainsKey('x-ms-approximate-messages-count')) { + $val = $respHeaders['x-ms-approximate-messages-count'] + } else { + foreach ($key in $respHeaders.Keys) { if ($key -ieq 'x-ms-approximate-messages-count') { $val = $respHeaders[$key]; break } } + } + if ($null -ne $val) { + $approxStr = if ($val -is [array]) { if ($val.Length -gt 0) { $val[0] } else { $null } } else { $val } + if ($approxStr) { try { $approx = [int]$approxStr } catch { $approx = $null } } + } + } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ ApproximateMessagesCount = $approx; Headers = $hdrHash; Uri = $reqUri } + } + + # Queue clear messages: DELETE on //messages — return compact response + if ($UseInvokeWebRequest -and $Service -eq 'queue' -and $Method -eq 'DELETE' -and ($Uri.AbsolutePath.ToLower().EndsWith('/messages'))) { + Write-Verbose 'Processing queue clear messages response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $status = $null + $reqUri = $null + $respHeaders = $null + try { if ($resp -and $resp.StatusCode) { $status = [int]$resp.StatusCode } } catch { } + try { if (-not $status -and $resp -and $resp.BaseResponse) { $status = [int]$resp.BaseResponse.StatusCode } } catch { } + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { } + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ StatusCode = $status; Headers = $hdrHash; Uri = $reqUri } + } + + # Generic DELETE compact response across services + if ($UseInvokeWebRequest -and $Method -eq 'DELETE') { + Write-Verbose 'Processing generic DELETE response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $status = $null + $reqUri = $null + $respHeaders = $null + try { if ($resp -and $resp.StatusCode) { $status = [int]$resp.StatusCode } } catch { } + try { if (-not $status -and $resp -and $resp.BaseResponse) { $status = [int]$resp.BaseResponse.StatusCode } } catch { } + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { } + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ StatusCode = $status; Headers = $hdrHash; Uri = $reqUri } + } + + if ($UseInvokeWebRequest) { $Response = Invoke-WebRequest @RestMethodParams } + else { $Response = Invoke-RestMethod @RestMethodParams } + $RequestSuccessful = $true + + # Generic XML list parser: if response is XML string, parse into PSObjects + if ($Response -is [string]) { + $respText = $Response.Trim() + if ($respText.StartsWith(' + param( + $uri, + $tenantid, + $body, + $type = 'POST', + $scope, + $AsApp, + $NoAuthCheck, + $skipTokenCache, + $AddedHeaders, + $contentType, + $IgnoreErrors = $false, + $returnHeaders = $false, + $maxRetries = 1 + ) + if ($NoAuthCheck -or (Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp -SkipCache $skipTokenCache if ($AddedHeaders) { @@ -12,27 +28,39 @@ function New-GraphPOSTRequest ($uri, $tenantid, $body, $type, $scope, $AsApp, $N } } - if (!$type) { - $type = 'POST' + if (!$headers['User-Agent']) { + $headers['User-Agent'] = "CIPP/$($global:CippVersion ?? '1.0')" } - Write-Information "$($type.ToUpper()) [ $uri ] | tenant: $tenantid" - if (!$contentType) { $contentType = 'application/json; charset=utf-8' } - try { - $body = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $body -EscapeForJson - $ReturnedData = (Invoke-RestMethod -Uri $($uri) -Method $TYPE -Body $body -Headers $headers -ContentType $contentType -SkipHttpErrorCheck:$IgnoreErrors -ResponseHeadersVariable responseHeaders) - } catch { - $Message = if ($_.ErrorDetails.Message) { - Get-NormalizedError -Message $_.ErrorDetails.Message - } else { - $_.Exception.message + + $body = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $body -EscapeForJson + + $x = 0 + do { + try { + Write-Information "$($type.ToUpper()) [ $uri ] | tenant: $tenantid | attempt: $($x + 1) of $maxRetries" + $success = $false + $ReturnedData = (Invoke-RestMethod -Uri $($uri) -Method $TYPE -Body $body -Headers $headers -ContentType $contentType -SkipHttpErrorCheck:$IgnoreErrors -ResponseHeadersVariable responseHeaders) + $success = $true + } catch { + + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + $x++ + Start-Sleep -Seconds (2 * $x) } + } while (($x -lt $maxRetries) -and ($success -eq $false)) + if ($success -eq $false) { throw $Message } + if ($returnHeaders) { return $responseHeaders } else { diff --git a/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 new file mode 100644 index 000000000000..6f49587eff53 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 @@ -0,0 +1,39 @@ +function Remove-CIPPAzStorageContainer { + <# + .SYNOPSIS + Deletes an Azure Storage blob container. + .DESCRIPTION + Issues a DELETE request to /?restype=container via New-CIPPAzStorageRequest. + Returns a compact object with StatusCode, Headers, and Request Uri. + .PARAMETER Name + The name of the container to delete. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage. + .EXAMPLE + Remove-CIPPAzStorageContainer -Name 'cipp-largemessages' + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateNotNullOrEmpty()] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + if ($PSCmdlet.ShouldProcess($Name, 'Remove blob container')) { + try { + $headers = @{ Accept = 'application/xml' } + $resp = New-CIPPAzStorageRequest -Service 'blob' -Resource $Name -QueryParams @{ restype = 'container' } -Method 'DELETE' -Headers $headers -ConnectionString $ConnectionString + if ($null -eq $resp) { return [PSCustomObject]@{ Name = $Name; StatusCode = 202; Headers = @{}; Uri = $null } } + $status = $null; $uri = $null; $hdrs = @{} + if ($resp.PSObject.Properties['StatusCode']) { $status = [int]$resp.StatusCode } + if ($resp.PSObject.Properties['Uri']) { $uri = $resp.Uri } + if ($resp.PSObject.Properties['Headers']) { $hdrs = $resp.Headers } + return [PSCustomObject]@{ Name = $Name; StatusCode = $status; Headers = $hdrs; Uri = $uri } + } catch { + throw $_ + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 b/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 new file mode 100644 index 000000000000..e39c07e9e6cc --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 @@ -0,0 +1,86 @@ +function Update-CIPPAzFunctionAppSetting { + <# + .SYNOPSIS + Updates Azure Function App application settings via ARM REST using managed identity. + .PARAMETER Name + Function App name. + .PARAMETER ResourceGroupName + Resource group name. + .PARAMETER AppSetting + Hashtable of settings to set (key/value). Values should be strings. + .PARAMETER RemoveKeys + Optional array of setting keys to remove from the Function App configuration. Removals are applied after merging updates and before PUT. + .PARAMETER AccessToken + Optional bearer token to override Managed Identity. If provided, this token is used for Authorization. + .EXAMPLE + Update-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 -AppSetting @{ WEBSITE_TIME_ZONE = 'UTC' } + .EXAMPLE + Update-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 -AppSetting @{ WEBSITE_TIME_ZONE = 'UTC' } -RemoveKeys @('OLD_KEY','LEGACY_SETTING') + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName, + + [Parameter(Mandatory = $true)] + [hashtable]$AppSetting, + + [Parameter(Mandatory = $false)] + [string[]]$RemoveKeys, + + [Parameter(Mandatory = $false)] + [string]$AccessToken + ) + + # Build ARM URIs + $subscriptionId = Get-CIPPAzFunctionAppSubId + $apiVersion = '2024-11-01' + $updateUri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Web/sites/$Name/config/appsettings?api-version=$apiVersion" + + # Fetch current settings to avoid overwriting unrelated keys + $current = $null + try { + # Prefer the dedicated getter to handle ARM quirks + $GetSettings = @{ + Name = $Name + ResourceGroupName = $ResourceGroupName + } + if ($AccessToken) { $GetSettings.AccessToken = $AccessToken } + $current = Get-CIPPAzFunctionAppSetting @GetSettings + } catch { $current = $null } + $currentProps = @{} + if ($current -and $current.properties) { + # Handle PSCustomObject properties (JSON deserialization result) + if ($current.properties -is [hashtable]) { + foreach ($ck in $current.properties.Keys) { $currentProps[$ck] = [string]$current.properties[$ck] } + } else { + # PSCustomObject - enumerate using PSObject.Properties + foreach ($prop in $current.properties.PSObject.Properties) { + $currentProps[$prop.Name] = [string]$prop.Value + } + } + } + + # Merge requested settings + foreach ($k in $AppSetting.Keys) { $currentProps[$k] = [string]$AppSetting[$k] } + + # Apply removals if specified + if ($RemoveKeys -and $RemoveKeys.Count -gt 0) { + foreach ($rk in $RemoveKeys) { + if ($currentProps.ContainsKey($rk)) { + [void]$currentProps.Remove($rk) + } + } + } + $body = @{ properties = $currentProps } + + if ($PSCmdlet.ShouldProcess($Name, 'Update Function App settings')) { + $restParams = @{ Uri = $updateUri; Method = 'PUT'; Body = $body; ContentType = 'application/json' } + if ($AccessToken) { $restParams.AccessToken = $AccessToken } + $resp = New-CIPPAzRestRequest @restParams + return $resp + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 index c47827703549..8770aeca27b0 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 @@ -66,6 +66,19 @@ function Write-LogMessage { if ($tenantId) { $TableRow.Add('TenantID', [string]$tenantId) } + if ($script:CippStandardInfoStorage -and $script:CippStandardInfoStorage.Value) { + $TableRow.Standard = [string]$script:CippStandardInfoStorage.Value.Standard + $TableRow.StandardTemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + if ($script:CippStandardInfoStorage.Value.IntuneTemplateId) { + $TableRow.IntuneTemplateId = [string]$script:CippStandardInfoStorage.Value.IntuneTemplateId + } + if ($script:CippStandardInfoStorage.Value.ConditionalAccessTemplateId) { + $TableRow.ConditionalAccessTemplateId = [string]$script:CippStandardInfoStorage.Value.ConditionalAccessTemplateId + } + } + if ($script:CippScheduledTaskIdStorage -and $script:CippScheduledTaskIdStorage.Value) { + $TableRow.ScheduledTaskId = [string]$script:CippScheduledTaskIdStorage.Value + } $Table.Entity = $TableRow Add-CIPPAzDataTableEntity @Table | Out-Null diff --git a/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 b/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 index 19f5285ba619..7ca83d89a119 100644 --- a/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 +++ b/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 @@ -192,7 +192,8 @@ function Get-GraphRequestList { } else { $Filter = "PartitionKey eq '{0}' and (RowKey eq '{1}' or OriginalEntityId eq '{1}') and Timestamp ge datetime'{2}'" -f $PartitionKey, $TenantFilter, $Timestamp } - $Rows = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $Tenants = Get-Tenants -IncludeErrors + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $_.OriginalEntityId -in $Tenants.defaultDomainName -or $_.RowKey -in $Tenants.defaultDomainName } $Type = 'Cache' Write-Information "Table: $TableName | PK: $PartitionKey | Cached: $(($Rows | Measure-Object).Count) rows (Type: $($Type))" $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey diff --git a/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 index 1a0836dba0c2..67340eaf3ab5 100644 --- a/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 @@ -228,7 +228,7 @@ function New-CIPPAlertTemplate { $IntroText = $IntroText + "

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

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

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

$LocationTable" } - $IntroText = "$($data.ObjectId) has been added by $($data.UserId)." - $ButtonUrl = "$CIPPURL/tenant/administration/enterprise-apps?customerId=?customerId=$($data.OrganizationId)" + $IntroText = "$($data.ObjectId) has been removed by $($data.UserId)." + $ButtonUrl = "$CIPPURL/tenant/administration/applications/enterprise-apps?tenantFilter=$Tenant" $ButtonText = 'Enterprise Apps' } 'UserLoggedIn' { diff --git a/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 b/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 index ce7e8824fd3f..51c8b51f51a0 100644 --- a/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 @@ -38,6 +38,7 @@ function New-CIPPAssignmentFilter { [Parameter(Mandatory = $false)] [string]$ExecutingUser = 'CIPP' + ) try { @@ -45,11 +46,11 @@ function New-CIPPAssignmentFilter { # Build the request body for Graph API $BodyParams = [PSCustomObject]@{ - '@odata.type' = '#microsoft.graph.deviceAndAppManagementAssignmentFilter' - 'displayName' = $FilterObject.displayName - 'description' = $FilterObject.description ?? '' - 'platform' = $FilterObject.platform - 'rule' = $FilterObject.rule + '@odata.type' = '#microsoft.graph.deviceAndAppManagementAssignmentFilter' + 'displayName' = $FilterObject.displayName + 'description' = $FilterObject.description ?? '' + 'platform' = $FilterObject.platform + 'rule' = $FilterObject.rule 'assignmentFilterManagementType' = $FilterObject.assignmentFilterManagementType ?? 'devices' } diff --git a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 index 7d64760ad5c4..b3f8409ade3e 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 @@ -1,108 +1,184 @@ function New-CIPPBackup { [CmdletBinding(SupportsShouldProcess = $true)] param ( - $backupType, + [Parameter(Mandatory = $true)] + [ValidateSet('CIPP', 'Scheduled')] + [string]$backupType, + $StorageOutput = 'default', - $TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + $ScheduledBackupValues, $APIName = 'CIPP Backup', - $Headers + $Headers, + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage ) - $BackupData = switch ($backupType) { - #If backup type is CIPP, create CIPP backup. - 'CIPP' { - try { - $BackupTables = @( - 'AppPermissions' - 'AccessRoleGroups' - 'ApiClients' - 'CippReplacemap' - 'CustomData' - 'CustomRoles' - 'Config' - 'CommunityRepos' - 'Domains' - 'GraphPresets' - 'GDAPRoles' - 'GDAPRoleTemplates' - 'ExcludedLicenses' - 'templates' - 'standards' - 'SchedulerConfig' - 'Extensions' - 'WebhookRules' - 'ScheduledTasks' - 'TenantProperties' - ) - $CSVfile = foreach ($CSVTable in $BackupTables) { - $Table = Get-CippTable -tablename $CSVTable - Get-AzDataTableEntity @Table | Select-Object * -ExcludeProperty DomainAnalyser, table, Timestamp, ETag, Results | Select-Object *, @{l = 'table'; e = { $CSVTable } } - } - $RowKey = 'CIPPBackup' + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') - $CSVfile - $CSVFile = [string]($CSVfile | ConvertTo-Json -Compress -Depth 100) - $entity = @{ - PartitionKey = 'CIPPBackup' - RowKey = [string]$RowKey - TenantFilter = 'CIPPBackup' - Backup = $CSVfile - } - $Table = Get-CippTable -tablename 'CIPPBackup' + # Validate that TenantFilter is provided for Scheduled backups + if ($backupType -eq 'Scheduled' -and [string]::IsNullOrEmpty($TenantFilter)) { + throw 'TenantFilter is required for Scheduled backups' + } + + $State = 'Backup finished successfully' + $RowKey = $null + $BackupData = $null + $TableName = $null + $PartitionKey = $null + $ContainerName = $null + + try { + switch ($backupType) { + #If backup type is CIPP, create CIPP backup. + 'CIPP' { try { - if ($PSCmdlet.ShouldProcess('CIPP Backup', 'Create')) { - $null = Add-CIPPAzDataTableEntity @Table -Entity $entity -Force - Write-LogMessage -headers $Headers -API $APINAME -message 'Created CIPP Backup' -Sev 'Debug' + $BackupTables = @( + 'AppPermissions' + 'AccessRoleGroups' + 'ApiClients' + 'CippReplacemap' + 'CustomData' + 'CustomRoles' + 'Config' + 'CommunityRepos' + 'Domains' + 'GraphPresets' + 'GDAPRoles' + 'GDAPRoleTemplates' + 'ExcludedLicenses' + 'templates' + 'standards' + 'SchedulerConfig' + 'Extensions' + 'WebhookRules' + 'ScheduledTasks' + 'TenantProperties' + ) + $CSVfile = foreach ($CSVTable in $BackupTables) { + $Table = Get-CippTable -tablename $CSVTable + Get-AzDataTableEntity @Table | Select-Object * -ExcludeProperty DomainAnalyser, table, Timestamp, ETag, Results | Select-Object *, @{l = 'table'; e = { $CSVTable } } } + $RowKey = 'CIPPBackup' + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') + $BackupData = [string]($CSVfile | ConvertTo-Json -Compress -Depth 100) + $TableName = 'CIPPBackup' + $PartitionKey = 'CIPPBackup' + $ContainerName = 'cipp-backups' } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup for CIPP: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } } - - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } } - } - #If Backup type is ConditionalAccess, create Conditional Access backup. - 'Scheduled' { - #Do a sub switch here based on the ScheduledBackupValues? - #Store output in tablestorage for Recovery - $RowKey = $TenantFilter + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') - $entity = @{ - PartitionKey = 'ScheduledBackup' - RowKey = $RowKey - TenantFilter = $TenantFilter - } - Write-Information "Scheduled backup value psproperties: $(([pscustomobject]$ScheduledBackupValues).psobject.Properties)" - foreach ($ScheduledBackup in ([pscustomobject]$ScheduledBackupValues).psobject.Properties.Name) { + #If Backup type is Scheduled, create Scheduled backup. + 'Scheduled' { try { - $BackupResult = New-CIPPBackupTask -Task $ScheduledBackup -TenantFilter $TenantFilter | ConvertTo-Json -Depth 100 -Compress | Out-String - $entity[$ScheduledBackup] = "$BackupResult" + $RowKey = $TenantFilter + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') + $entity = @{ + PartitionKey = 'ScheduledBackup' + RowKey = $RowKey + TenantFilter = $TenantFilter + } + Write-Information "Scheduled backup value psproperties: $(([pscustomobject]$ScheduledBackupValues).psobject.Properties)" + foreach ($ScheduledBackup in ([pscustomobject]$ScheduledBackupValues).psobject.Properties.Name) { + try { + $BackupResult = New-CIPPBackupTask -Task $ScheduledBackup -TenantFilter $TenantFilter + $entity[$ScheduledBackup] = $BackupResult + } catch { + Write-Information "Failed to create backup for $ScheduledBackup - $($_.Exception.Message)" + } + } + $BackupData = $entity | ConvertTo-Json -Compress -Depth 100 + $TableName = 'ScheduledBackup' + $PartitionKey = 'ScheduledBackup' + $ContainerName = 'scheduled-backups' } catch { - Write-Information "Failed to create backup for $ScheduledBackup - $($_.Exception.Message)" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } } } - $Table = Get-CippTable -tablename 'ScheduledBackup' + } + + # Upload backup data to blob storage + $blobUrl = $null + try { + $containers = @() + try { $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' -ConnectionString $ConnectionString } catch { $containers = @() } + $exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null + if (-not $exists) { + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $ContainerName -Method 'PUT' -QueryParams @{ restype = 'container' } -ConnectionString $ConnectionString + Start-Sleep -Milliseconds 500 + } + $blobName = "$RowKey.json" + $resourcePath = "$ContainerName/$blobName" + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $resourcePath -Method 'PUT' -ContentType 'application/json; charset=utf-8' -Body $BackupData -ConnectionString $ConnectionString + + # Build full blob URL for storage in table try { - $null = Add-CIPPAzDataTableEntity @Table -entity $entity -Force - Write-LogMessage -headers $Headers -API $APINAME -message 'Created backup' -Sev 'Debug' - $State = 'Backup finished successfully' + $csParts = @{} + foreach ($p in ($ConnectionString -split ';')) { + if (-not [string]::IsNullOrWhiteSpace($p)) { + $kv = $p -split '=', 2 + if ($kv.Length -eq 2) { $csParts[$kv[0]] = $kv[1] } + } + } + + # Handle UseDevelopmentStorage=true (Azurite) + if ($csParts.ContainsKey('UseDevelopmentStorage') -and $csParts['UseDevelopmentStorage'] -eq 'true') { + $base = 'http://127.0.0.1:10000/devstoreaccount1' + } elseif ($csParts.ContainsKey('BlobEndpoint') -and $csParts['BlobEndpoint']) { + $base = ($csParts['BlobEndpoint']).TrimEnd('/') + } else { + $protocol = if ($csParts.ContainsKey('DefaultEndpointsProtocol') -and $csParts['DefaultEndpointsProtocol']) { $csParts['DefaultEndpointsProtocol'] } else { 'https' } + $suffix = if ($csParts.ContainsKey('EndpointSuffix') -and $csParts['EndpointSuffix']) { $csParts['EndpointSuffix'] } else { 'core.windows.net' } + $acct = $csParts['AccountName'] + if (-not $acct) { throw 'AccountName missing in ConnectionString' } + $base = "$protocol`://$acct.blob.$suffix" + } + $blobUrl = "$base/$resourcePath" } catch { - $State = 'Failed to write backup to table storage' - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create tenant backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + # If building full URL fails, fall back to resource path + $blobUrl = $resourcePath } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Blob upload failed: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } + # Write table entity pointing to blob resource + $entity = @{ + PartitionKey = $PartitionKey + RowKey = [string]$RowKey + Backup = $blobUrl + BackupIsBlob = $true + } + + if ($TenantFilter) { + $entity['TenantFilter'] = $TenantFilter + } + + $Table = Get-CippTable -tablename $TableName + try { + if ($PSCmdlet.ShouldProcess("$backupType Backup", 'Create')) { + $null = Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + Write-LogMessage -headers $Headers -API $APINAME -message "Created $backupType Backup (link stored)" -Sev 'Debug' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup for $backupType : $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + } + + return [pscustomobject]@{ + BackupName = $RowKey + BackupState = $State } - return @([pscustomobject]@{ - BackupName = $RowKey - BackupState = $State - }) } diff --git a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 index 1d824262d601..55f189947694 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 @@ -7,151 +7,154 @@ function New-CIPPBackupTask { $BackupData = switch ($Task) { 'CippCustomVariables' { - Write-Host "Backing up Custom Variables for $TenantFilter" - $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' - - # Get tenant-specific variables - $Tenant = Get-Tenants -TenantFilter $TenantFilter - $CustomerId = $Tenant.customerId - - $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId'" - - # If backing up AllTenants, also get global variables - if ($TenantFilter -eq 'AllTenants') { - $GlobalVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" - $AllVariables = @($TenantVariables) + @($GlobalVariables) - $AllVariables - } else { - $TenantVariables + Measure-CippTask -TaskName 'CustomVariables' -EventName 'CIPP.BackupCompleted' -Script { + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + + # Get tenant-specific variables + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId'" + + # If backing up AllTenants, also get global variables + if ($TenantFilter -eq 'AllTenants') { + $GlobalVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + $AllVariables = @($TenantVariables) + @($GlobalVariables) + $AllVariables + } else { + $TenantVariables + } } } 'users' { - Write-Host "Backup users for $TenantFilter" - $Users = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter | Select-Object * -ExcludeProperty mail, provisionedPlans, onPrem*, *passwordProfile*, *serviceProvisioningErrors*, isLicenseReconciliationNeeded, isManagementRestricted, isResourceAccount, *date*, *external*, identities, deletedDateTime, isSipEnabled, assignedPlans, cloudRealtimeCommunicationInfo, deviceKeys, provisionedPlan, securityIdentifier - #remove the property if the value is $null - $Users | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + Measure-CippTask -TaskName 'Users' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter | Select-Object * -ExcludeProperty mail, provisionedPlans, onPrem*, *passwordProfile*, *serviceProvisioningErrors*, isLicenseReconciliationNeeded, isManagementRestricted, isResourceAccount, *date*, *external*, identities, deletedDateTime, isSipEnabled, assignedPlans, cloudRealtimeCommunicationInfo, deviceKeys, provisionedPlan, securityIdentifier | ForEach-Object { + #remove the property if the value is $null + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } } - $Users } 'groups' { - Write-Host "Backup groups for $TenantFilter" - New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter + Measure-CippTask -TaskName 'Groups' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter + } } 'ca' { - Write-Host "Backup Conditional Access Policies for $TenantFilter" - $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -AsApp $true - Write-Host 'Creating templates for found Conditional Access Policies' - foreach ($policy in $policies) { - try { - New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy - } catch { - "Failed to create a template of the Conditional Access Policy with ID: $($policy.id). Error: $($_.Exception.Message)" + Measure-CippTask -TaskName 'ConditionalAccess' -EventName 'CIPP.BackupCompleted' -Script { + $preloadedUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=displayName,id" -tenantid $TenantFilter + $preloadedGroups = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=displayName,id" -tenantid $TenantFilter + $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -AsApp $true + foreach ($policy in $policies) { + try { + New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy -preloadedUsers $preloadedUsers -preloadedGroups $preloadedGroups + } catch { + "Failed to create a template of the Conditional Access Policy with ID: $($policy.id). Error: $($_.Exception.Message)" + } } } } 'intuneconfig' { - Write-Host "Backup Intune Configuration Policies for $TenantFilter" - $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" - 'https://graph.microsoft.com/beta/deviceManagement/windowsDriverUpdateProfiles' - "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" - "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" - 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdatePolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdateProfiles' - ) - - foreach ($url in $GraphURLS) { - try { - $Policies = New-GraphGetRequest -uri "$($url)" -tenantid $TenantFilter - $URLName = (($url).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' - foreach ($Policy in $Policies) { - try { - New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.ID - } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" + Measure-CippTask -TaskName 'IntuneConfiguration' -EventName 'CIPP.BackupCompleted' -Script { + $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" + 'https://graph.microsoft.com/beta/deviceManagement/windowsDriverUpdateProfiles' + "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" + "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" + 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' + 'https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles' + 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdatePolicies' + 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdateProfiles' + ) + + foreach ($url in $GraphURLS) { + try { + $Policies = New-GraphGetRequest -uri "$($url)" -tenantid $TenantFilter + $URLName = (($url).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' + foreach ($Policy in $Policies) { + try { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.ID + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" + } } + } catch { + Write-Host "Failed to backup $url" } - } catch { - Write-Host "Failed to backup $url" } } } 'intunecompliance' { - Write-Host "Backup Intune Configuration Policies for $TenantFilter" - - New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $_.ID + Measure-CippTask -TaskName 'IntuneCompliance' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $_.ID + } } } 'intuneprotection' { - Write-Host "Backup Intune Configuration Policies for $TenantFilter" - - New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $_.ID + Measure-CippTask -TaskName 'IntuneProtection' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $_.ID + } } } 'antispam' { - Write-Host "Backup Anti-Spam Policies for $TenantFilter" - - $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* - $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* - - $Policies | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + Measure-CippTask -TaskName 'AntiSpam' -EventName 'CIPP.BackupCompleted' -Script { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $Rules | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $JSON = @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 - $JSON + @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 + } } 'antiphishing' { - Write-Host "Backup Anti-Phishing Policies for $TenantFilter" - - $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* - $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* - - $Policies | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + Measure-CippTask -TaskName 'AntiPhishing' -EventName 'CIPP.BackupCompleted' -Script { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $Rules | ForEach-Object { - $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { - $_.psobject.properties.Remove($_.Name) + $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ } - } - $JSON = @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 - $JSON + @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 + } } 'CippWebhookAlerts' { - Write-Host "Backup Webhook Alerts for $TenantFilter" - $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' - Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $TenantFilter -in ($_.Tenants | ConvertFrom-Json).value } + Measure-CippTask -TaskName 'WebhookAlerts' -EventName 'CIPP.BackupCompleted' -Script { + $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' + Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $TenantFilter -in ($_.Tenants | ConvertFrom-Json).value } + } } 'CippScriptedAlerts' { - Write-Host "Backup Scripted Alerts for $TenantFilter" - $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' - Get-CIPPAzDataTableEntity @ScheduledTasks | Where-Object { $_.hidden -eq $true -and $_.command -like 'Get-CippAlert*' -and $TenantFilter -in $_.Tenant } + Measure-CippTask -TaskName 'ScriptedAlerts' -EventName 'CIPP.BackupCompleted' -Script { + $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' + Get-CIPPAzDataTableEntity @ScheduledTasks | Where-Object { $_.hidden -eq $true -and $_.command -like 'Get-CippAlert*' -and $TenantFilter -in $_.Tenant } + } } } + return $BackupData } diff --git a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 index dda1e9829d22..515c4c4934d8 100644 --- a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 @@ -8,12 +8,11 @@ function New-CIPPCAPolicy { $Overwrite, $ReplacePattern = 'none', $DisableSD = $false, + $CreateGroups = $false, $APIName = 'Create CA Policy', $Headers ) - $User = $Request.Headers - function Remove-EmptyArrays ($Object) { if ($Object -is [Array]) { foreach ($Item in $Object) { Remove-EmptyArrays $Item } @@ -39,21 +38,43 @@ function New-CIPPCAPolicy { } # Helper function to replace group display names with GUIDs function Replace-GroupNameWithId { - param($groupNames) + param($TenantFilter, $groupNames, $CreateGroups, $GroupTemplates) $GroupIds = [System.Collections.Generic.List[string]]::new() $groupNames | ForEach-Object { if (Test-IsGuid $_) { - Write-LogMessage -Headers $User -API 'Create CA Policy' -message "Already GUID, no need to replace: $_" -Sev 'Debug' + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Already GUID, no need to replace: $_" -Sev 'Debug' $GroupIds.Add($_) # it's a GUID, so we keep it } else { $groupId = ($groups | Where-Object -Property displayName -EQ $_).id # it's a display name, so we get the group ID if ($groupId) { foreach ($gid in $groupId) { Write-Warning "Replaced group name $_ with ID $gid" - $null = Write-LogMessage -Headers $User -API 'Create CA Policy' -message "Replaced group name $_ with ID $gid" -Sev 'Debug' + $null = Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Replaced group name $_ with ID $gid" -Sev 'Debug' $GroupIds.Add($gid) # add the ID to the list } + } elseif ($CreateGroups) { + Write-Warning "Creating group $_ as it does not exist in the tenant" + if ($GroupTemplates.displayName -eq $_) { + Write-Information "Creating group from template for $_" + $GroupTemplate = $GroupTemplates | Where-Object -Property displayName -EQ $_ + $NewGroup = New-CIPPGroup -GroupObject $GroupTemplate -TenantFilter $TenantFilter -APIName 'New-CIPPCAPolicy' + $GroupIds.Add($NewGroup.GroupId) + } else { + Write-Information "No template found, creating security group for $_" + $username = $_ -replace '[^a-zA-Z0-9]', '' + if ($username.Length -gt 64) { + $username = $username.Substring(0, 64) + } + $GroupObject = @{ + groupType = 'generic' + displayName = $_ + username = $username + securityEnabled = $true + } + $NewGroup = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $TenantFilter -APIName 'New-CIPPCAPolicy' + $GroupIds.Add($NewGroup.GroupId) + } } else { Write-Warning "Group $_ not found in the tenant" } @@ -118,21 +139,64 @@ function New-CIPPCAPolicy { } } + #if we have excluded or included applications, we need to remove any appIds that do not have a service principal in the tenant + + if (($JSONobj.conditions.applications.includeApplications -and $JSONobj.conditions.applications.includeApplications -notcontains 'All') -or ($JSONobj.conditions.applications.excludeApplications -and $JSONobj.conditions.applications.excludeApplications -notcontains 'All')) { + $AllServicePrincipals = New-GraphGETRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals?$select=appId' -tenantid $TenantFilter -asApp $true + + $ReservedApplicationNames = @('none', 'All', 'Office365', 'MicrosoftAdminPortals') + + if ($JSONobj.conditions.applications.excludeApplications -and $JSONobj.conditions.applications.excludeApplications -notcontains 'All') { + $ValidExclusions = [system.collections.generic.list[string]]::new() + foreach ($appId in $JSONobj.conditions.applications.excludeApplications) { + if ($AllServicePrincipals.appId -contains $appId -or $ReservedApplicationNames -contains $appId) { + $ValidExclusions.Add($appId) + } + } + $JSONobj.conditions.applications.excludeApplications = $ValidExclusions + } + if ($JSONobj.conditions.applications.includeApplications -and $JSONobj.conditions.applications.includeApplications -notcontains 'All') { + $ValidInclusions = [system.collections.generic.list[string]]::new() + foreach ($appId in $JSONobj.conditions.applications.includeApplications) { + if ($AllServicePrincipals.appId -contains $appId -or $ReservedApplicationNames -contains $appId) { + $ValidInclusions.Add($appId) + } + } + $JSONobj.conditions.applications.includeApplications = $ValidInclusions + } + } + #for each of the locations, check if they exist, if not create them. These are in $JSONobj.LocationInfo $LocationLookupTable = foreach ($locations in $JSONobj.LocationInfo) { if (!$locations) { continue } foreach ($location in $locations) { if (!$location.displayName) { continue } - $CheckExististing = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter -asApp $true - if ($Location.displayName -in $CheckExististing.displayName) { + $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter -asApp $true + if ($Location.displayName -in $CheckExisting.displayName) { + $ExistingLocation = $CheckExisting | Where-Object -Property displayName -EQ $Location.displayName + if ($Overwrite) { + $LocationUpdate = $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $LocationUpdate + $Body = ConvertTo-Json -InputObject $LocationUpdate -Depth 10 + try { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$($ExistingLocation.id)" -body $body -Type PATCH -tenantid $tenantfilter -asApp $true + Write-LogMessage -Tenant $TenantFilter -Headers $User -API $APINAME -message "Updated existing Named Location: $($location.displayName)" -Sev 'Info' + } catch { + Write-Warning "Failed to update location $($location.displayName): $_" + Write-LogMessage -Tenant $TenantFilter -Headers $User -API $APINAME -message "Failed to update existing Named Location: $($location.displayName). Error: $_" -Sev 'Error' + } + } else { + Write-LogMessage -Tenant $TenantFilter -Headers $User -API $APINAME -message "Matched a CA policy with the existing Named Location: $($location.displayName)" -Sev 'Info' + } [pscustomobject]@{ - id = ($CheckExististing | Where-Object -Property displayName -EQ $Location.displayName).id - name = ($CheckExististing | Where-Object -Property displayName -EQ $Location.displayName).displayName + id = $ExistingLocation.id + name = $ExistingLocation.displayName + templateId = $location.id } - Write-LogMessage -Headers $User -API $APINAME -message "Matched a CA policy with the existing Named Location: $($location.displayName)" -Sev 'Info' - } else { if ($location.countriesAndRegions) { $location.countriesAndRegions = @($location.countriesAndRegions) } + $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $location $Body = ConvertTo-Json -InputObject $Location $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -body $body -Type POST -tenantid $tenantfilter -asApp $true $retryCount = 0 @@ -143,7 +207,7 @@ function New-CIPPCAPolicy { Start-Sleep -Seconds 2 $retryCount++ } while ((!$LocationRequest -or !$LocationRequest.id) -and ($retryCount -lt 5)) - Write-LogMessage -Headers $User -API $APINAME -message "Created new Named Location: $($location.displayName)" -Sev 'Info' + Write-LogMessage -Tenant $TenantFilter -Headers $User -API $APINAME -message "Created new Named Location: $($location.displayName)" -Sev 'Info' [pscustomobject]@{ id = $GraphRequest.id name = $GraphRequest.displayName @@ -151,19 +215,23 @@ function New-CIPPCAPolicy { } } } + Write-Information 'Location Lookup Table:' + Write-Information ($LocationLookupTable | ConvertTo-Json -Depth 10) foreach ($location in $JSONobj.conditions.locations.includeLocations) { - Write-Information "Replacing named location - $location" - $lookup = $LocationLookupTable | Where-Object -Property name -EQ $location - Write-Information "Found $lookup" + if ($null -eq $location) { continue } + $lookup = $LocationLookupTable | Where-Object { $_.name -eq $location -or $_.displayName -eq $location -or $_.templateId -eq $location } if (!$lookup) { continue } + Write-Information "Replacing named location - $location" $index = [array]::IndexOf($JSONobj.conditions.locations.includeLocations, $location) $JSONobj.conditions.locations.includeLocations[$index] = $lookup.id } foreach ($location in $JSONobj.conditions.locations.excludeLocations) { - $lookup = $LocationLookupTable | Where-Object -Property name -EQ $location + if ($null -eq $location) { continue } + $lookup = $LocationLookupTable | Where-Object { $_.name -eq $location -or $_.displayName -eq $location -or $_.templateId -eq $location } if (!$lookup) { continue } + Write-Information "Replacing named location - $location" $index = [array]::IndexOf($JSONobj.conditions.locations.excludeLocations, $location) $JSONobj.conditions.locations.excludeLocations[$index] = $lookup.id } @@ -180,10 +248,31 @@ function New-CIPPCAPolicy { if ($JSONobj.conditions.users.excludeGroups) { $JSONobj.conditions.users.excludeGroups = @() } } 'displayName' { + $TemplatesTable = Get-CIPPTable -tablename 'templates' + $GroupTemplates = Get-CIPPAzDataTableEntity @TemplatesTable -filter "PartitionKey eq 'GroupTemplate'" | ForEach-Object { + if ($_.JSON -and (Test-Json -Json $_.JSON -ErrorAction SilentlyContinue)) { + $Group = $_.JSON | ConvertFrom-Json + $Group + } + } try { Write-Information 'Replacement pattern for inclusions and exclusions is displayName.' - $users = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/users?$select=id,displayName' -tenantid $TenantFilter -asApp $true - $groups = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName' -tenantid $TenantFilter -asApp $true + $Requests = @( + @{ + url = 'users?$select=id,displayName&$top=999' + method = 'GET' + id = 'users' + } + @{ + url = 'groups?$select=id,displayName&$top=999' + method = 'GET' + id = 'groups' + } + ) + $BulkResults = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true + + $users = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value + $groups = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value foreach ($userType in 'includeUsers', 'excludeUsers') { if ($JSONobj.conditions.users.PSObject.Properties.Name -contains $userType -and $JSONobj.conditions.users.$userType -notin 'All', 'None', 'GuestOrExternalUsers') { @@ -194,12 +283,12 @@ function New-CIPPCAPolicy { # Check the included and excluded groups foreach ($groupType in 'includeGroups', 'excludeGroups') { if ($JSONobj.conditions.users.PSObject.Properties.Name -contains $groupType) { - $JSONobj.conditions.users.$groupType = @(Replace-GroupNameWithId -groupNames $JSONobj.conditions.users.$groupType) + $JSONobj.conditions.users.$groupType = @(Replace-GroupNameWithId -groupNames $JSONobj.conditions.users.$groupType -CreateGroups $CreateGroups -TenantFilter $TenantFilter -GroupTemplates $GroupTemplates) } } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to replace displayNames for conditional access rule $($JSONobj.displayName). Error: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Failed to replace displayNames for conditional access rule $($JSONobj.displayName). Error: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage throw "Failed to replace displayNames for conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" } } @@ -229,8 +318,8 @@ function New-CIPPCAPolicy { #Send request to disable security defaults. $body = '{ "isEnabled": false }' try { - $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -Type patch -Body $body -asApp $true -ContentType 'application/json' - Write-LogMessage -Headers $User -API 'Create CA Policy' -tenant $($Tenant) -message "Disabled Security Defaults for tenant $($TenantFilter)" -Sev 'Info' + $null = New-GraphPostRequest -tenantid $TenantFilter -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -Type patch -Body $body -asApp $true -ContentType 'application/json' + Write-LogMessage -Headers $User -API 'Create CA Policy' -tenant $TenantFilter -message "Disabled Security Defaults for tenant $($TenantFilter)" -Sev 'Info' Start-Sleep 3 } catch { $ErrorMessage = Get-CippException -Exception $_ @@ -241,18 +330,42 @@ function New-CIPPCAPolicy { Write-Information $RawJSON try { Write-Information 'Checking for existing policies' - $CheckExististing = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $TenantFilter -asApp $true | Where-Object -Property displayName -EQ $displayname - if ($CheckExististing) { + $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $TenantFilter -asApp $true | Where-Object -Property displayName -EQ $displayname + if ($CheckExisting) { if ($Overwrite -ne $true) { throw "Conditional Access Policy with Display Name $($Displayname) Already exists" return $false } else { if ($State -eq 'donotchange') { - $JSONobj.state = $CheckExististing.state + $JSONobj.state = $CheckExisting.state $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress } - Write-Information "overwriting $($CheckExististing.id)" - $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExististing.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -asApp $true + # Preserve any exclusion groups named "Vacation Exclusion - " from existing policy + try { + $ExistingVacationGroup = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=startsWith(displayName,'Vacation Exclusion')&`$select=id,displayName&`$top=999&`$count=true" -ComplexFilter -tenantid $TenantFilter -asApp $true | + Where-Object { $CheckExisting.conditions.users.excludeGroups -contains $_.id } + if ($ExistingVacationGroup) { + if (-not ($JSONobj.conditions.users.PSObject.Properties.Name -contains 'excludeGroups')) { + $JSONobj.conditions.users | Add-Member -NotePropertyName 'excludeGroups' -NotePropertyValue @() -Force + } + if ($JSONobj.conditions.users.excludeGroups -notcontains $ExistingVacationGroup.id) { + Write-Information "Preserving vacation exclusion group $($ExistingVacationGroup.displayName)" + $NewExclusions = [system.collections.generic.list[string]]::new() + # Convert each item to string explicitly to avoid type conversion issues + foreach ($group in $JSONobj.conditions.users.excludeGroups) { + $NewExclusions.Add([string]$group) + } + $NewExclusions.Add($ExistingVacationGroup.id) + $JSONobj.conditions.users.excludeGroups = $NewExclusions + } + # Re-render RawJSON after modification + $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress + } + } catch { + Write-Information "Failed to preserve vacation exclusion group: $($_.Exception.Message)" + } + Write-Information "overwriting $($CheckExisting.id)" + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -asApp $true Write-LogMessage -Headers $User -API 'Create CA Policy' -tenant $($Tenant) -message "Updated Conditional Access Policy $($JSONobj.Displayname) to the template standard." -Sev 'Info' return "Updated policy $displayname for $tenantfilter" } @@ -267,7 +380,7 @@ function New-CIPPCAPolicy { } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError) " -sev 'Error' -LogData $ErrorMessage + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError) " -sev 'Error' -LogData $ErrorMessage Write-Warning "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" Write-Information $_.InvocationInfo.PositionMessage diff --git a/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 index 890fc1247bab..bcb928d5700a 100644 --- a/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 @@ -4,7 +4,9 @@ function New-CIPPCATemplate { $TenantFilter, $JSON, $APIName = 'Add CIPP CA Template', - $Headers + $Headers, + $preloadedUsers, + $preloadedGroups ) $JSON = ([pscustomobject]$JSON) | ForEach-Object { @@ -12,80 +14,99 @@ function New-CIPPCATemplate { $_ | Select-Object -Property $NonEmptyProperties } - $includelocations = New-Object System.Collections.ArrayList + Write-Information "Processing CA Template for tenant $TenantFilter" + Write-Information ($JSON | ConvertTo-Json -Depth 10) + + # Function to check if a string is a GUID + function Test-IsGuid($string) { + return [guid]::tryparse($string, [ref][guid]::Empty) + } + + if ($preloadedUsers) { + $users = $preloadedUsers + } else { + $users = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=displayName,id" -tenantid $TenantFilter) + } + if ($preloadedGroups) { + $groups = $preloadedGroups + } else { + $groups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=displayName,id" -tenantid $TenantFilter) + } + + $namedLocations = $null + if ($JSON.conditions.locations.includeLocations -or $JSON.conditions.locations.excludeLocations) { + $namedLocations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter + } + + $AllLocations = [system.collections.generic.list[object]]::new() + + $includelocations = [system.collections.generic.list[object]]::new() $IncludeJSON = foreach ($Location in $JSON.conditions.locations.includeLocations) { - $locationinfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* + $locationinfo = $namedLocations | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* $null = if ($locationinfo) { $includelocations.add($locationinfo.displayName) } else { $includelocations.add($location) } $locationinfo } if ($includelocations) { $JSON.conditions.locations.includeLocations = $includelocations } - - $excludelocations = New-Object System.Collections.ArrayList + $excludelocations = [system.collections.generic.list[object]]::new() $ExcludeJSON = foreach ($Location in $JSON.conditions.locations.excludeLocations) { - $locationinfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* + $locationinfo = $namedLocations | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* $null = if ($locationinfo) { $excludelocations.add($locationinfo.displayName) } else { $excludelocations.add($location) } $locationinfo } if ($excludelocations) { $JSON.conditions.locations.excludeLocations = $excludelocations } - if ($JSON.conditions.users.includeUsers) { + # Check if conditions.users exists and is a PSCustomObject (not an array) before accessing properties + $hasConditionsUsers = $null -ne $JSON.conditions.users + # Explicitly exclude array types - arrays have properties but we can't set custom properties on them + $isArray = $hasConditionsUsers -and ($JSON.conditions.users -is [Array] -or $JSON.conditions.users -is [System.Collections.IList]) + $isPSCustomObject = $hasConditionsUsers -and -not $isArray -and ($JSON.conditions.users -is [PSCustomObject] -or ($JSON.conditions.users.PSObject.Properties.Count -gt 0 -and -not $isArray)) + $hasIncludeUsers = $isPSCustomObject -and ($null -ne $JSON.conditions.users.includeUsers) + + if ($isPSCustomObject -and $hasIncludeUsers) { $JSON.conditions.users.includeUsers = @($JSON.conditions.users.includeUsers | ForEach-Object { $originalID = $_ if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - } + $match = $users | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - if ($JSON.conditions.users.excludeUsers) { + # Use the same type check for other user properties + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeUsers) { $JSON.conditions.users.excludeUsers = @($JSON.conditions.users.excludeUsers | ForEach-Object { if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } $originalID = $_ - - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - } + $match = $users | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - # Function to check if a string is a GUID - function Test-IsGuid($string) { - return [guid]::tryparse($string, [ref][guid]::Empty) - } - - if ($JSON.conditions.users.includeGroups) { + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.includeGroups) { $JSON.conditions.users.includeGroups = @($JSON.conditions.users.includeGroups | ForEach-Object { $originalID = $_ if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid $_)) { return $_ } - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - } + $match = $groups | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - if ($JSON.conditions.users.excludeGroups) { + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeGroups) { $JSON.conditions.users.excludeGroups = @($JSON.conditions.users.excludeGroups | ForEach-Object { $originalID = $_ - if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid $_)) { return $_ } - try { - (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($_)" -tenantid $TenantFilter).displayName - } catch { - return $originalID - - } + $match = $groups | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } }) } - $JSON | Add-Member -NotePropertyName 'LocationInfo' -NotePropertyValue @($IncludeJSON, $ExcludeJSON) + foreach ($Location in $IncludeJSON) { + $AllLocations.Add($Location) + } + foreach ($Location in $ExcludeJSON) { + $AllLocations.Add($Location) + } + $JSON | Add-Member -NotePropertyName 'LocationInfo' -NotePropertyValue @($AllLocations | Select-Object -Unique) -Force $JSON = (ConvertTo-Json -Compress -Depth 100 -InputObject $JSON) return $JSON } diff --git a/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 new file mode 100644 index 000000000000..12a484544079 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 @@ -0,0 +1,46 @@ +function New-CIPPDbRequest { + <# + .SYNOPSIS + Query the CIPP Reporting database by partition key + + .DESCRIPTION + Retrieves data from the CippReportingDB table filtered by partition key (tenant) + + .PARAMETER TenantFilter + The tenant domain or GUID to filter by (used as partition key) + + .PARAMETER Type + Optional. The data type to filter by (e.g., Users, Groups, Devices) + + .EXAMPLE + New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' + + .EXAMPLE + New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' -Type 'Users' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$Type + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + if ($Type) { + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}.'" -f $TenantFilter, $Type + } else { + $Filter = "PartitionKey eq '{0}'" -f $TenantFilter + } + + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + return ($Results.Data | ConvertFrom-Json -ErrorAction SilentlyContinue) + } catch { + Write-LogMessage -API 'CIPPDbRequest' -tenant $TenantFilter -message "Failed to query database: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPGroup.ps1 b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 index 478082ff471e..1d4a199568e4 100644 --- a/Modules/CIPPCore/Public/New-CIPPGroup.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 @@ -43,6 +43,7 @@ function New-CIPPGroup { try { # Normalize group type for consistent handling (accept camelCase from templates) $NormalizedGroupType = switch -Wildcard ($GroupObject.groupType.ToLower()) { + 'mail-enabled security' { 'Security'; break } '*dynamicdistribution*' { 'DynamicDistribution'; break } # Check this first before *dynamic* and *distribution* '*dynamic*' { 'Dynamic'; break } '*generic*' { 'Generic'; break } @@ -57,7 +58,7 @@ function New-CIPPGroup { } # Determine if this group type needs an email address - $GroupTypesNeedingEmail = @('M365', 'Distribution', 'DynamicDistribution') + $GroupTypesNeedingEmail = @('M365', 'Distribution', 'DynamicDistribution', 'Security') $NeedsEmail = $NormalizedGroupType -in $GroupTypesNeedingEmail # Determine email address only for group types that need it @@ -76,16 +77,32 @@ function New-CIPPGroup { $null } + # Extract local part of username if exists and remove special characters for mailNickname + if ($GroupObject.username -like '*@*') { + $MailNickname = ($GroupObject.username -split '@')[0] + } else { + $MailNickname = $GroupObject.username + } + + # Remove forbidden characters per Microsoft 365 mailNickname requirements: + # ASCII 0-127 only, excluding: @ () / [] ' ; : <> , SPACE and any non-ASCII + $MailNickname = $MailNickname -replace "[@()\[\]/'`;:<>,\s]|[^\x00-\x7F]", '' + + # Ensure max length of 64 characters + if ($MailNickname.Length -gt 64) { + $MailNickname = $MailNickname.Substring(0, 64) + } + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Creating group $($GroupObject.displayName) of type $NormalizedGroupType$(if ($NeedsEmail) { " with email $Email" })" -Sev Info # Handle Graph API groups (Security, Generic, AzureRole, Dynamic, M365) - if ($NormalizedGroupType -in @('Generic', 'Security', 'AzureRole', 'Dynamic', 'M365')) { + if ($NormalizedGroupType -in @('Generic', 'AzureRole', 'Dynamic', 'M365')) { Write-Information "Creating group $($GroupObject.displayName) of type $NormalizedGroupType$(if ($NeedsEmail) { " with email $Email" })" $BodyParams = [PSCustomObject]@{ 'displayName' = $GroupObject.displayName 'description' = $GroupObject.description - 'mailNickname' = $GroupObject.username - 'mailEnabled' = ($NormalizedGroupType -in @('Security', 'M365')) + 'mailNickname' = $MailNickname + 'mailEnabled' = ($NormalizedGroupType -eq 'M365') 'securityEnabled' = $true 'isAssignableToRole' = ($NormalizedGroupType -eq 'AzureRole') } @@ -150,7 +167,15 @@ function New-CIPPGroup { GroupType = $NormalizedGroupType Email = if ($NeedsEmail) { $Email } else { $null } } - + if ($GroupObject.subscribeMembers) { + #Waiting for group to become available in Exo. + Start-Sleep -Seconds 10 + $SubParams = @{ + Identity = $GraphRequest.id + 'autoSubscribeNewMembers' = $true + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-UnifiedGroup' -cmdParams $SubParams + } } else { # Handle Exchange Online groups (Distribution, DynamicDistribution) @@ -178,13 +203,17 @@ function New-CIPPGroup { $ExoParams = @{ Name = $GroupObject.displayName - Alias = $GroupObject.username + Alias = $MailNickname Description = $GroupObject.description PrimarySmtpAddress = $Email Type = $GroupObject.groupType RequireSenderAuthenticationEnabled = [bool]!$GroupObject.allowExternal } + if ($NormalizedGroupType -eq 'Security') { + $ExoParams.Type = 'Security' + } + # Add owners if ($GroupObject.owners -and $GroupObject.owners.Count -gt 0) { $OwnerEmails = $GroupObject.owners | ForEach-Object { diff --git a/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 index 963b370668ef..8360058a0a29 100644 --- a/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 @@ -32,42 +32,48 @@ function New-CIPPIntuneTemplate { switch ($URLName) { 'deviceCompliancePolicies' { $Type = 'deviceCompliancePolicies' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $tenantfilter + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $TenantFilter $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'managedAppPolicies' { $Type = 'AppProtection' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $tenantfilter + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'mobileAppConfigurations' { + $Type = 'AppConfiguration' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'configurationPolicies' { $Type = 'Catalog' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')?`$expand=settings" -tenantid $tenantfilter | Select-Object name, description, settings, platforms, technologies, templateReference - $TemplateJson = $Template | ConvertTo-Json -Depth 100 + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')?`$expand=settings" -tenantid $TenantFilter | Select-Object name, description, settings, platforms, technologies, templateReference + $TemplateJson = $Template | ConvertTo-Json -Depth 100 -Compress $DisplayName = $Template.name } 'windowsDriverUpdateProfiles' { $Type = 'windowsDriverUpdateProfiles' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'deviceConfigurations' { $Type = 'Device' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'groupPolicyConfigurations' { $Type = 'Admin' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')" -tenantid $tenantfilter + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter $DisplayName = $Template.displayName - $TemplateJsonItems = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues?`$expand=definition" -tenantid $tenantfilter + $TemplateJsonItems = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues?`$expand=definition" -tenantid $TenantFilter $TemplateJsonSource = foreach ($TemplateJsonItem in $TemplateJsonItems) { - $presentationValues = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues('$($TemplateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $tenantfilter | ForEach-Object { + $presentationValues = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues('$($TemplateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $TenantFilter | ForEach-Object { $obj = $_ if ($obj.id) { $PresObj = @{ @@ -98,19 +104,19 @@ function New-CIPPIntuneTemplate { } 'windowsFeatureUpdateProfiles' { $Type = 'windowsFeatureUpdateProfiles' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'windowsQualityUpdatePolicies' { $Type = 'windowsQualityUpdatePolicies' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } 'windowsQualityUpdateProfiles' { $Type = 'windowsQualityUpdateProfiles' - $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $tenantfilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } diff --git a/Modules/CIPPCore/Public/New-CIPPRestore.ps1 b/Modules/CIPPCore/Public/New-CIPPRestore.ps1 index 52042e261780..5668b3f48484 100644 --- a/Modules/CIPPCore/Public/New-CIPPRestore.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPRestore.ps1 @@ -10,7 +10,8 @@ function New-CIPPRestore { Write-Host "Scheduled Restore psproperties: $(([pscustomobject]$RestoreValues).psobject.Properties)" Write-LogMessage -headers $Headers -API $APINAME -message 'Restored backup' -Sev 'Debug' - $RestoreData = foreach ($ScheduledBackup in ([pscustomobject]$RestoreValues).psobject.Properties.Name | Where-Object { $_ -notin 'email', 'webhook', 'psa', 'backup', 'overwrite' }) { + $RestoreData = foreach ($ScheduledBackup in ([pscustomobject]$RestoreValues).psobject.Properties | Where-Object { $_.Value -eq $true -and $_.Name -notin 'email', 'webhook', 'psa', 'backup', 'overwrite' } | Select-Object -ExpandProperty Name) { + Write-Information "Restoring $ScheduledBackup for tenant $TenantFilter" New-CIPPRestoreTask -Task $ScheduledBackup -TenantFilter $TenantFilter -backup $RestoreValues.backup -overwrite $RestoreValues.overwrite -Headers $Headers -APIName $APIName } return $RestoreData diff --git a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 index 2e19b3f3f0a2..aec6db68de03 100644 --- a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 @@ -8,13 +8,67 @@ function New-CIPPRestoreTask { $APINAME, $Headers ) - $Table = Get-CippTable -tablename 'ScheduledBackup' - $BackupData = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$backup'" - $RestoreData = switch ($Task) { + # Use Get-CIPPBackup which handles blob storage fetching + $BackupData = Get-CIPPBackup -Type 'Scheduled' -Name $backup + + # If this is a blob-based backup, parse the Backup property to get the actual data structure + if ($BackupData.BackupIsBlob -or $BackupData.BackupIsBlobLink) { + try { + $BackupData = $BackupData.Backup | ConvertFrom-Json + } catch { + Write-Warning "Failed to parse blob backup data: $($_.Exception.Message)" + } + } + + + # Initialize restoration counters + $restorationStats = @{ + 'CustomVariables' = @{ success = 0; failed = 0 } + 'Users' = @{ success = 0; failed = 0 } + 'Groups' = @{ success = 0; failed = 0 } + 'ConditionalAccess' = @{ success = 0; failed = 0 } + 'IntuneConfig' = @{ success = 0; failed = 0 } + 'IntunCompliance' = @{ success = 0; failed = 0 } + 'IntuneProtection' = @{ success = 0; failed = 0 } + 'AntiSpam' = @{ success = 0; failed = 0 } + 'AntiPhishing' = @{ success = 0; failed = 0 } + 'WebhookAlerts' = @{ success = 0; failed = 0 } + 'ScriptedAlerts' = @{ success = 0; failed = 0 } + } + + # Helper function to clean user object for Graph API - removes reference properties, nulls, and empty strings + function Clean-GraphObject { + param($Object, [switch]$ExcludeId) + $excludeProps = @('password', 'passwordProfile', '@odata.type', 'manager', 'memberOf', 'createdOnBehalfOf', 'createdByAppId', 'deletedDateTime', 'authorizationInfo') + if ($ExcludeId) { + $excludeProps += @('id') + } + + $cleaned = $Object | Select-Object * -ExcludeProperty $excludeProps + $result = @{} + + foreach ($prop in $cleaned.PSObject.Properties) { + $propValue = $prop.Value + # Skip empty strings, nulls, and complex objects (except known-good arrays like businessPhones) + if ($propValue -ne '' -and $null -ne $propValue) { + # Skip complex objects/dictionaries but allow simple arrays + if ($propValue -is [System.Collections.IDictionary]) { + continue + } + $result[$prop.Name] = $propValue + } + } + + return $result + } + + $RestoreData = [System.Collections.Generic.List[string]]::new() + + switch ($Task) { 'CippCustomVariables' { Write-Host "Restore Custom Variables for $TenantFilter" $ReplaceTable = Get-CIPPTable -TableName 'CippReplacemap' - $Backup = $BackupData.CippCustomVariables | ConvertFrom-Json + $Backup = if ($BackupData.CippCustomVariables -is [string]) { $BackupData.CippCustomVariables | ConvertFrom-Json } else { $BackupData.CippCustomVariables } $Tenant = Get-Tenants -TenantFilter $TenantFilter $CustomerId = $Tenant.customerId @@ -28,68 +82,122 @@ function New-CIPPRestoreTask { Description = $variable.Description } - if ($overwrite) { - Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force - Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' - "Restored custom variable $($variable.RowKey) from backup" - } else { - # Check if variable already exists - $existing = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId' and RowKey eq '$($variable.RowKey)'" - if (!$existing) { + try { + if ($overwrite) { Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' - "Restored custom variable $($variable.RowKey) from backup" + $restorationStats['CustomVariables'].success++ + $RestoreData.Add("Restored custom variable $($variable.RowKey) from backup") } else { - Write-LogMessage -message "Custom variable $($variable.RowKey) already exists and overwrite is disabled" -Sev 'info' - "Custom variable $($variable.RowKey) already exists and overwrite is disabled" + # Check if variable already exists + $existing = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId' and RowKey eq '$($variable.RowKey)'" + if (!$existing) { + Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force + Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' + $restorationStats['CustomVariables'].success++ + $RestoreData.Add("Restored custom variable $($variable.RowKey) from backup") + } else { + Write-LogMessage -message "Custom variable $($variable.RowKey) already exists and overwrite is disabled" -Sev 'info' + $RestoreData.Add("Custom variable $($variable.RowKey) already exists and overwrite is disabled") + } } + } catch { + $restorationStats['CustomVariables'].failed++ + Write-LogMessage -message "Failed to restore custom variable $($variable.RowKey): $($_.Exception.Message)" -Sev 'Warning' + $RestoreData.Add("Failed to restore custom variable $($variable.RowKey)") } } } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - "Could not restore Custom Variables: $ErrorMessage" + $RestoreData.Add("Could not restore Custom Variables: $ErrorMessage") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Custom Variables: $ErrorMessage" -Sev 'Error' } } 'users' { $currentUsers = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999&select=id,userPrincipalName' -tenantid $TenantFilter - $backupUsers = $BackupData.users | ConvertFrom-Json + $backupUsers = if ($BackupData.users -is [string]) { $BackupData.users | ConvertFrom-Json } else { $BackupData.users } + + Write-Host "Restore users for $TenantFilter" + Write-Information "User count in backup: $($backupUsers.Count)" $BackupUsers | ForEach-Object { try { - $JSON = $_ | ConvertTo-Json -Depth 100 -Compress - $DisplayName = $_.displayName - $UPN = $_.userPrincipalName + $userObject = $_ + $UPN = $userObject.userPrincipalName + if ($overwrite) { - if ($_.id -in $currentUsers.id) { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/users/$($_.id)" -tenantid $TenantFilter -body $JSON -type PATCH + if ($userObject.id -in $currentUsers.id -or $userObject.userPrincipalName -in $currentUsers.userPrincipalName) { + # Patch existing user - clean object to remove reference properties, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject + $patchBody = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/users/$($userObject.id)" -tenantid $TenantFilter -body $patchBody -type PATCH Write-LogMessage -message "Restored $($UPN) from backup by patching the existing object." -Sev 'info' - "The user existed. Restored $($UPN) from backup" + $restorationStats['Users'].success++ + $RestoreData.Add("The user existed. Restored $($UPN) from backup") } else { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST - Write-LogMessage -message "Restored $($UPN) from backup by creating a new object." -Sev 'info' - "The user did not exist. Restored $($UPN) from backup" + # Create new user - need to add password and clean object + $tempPassword = New-passwordString + # Remove reference properties that may not exist in target tenant, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject -ExcludeId + $cleanedUser['passwordProfile'] = @{ + 'forceChangePasswordNextSignIn' = $true + 'password' = $tempPassword + } + $JSON = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST + # Try to wrap password in PwPush link + $displayPassword = $tempPassword + try { + $PasswordLink = New-PwPushLink -Payload $tempPassword + if ($PasswordLink) { + $displayPassword = $PasswordLink + } + } catch { + # If PwPush fails, use plain password + } + Write-LogMessage -message "Restored $($UPN) from backup by creating a new object with temporary password. Password: $displayPassword" -Sev 'info' -tenant $TenantFilter + $restorationStats['Users'].success++ + $RestoreData.Add("The user did not exist. Restored $($UPN) from backup with temporary password: $displayPassword") } } if (!$overwrite) { - if ($_.id -notin $backupUsers.id) { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST - Write-LogMessage -message "Restored $($UPN) from backup" -Sev 'info' - "Restored $($UPN) from backup" - } else { - Write-LogMessage -message "User $($UPN) already exists in tenant $TenantFilter and overwrite is disabled" -Sev 'info' - "User $($UPN) already exists in tenant $TenantFilter and overwrite is disabled" + if ($userObject.id -notin $currentUsers.id -and $userObject.userPrincipalName -notin $currentUsers.userPrincipalName) { + # Create new user - need to add password and clean object + $tempPassword = New-passwordString + # Remove reference properties that may not exist in target tenant, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject -ExcludeId + $cleanedUser['passwordProfile'] = @{ + 'forceChangePasswordNextSignIn' = $true + 'password' = $tempPassword + } + $JSON = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST + # Try to wrap password in PwPush link + $displayPassword = $tempPassword + try { + $PasswordLink = New-PwPushLink -Payload $tempPassword + if ($PasswordLink) { + $displayPassword = $PasswordLink + } + } catch { + # If PwPush fails, use plain password + } + Write-LogMessage -message "Restored $($UPN) from backup with temporary password. Password: $displayPassword" -Sev 'info' + $restorationStats['Users'].success++ + $RestoreData.Add("Restored $($UPN) from backup with temporary password: $displayPassword") } } } catch { + $restorationStats['Users'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore user $($UPN): $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore user $($UPN): $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore user $($UPN): $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } } 'groups' { Write-Host "Restore groups for $TenantFilter" - $backupGroups = $BackupData.groups | ConvertFrom-Json + $backupGroups = if ($BackupData.groups -is [string]) { $BackupData.groups | ConvertFrom-Json } else { $BackupData.groups } $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter $BackupGroups | ForEach-Object { try { @@ -97,67 +205,77 @@ function New-CIPPRestoreTask { $DisplayName = $_.displayName if ($overwrite) { if ($_.id -in $Groups.id) { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/groups/$($_.id)" -tenantid $TenantFilter -body $JSON -type PATCH + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/groups/$($_.id)" -tenantid $TenantFilter -body $JSON -type PATCH Write-LogMessage -message "Restored $DisplayName from backup by patching the existing object." -Sev 'info' - "The group existed. Restored $DisplayName from backup" + $restorationStats['Groups'].success++ + $RestoreData.Add("The group existed. Restored $DisplayName from backup") } else { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST Write-LogMessage -message "Restored $DisplayName from backup" -Sev 'info' - "Restored $DisplayName from backup" + $restorationStats['Groups'].success++ + $RestoreData.Add("Restored $DisplayName from backup") } } if (!$overwrite) { if ($_.id -notin $Groups.id) { - New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST Write-LogMessage -message "Restored $DisplayName from backup" -Sev 'info' - "Restored $DisplayName from backup" + $restorationStats['Groups'].success++ + $RestoreData.Add("Restored $DisplayName from backup") } else { Write-LogMessage -message "Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled" -Sev 'info' - "Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled" + $RestoreData.Add("Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled") } } } catch { + $restorationStats['Groups'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } } 'ca' { Write-Host "Restore Conditional Access Policies for $TenantFilter" - $BackupCAPolicies = $BackupData.ca | ConvertFrom-Json + $BackupCAPolicies = if ($BackupData.ca -is [string]) { $BackupData.ca | ConvertFrom-Json } else { $BackupData.ca } $BackupCAPolicies | ForEach-Object { $JSON = $_ try { - New-CIPPCAPolicy -replacePattern 'displayName' -Overwrite $overwrite -TenantFilter $TenantFilter -state 'donotchange' -RawJSON $JSON -APIName 'CIPP Restore' -ErrorAction SilentlyContinue + $null = New-CIPPCAPolicy -replacePattern 'displayName' -Overwrite $overwrite -TenantFilter $TenantFilter -state 'donotchange' -RawJSON $JSON -APIName 'CIPP Restore' -ErrorAction SilentlyContinue + $restorationStats['ConditionalAccess'].success++ + $RestoreData.Add('Restored Conditional Access policy from backup') } catch { + $restorationStats['ConditionalAccess'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } } 'intuneconfig' { - $BackupConfig = $BackupData.intuneconfig | ConvertFrom-Json + $BackupConfig = if ($BackupData.intuneconfig -is [string]) { $BackupData.intuneconfig | ConvertFrom-Json } else { $BackupData.intuneconfig } foreach ($backup in $backupConfig) { try { - Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue } catch { $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } #Convert the manual method to a function } 'intunecompliance' { - $BackupConfig = $BackupData.intunecompliance | ConvertFrom-Json + $BackupConfig = if ($BackupData.intunecompliance -is [string]) { $BackupData.intunecompliance | ConvertFrom-Json } else { $BackupData.intunecompliance } foreach ($backup in $backupConfig) { try { - Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $restorationStats['IntuneConfig'].success++ + $RestoreData.Add('Restored Intune configuration from backup') } catch { + $restorationStats['IntuneConfig'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Intune Compliance $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Intune Compliance $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -165,13 +283,16 @@ function New-CIPPRestoreTask { } 'intuneprotection' { - $BackupConfig = $BackupData.intuneprotection | ConvertFrom-Json + $BackupConfig = if ($BackupData.intuneprotection -is [string]) { $BackupData.intuneprotection | ConvertFrom-Json } else { $BackupData.intuneprotection } foreach ($backup in $backupConfig) { try { - Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $restorationStats['IntuneProtection'].success++ + $RestoreData.Add('Restored Intune protection policy from backup') } catch { + $restorationStats['IntuneProtection'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Intune Protection $DisplayName : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Intune Protection $DisplayName : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -180,14 +301,15 @@ function New-CIPPRestoreTask { 'antispam' { try { - $BackupConfig = $BackupData.antispam | ConvertFrom-Json | ConvertFrom-Json + $BackupConfig = if ($BackupData.antispam -is [string]) { $BackupData.antispam | ConvertFrom-Json } else { $BackupData.antispam } + if ($BackupConfig -is [string]) { $BackupConfig = $BackupConfig | ConvertFrom-Json } $BackupPolicies = $BackupConfig.policies $BackupRules = $BackupConfig.rules $CurrentPolicies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* $CurrentRules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* } catch { $ErrorMessage = Get-CippException -Exception $_ - "Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } @@ -280,10 +402,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } else { $cmdparams = @{ @@ -300,14 +423,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } catch { + $restorationStats['AntiSpam'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -330,10 +455,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } else { $cmdparams = @{ @@ -350,14 +476,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } catch { + $restorationStats['AntiSpam'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -365,14 +493,15 @@ function New-CIPPRestoreTask { 'antiphishing' { try { - $BackupConfig = $BackupData.antiphishing | ConvertFrom-Json | ConvertFrom-Json + $BackupConfig = if ($BackupData.antiphishing -is [string]) { $BackupData.antiphishing | ConvertFrom-Json } else { $BackupData.antiphishing } + if ($BackupConfig -is [string]) { $BackupConfig = $BackupConfig | ConvertFrom-Json } $BackupPolicies = $BackupConfig.policies $BackupRules = $BackupConfig.rules $CurrentPolicies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* $CurrentRules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* } catch { $ErrorMessage = Get-CippException -Exception $_ - "Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } @@ -441,10 +570,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } else { $cmdparams = @{ @@ -457,14 +587,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' - "Restored $($policy.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") } } catch { + $restorationStats['AntiPhishing'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -487,10 +619,11 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } else { $cmdparams = @{ @@ -507,14 +640,16 @@ function New-CIPPRestoreTask { } } - New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' - "Restored $($rule.Identity) from backup." + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") } } catch { + $restorationStats['AntiPhishing'].failed++ $ErrorMessage = Get-CippException -Exception $_ - "Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " + $RestoreData.Add("Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) ") Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage } } @@ -522,26 +657,57 @@ function New-CIPPRestoreTask { 'CippWebhookAlerts' { Write-Host "Restore Webhook Alerts for $TenantFilter" $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' - $Backup = $BackupData.CippWebhookAlerts | ConvertFrom-Json + $Backup = if ($BackupData.CippWebhookAlerts -is [string]) { $BackupData.CippWebhookAlerts | ConvertFrom-Json } else { $BackupData.CippWebhookAlerts } try { Add-CIPPAzDataTableEntity @WebhookTable -Entity $Backup -Force + $restorationStats['WebhookAlerts'].success++ + $RestoreData.Add('Restored Webhook Alerts from backup') } catch { + $restorationStats['WebhookAlerts'].failed++ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - "Could not restore Webhook Alerts $ErrorMessage" + $RestoreData.Add("Could not restore Webhook Alerts $ErrorMessage") } } 'CippScriptedAlerts' { Write-Host "Restore Scripted Alerts for $TenantFilter" $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' - $Backup = $BackupData.CippScriptedAlerts | ConvertFrom-Json + $Backup = if ($BackupData.CippScriptedAlerts -is [string]) { $BackupData.CippScriptedAlerts | ConvertFrom-Json } else { $BackupData.CippScriptedAlerts } try { Add-CIPPAzDataTableEntity @ScheduledTasks -Entity $Backup -Force + $restorationStats['ScriptedAlerts'].success++ + $RestoreData.Add('Restored Scripted Alerts from backup') } catch { + $restorationStats['ScriptedAlerts'].failed++ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - "Could not restore Scripted Alerts $ErrorMessage " + $RestoreData.Add("Could not restore Scripted Alerts $ErrorMessage ") } } } + + # Build summary message + $summaryParts = @() + $successCount = 0 + $failureCount = 0 + + foreach ($type in $restorationStats.Keys) { + $successCount += $restorationStats[$type].success + $failureCount += $restorationStats[$type].failed + + if ($restorationStats[$type].success -gt 0) { + $pluralForm = if ($restorationStats[$type].success -eq 1) { $type.TrimEnd('s') } else { $type } + $summaryParts += "$($restorationStats[$type].success) $pluralForm" + } + } + + if ($summaryParts.Count -gt 0) { + $summary = 'Restored: ' + ($summaryParts -join ', ') + ' from backup' + if ($failureCount -gt 0) { + $summary += " ($failureCount items failed)" + } + $RestoreData.Add($summary) + } elseif ($failureCount -eq 0 -and $successCount -eq 0) { + $RestoreData.Add('No items were restored from backup.') + } + return $RestoreData } - diff --git a/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 index 60c83b040d93..76ff020eb9ef 100644 --- a/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 @@ -10,7 +10,9 @@ function New-CIPPTemplateRun { $data = $_.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue -Depth 100 $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force -ErrorAction Stop $data | Add-Member -NotePropertyName 'PartitionKey' -NotePropertyValue $_.PartitionKey -Force -ErrorAction Stop - $data | Add-Member -NotePropertyName 'SHA' -NotePropertyValue $_.SHA -Force -ErrorAction Stop + $data | Add-Member -NotePropertyName 'SHA' -NotePropertyValue $_.SHA -Force -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'Package' -NotePropertyValue $_.Package -Force -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'Source' -NotePropertyValue $_.Source -Force -ErrorAction SilentlyContinue $data } catch { return @@ -39,24 +41,30 @@ function New-CIPPTemplateRun { if ($MigrationTable) { $MigrationTable = (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $MigrationTable.path).content | ConvertFrom-Json } + $NamedLocations = $Files | Where-Object { $_.name -match 'ALLOWED COUNTRIES' } + $LocationData = foreach ($Location in $NamedLocations) { + (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $Location.path).content | ConvertFrom-Json + } + foreach ($File in $Files) { - if ($File.name -eq 'MigrationTable' -or $file.name -eq 'ALLOWED COUNTRIES') { continue } - $ExistingTemplate = $ExistingTemplates | Where-Object { (![string]::IsNullOrEmpty($_.displayName) -and (Get-SanitizedFilename -filename $_.displayName) -eq $File.name) -or (![string]::IsNullOrEmpty($_.templateName) -and (Get-SanitizedFilename -filename $_.templateName) -eq $File.name ) -and ![string]::IsNullOrEmpty($_.SHA) } | Select-Object -First 1 + if ($File.name -eq 'MigrationTable' -or $file.name -match 'ALLOWED COUNTRIES') { continue } + Write-Information "Processing template file $($File.name) - Sanitized as $(Get-SanitizedFilename -filename $File.name)" + $ExistingTemplate = $ExistingTemplates | Where-Object { (![string]::IsNullOrEmpty($_.displayName) -and (Get-SanitizedFilename -filename $_.displayName) -eq (Get-SanitizedFilename -filename $File.name)) -or (![string]::IsNullOrEmpty($_.templateName) -and (Get-SanitizedFilename -filename $_.templateName) -eq (Get-SanitizedFilename -filename $File.name) ) -and ![string]::IsNullOrEmpty($_.SHA) } | Select-Object -First 1 $UpdateNeeded = $false - if ($ExistingTemplate -and $ExistingTemplate.SHA -ne $File.sha) { + if ($ExistingTemplate -and $ExistingTemplate.SHA -ne $File.sha -and $ExistingTemplate.Source -eq $TemplateSettings.templateRepo.value) { $Name = $ExistingTemplate.displayName ?? $ExistingTemplate.templateName Write-Information "Existing template $($Name) found, but SHA is different. Updating template." $UpdateNeeded = $true "Template $($Name) needs to be updated as the SHA is different" - } else { + } elseif ($ExistingTemplate -and $ExistingTemplate.SHA -eq $File.sha -and $ExistingTemplate.Source -eq $TemplateSettings.templateRepo.value) { Write-Information "Existing template $($File.name) found, but SHA is the same. No update needed." "Template $($File.name) found, but SHA is the same. No update needed." } if (!$ExistingTemplate -or $UpdateNeeded) { $Template = (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $File.path).content | ConvertFrom-Json - Import-CommunityTemplate -Template $Template -SHA $File.sha -MigrationTable $MigrationTable + Import-CommunityTemplate -Template $Template -SHA $File.sha -MigrationTable $MigrationTable -LocationData $LocationData -Source $TemplateSettings.templateRepo.value if ($UpdateNeeded) { Write-Information "Template $($File.name) needs to be updated as the SHA is different" "Template $($File.name) updated" @@ -69,37 +77,71 @@ function New-CIPPTemplateRun { } catch { $Message = "Failed to get data from community repo $($TemplateSettings.templateRepo.value). Error: $($_.Exception.Message)" Write-LogMessage -API 'Community Repo' -tenant $TenantFilter -message $Message -sev Error + Write-Information $_.InvocationInfo.PositionMessage return "Failed to get data from community repo $($TemplateSettings.templateRepo.value). Error: $($_.Exception.Message)" } } else { - foreach ($Task in $Tasks) { - Write-Information "Working on task $Task" + # Tenant template library + $Results = foreach ($Task in $Tasks) { switch ($Task) { 'ca' { Write-Information "Template Conditional Access Policies for $TenantFilter" - $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/conditionalAccess/policies?$top=999' -tenantid $TenantFilter + # Preload users/groups for CA templates + Write-Information "Preloading information for Conditional Access templates for $TenantFilter" + $Requests = @( + @{ + id = 'preloadedUsers' + url = 'users?$top=999&$select=displayName,id' + method = 'GET' + } + @{ + id = 'preloadedGroups' + url = 'groups?$top=999&$select=displayName,id' + method = 'GET' + } + @{ + id = 'conditionalAccessPolicies' + url = 'conditionalAccess/policies?$top=999' + method = 'GET' + } + ) + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter -asapp $true + $preloadedUsers = ($BulkResults | Where-Object { $_.id -eq 'preloadedUsers' }).body.value + $preloadedGroups = ($BulkResults | Where-Object { $_.id -eq 'preloadedGroups' }).body.value + $policies = ($BulkResults | Where-Object { $_.id -eq 'conditionalAccessPolicies' }).body.value + Write-Information 'Creating templates for found Conditional Access Policies' foreach ($policy in $policies) { try { - $Template = New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy + $Hash = Get-StringHash -String ($policy | ConvertTo-Json -Depth 100 -Compress) + $ExistingPolicy = $ExistingTemplates | Where-Object { $_.PartitionKey -eq 'CATemplate' -and $_.displayName -eq $policy.displayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "CA Policy $($policy.displayName) found, SHA matches, skipping template creation" + continue + } + $Template = New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy -preloadedUsers $preloadedUsers -preloadedGroups $preloadedGroups #check existing templates, if the displayName is the same, overwrite it. - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $policy.displayName } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'CATemplate') { - "Policy $($policy.displayName) found, updating template" + "CA Policy $($policy.displayName) found, updating template" Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$Template" RowKey = $ExistingPolicy.GUID PartitionKey = 'CATemplate' GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($policy.displayName) not found in existing templates, creating new template" + "CA Policy $($policy.displayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$Template" RowKey = "$GUID" PartitionKey = 'CATemplate' GUID = "$GUID" + SHA = $Hash + Source = $TenantFilter } } @@ -110,24 +152,48 @@ function New-CIPPTemplateRun { } 'intuneconfig' { Write-Information "Backup Intune Configuration Policies for $TenantFilter" - $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" - 'https://graph.microsoft.com/beta/deviceManagement/windowsDriverUpdateProfiles' - "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" - "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" - 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdatePolicies' - 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdateProfiles' + $GraphURLS = @( + "deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" + 'deviceManagement/windowsDriverUpdateProfiles' + "deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" + "deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" + 'deviceManagement/configurationPolicies' + 'deviceManagement/windowsFeatureUpdateProfiles' + 'deviceManagement/windowsQualityUpdatePolicies' + 'deviceManagement/windowsQualityUpdateProfiles' ) - $Policies = foreach ($url in $GraphURLS) { - try { - $Policies = New-GraphGetRequest -uri "$($url)" -tenantid $TenantFilter - $URLName = (($url).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' + $Requests = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($url in $GraphURLS) { + $URLName = (($url).split('?') | Select-Object -First 1) -replace 'deviceManagement/', '' -replace 'deviceAppManagement/', '' + $Requests.Add([PSCustomObject]@{ + id = $URLName + url = $url + method = 'GET' + }) + } + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + foreach ($Result in $BulkResults) { + Write-Information "Processing Intune Configuration Policies for $($Result.id) - Status Code: $($Result.status)" + if ($Result.status -eq 200) { + $URLName = $Result.id + $Policies = $Result.body.value + Write-Information "Found $($Policies.Count) policies for $($Result.id)" foreach ($Policy in $Policies) { try { - $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.ID - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $Template.DisplayName } | Select-Object -First 1 + $Hash = Get-StringHash -String ($Policy | ConvertTo-Json -Depth 100 -Compress) + $DisplayName = $Policy.displayName ?? $Policy.name + + $ExistingPolicy = $ExistingTemplates | Where-Object { $_.PartitionKey -eq 'IntuneTemplate' -and $_.displayName -eq $DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + + Write-Information "Processing Intune Configuration Policy $($DisplayName) - $($ExistingPolicy ? 'Existing template found' : 'No existing template found')" + + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Configuration Policy $($DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.id if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { "Policy $($Template.DisplayName) found, updating template" $object = [PSCustomObject]@{ @@ -142,9 +208,13 @@ function New-CIPPTemplateRun { JSON = "$object" RowKey = $ExistingPolicy.GUID PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($Template.DisplayName) not found in existing templates, creating new template" + "Intune Configuration Policy $($Template.DisplayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID $object = [PSCustomObject]@{ Displayname = $Template.DisplayName @@ -158,6 +228,9 @@ function New-CIPPTemplateRun { JSON = "$object" RowKey = "$GUID" PartitionKey = 'IntuneTemplate' + GUID = "$GUID" + SHA = $Hash + Source = $TenantFilter } -Force } } catch { @@ -165,33 +238,44 @@ function New-CIPPTemplateRun { "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" } } - } catch { - Write-Information "Failed to backup $url" + } else { + Write-Information "Failed to get $($Result.id) policies - Status Code: $($Result.status) - Message: $($Result.body.error.message)" } } } 'intunecompliance' { - Write-Information "Backup Intune Compliance Policies for $TenantFilter" + Write-Information "Create Intune Compliance Policy Templates for $TenantFilter" New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $_.ID - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $Template.DisplayName } | Select-Object -First 1 + $Policy = $_ + $Hash = Get-StringHash -String (ConvertTo-Json -Depth 100 -Compress -InputObject $_) + $ExistingPolicy = $ExistingTemplates | Where-Object { $Policy.displayName -eq $_.DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Compliance Policy $($_.DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $Policy.id if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { - "Policy $($Template.DisplayName) found, updating template" + "Intune Compliance Policy $($Template.DisplayName) found, updating template" $object = [PSCustomObject]@{ Displayname = $Template.DisplayName Description = $Template.Description RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $ExistingPolicy.GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = $ExistingPolicy.GUID PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($Template.DisplayName) not found in existing templates, creating new template" + "Intune Compliance Policy $($Template.DisplayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID $object = [PSCustomObject]@{ Displayname = $Template.DisplayName @@ -199,40 +283,53 @@ function New-CIPPTemplateRun { RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = "$GUID" PartitionKey = 'IntuneTemplate' + SHA = $Hash + GUID = "$GUID" + Source = $TenantFilter } -Force } - } } 'intuneprotection' { - Write-Information "Backup Intune Protection Policies for $TenantFilter" + Write-Information "Create Intune Protection Policy Templates for $TenantFilter" New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { - $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $_.ID - $ExistingPolicy = $ExistingTemplates | Where-Object { $_.displayName -eq $Template.DisplayName } | Select-Object -First 1 + $Policy = $_ + $Hash = Get-StringHash -String (ConvertTo-Json -Depth 100 -Compress -InputObject $_) + $ExistingPolicy = $ExistingTemplates | Where-Object { $Policy.displayName -eq $_.DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Protection Policy $($_.DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $Policy.id if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { - "Policy $($Template.DisplayName) found, updating template" + "Intune Protection Policy $($Template.DisplayName) found, updating template" $object = [PSCustomObject]@{ Displayname = $Template.DisplayName Description = $Template.Description RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $ExistingPolicy.GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = $ExistingPolicy.GUID PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + SHA = $Hash + GUID = $ExistingPolicy.GUID + Source = $ExistingPolicy.Source } -Force } else { - "Policy $($Template.DisplayName) not found in existing templates, creating new template" + "Intune Protection Policy $($Template.DisplayName) not found in existing templates, creating new template" $GUID = (New-Guid).GUID $object = [PSCustomObject]@{ Displayname = $Template.DisplayName @@ -240,20 +337,21 @@ function New-CIPPTemplateRun { RAWJson = $Template.TemplateJson Type = $Template.Type GUID = $GUID - } | ConvertTo-Json + } | ConvertTo-Json -Compress Add-CIPPAzDataTableEntity @Table -Entity @{ JSON = "$object" RowKey = "$GUID" PartitionKey = 'IntuneTemplate' + SHA = $Hash + GUID = "$GUID" + Source = $TenantFilter } -Force } } } - } } } - return $BackupData + return $Results } - diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 index c723ff2d77e7..1880d4c4960f 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 @@ -1,28 +1,125 @@ -function Remove-CIPPGroupMember( - $Headers, - [string]$GroupType, - [string]$GroupId, - [string]$Member, - [string]$TenantFilter, - [string]$APIName = 'Remove Group Member' -) { +function Remove-CIPPGroupMember { + <# + .SYNOPSIS + Removes members from a Microsoft 365 group. + + .DESCRIPTION + Removes one or more members from Security Groups, Distribution Groups, or Mail-Enabled Security Groups. + Uses bulk request operations for Exchange groups to improve performance. + + .PARAMETER Headers + The headers for the API request, typically containing authentication information. + + .PARAMETER TenantFilter + The tenant identifier for the target tenant. + + .PARAMETER GroupType + The type of group. Valid values: 'Distribution list', 'Mail-Enabled Security', or standard security groups. + + .PARAMETER GroupId + The unique identifier (GUID or name) of the group. + + .PARAMETER Member + An array of member identifiers (user GUIDs or UPNs) to remove from the group. + + .PARAMETER APIName + The API operation name for logging purposes. Default: 'Remove Group Member'. + + .EXAMPLE + Remove-CIPPGroupMember -Headers $Headers -TenantFilter 'contoso.onmicrosoft.com' -GroupType 'Distribution list' -GroupId 'Sales-DL' -Member @('user1@contoso.com', 'user2@contoso.com') -APIName 'Remove DL Members' + + .EXAMPLE + Remove-CIPPGroupMember -Headers $Headers -TenantFilter 'contoso.onmicrosoft.com' -GroupType 'Security' -GroupId '12345-guid' -Member @('user1-guid') + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$GroupType, + + [Parameter(Mandatory = $true)] + [string]$GroupId, + + [Parameter(Mandatory = $true)] + [string[]]$Member, + + [Parameter(Mandatory = $false)] + [string]$APIName = 'Remove Group Member', + + $Headers + ) + try { - if ($Member -like '*#EXT#*') { $Member = [System.Web.HttpUtility]::UrlEncode($Member) } - # $MemberIDs = 'https://graph.microsoft.com/v1.0/directoryObjects/' + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Member)" -tenantid $TenantFilter).id - # $AddMemberBody = "{ `"members@odata.bind`": $(ConvertTo-Json @($MemberIDs)) }" + $Requests = foreach ($m in $Member) { + if ($m -like '*#EXT#*') { $m = [System.Web.HttpUtility]::UrlEncode($m) } + @{ + id = $m + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } + $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { - $Params = @{ Identity = $GroupId; Member = $Member; BypassSecurityGroupManagerCheck = $true } - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-DistributionGroupMember' -cmdParams $Params -UseSystemMailbox $true + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + + foreach ($User in $Users) { + $Params = @{ Identity = $GroupId; Member = $User.body.userPrincipalName; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed member $($User.body.userPrincipalName) from $($GroupId) group" + target = $User.body.userPrincipalName + }) + } + + if ($ExoBulkRequests.Count -gt 0) { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + throw $ExoError + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } + } + } } else { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupId)/members/$($Member)/`$ref" -tenantid $TenantFilter -type DELETE -body '{}' -Verbose + $RemovalRequests = foreach ($User in $Users) { + @{ + id = $User.body.id + method = 'DELETE' + url = "/groups/$($GroupId)/members/$($User.body.id)/`$ref" + } + } + $RemovalResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($RemovalRequests) + foreach ($Result in $RemovalResults) { + if ($Result.status -ne 204) { + throw "Failed to remove member $($Result.id): $($Result.body.error.message)" + } + } } - $Results = "Successfully removed user $($Member) from $($GroupId)." + $UserList = ($Users.body.userPrincipalName -join ', ') + $Results = "Successfully removed user $UserList from $($GroupId)." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev Info return $Results } catch { $ErrorMessage = Get-CippException -Exception $_ - $Results = "Failed to remove user $($Member) from $($GroupId): $($ErrorMessage.NormalizedError)" + $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } + $Results = "Failed to remove user $UserList from $($GroupId): $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev Error -LogData $ErrorMessage throw $Results } diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 index 1284db3c752d..527de771990e 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 @@ -11,43 +11,127 @@ function Remove-CIPPGroups { if (-not $userid) { $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id } - $AllGroups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/?`$select=displayName,mailEnabled,id,groupTypes,assignedLicenses&`$top=999" -tenantid $TenantFilter) + $AllGroups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/?`$select=displayName,mailEnabled,id,groupTypes,assignedLicenses,onPremisesSyncEnabled,membershipRule&`$top=999" -tenantid $TenantFilter) - $Returnval = (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/GetMemberGroups" -tenantid $TenantFilter -type POST -body '{"securityEnabledOnly": false}').value | ForEach-Object -Parallel { - Import-Module '.\Modules\AzBobbyTables' - Import-Module '.\Modules\CIPPCore' - $Group = $_ + # Get user's groups + $UserGroups = (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/GetMemberGroups" -tenantid $TenantFilter -type POST -body '{"securityEnabledOnly": false}').value - try { - $GroupName = ($using:AllGroups | Where-Object -Property id -EQ $Group).displayName - $IsMailEnabled = ($using:AllGroups | Where-Object -Property id -EQ $Group).mailEnabled - $IsM365Group = $null -ne ($using:AllGroups | Where-Object { $_.id -eq $Group -and $_.groupTypes -contains 'Unified' }) - $IsLicensed = ($using:AllGroups | Where-Object -Property id -EQ $Group).assignedLicenses.Count -gt 0 - - if ($IsLicensed) { - "Could not remove $($using:Username) from $GroupName. This is because the group has licenses assigned to it." - } else { - if ($IsM365Group) { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$_/members/$($using:UserID)/`$ref" -tenantid $using:TenantFilter -type DELETE -body '' -Verbose - } elseif (-not $IsMailEnabled) { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$_/members/$($using:UserID)/`$ref" -tenantid $using:TenantFilter -type DELETE -body '' -Verbose - } elseif ($IsMailEnabled) { - $Params = @{ Identity = $GroupName; Member = $using:UserID ; BypassSecurityGroupManagerCheck = $true } - New-ExoRequest -tenantid $using:tenantFilter -cmdlet 'Remove-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true + if (-not $UserGroups) { + $Returnval = "$($Username) is not a member of any groups." + Write-LogMessage -headers $Headers -API $APIName -message "$($Username) is not a member of any groups" -Sev 'Info' -tenant $TenantFilter + return $Returnval + } + + # Initialize bulk request arrays and results + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $GraphLogs = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + $Results = [System.Collections.Generic.List[string]]::new() + + # Process each group and prepare bulk requests + foreach ($Group in $UserGroups) { + $GroupInfo = $AllGroups | Where-Object -Property id -EQ $Group + $GroupName = $GroupInfo.displayName + $IsMailEnabled = $GroupInfo.mailEnabled + $IsM365Group = $null -ne ($AllGroups | Where-Object { $_.id -eq $Group -and $_.groupTypes -contains 'Unified' }) + $IsLicensed = $GroupInfo.assignedLicenses.Count -gt 0 + $IsDynamic = -not [string]::IsNullOrWhiteSpace($GroupInfo.membershipRule) + + if ($IsLicensed) { + $Results.Add("Could not remove $Username from group '$GroupName' because it has assigned licenses. These groups are removed during the license removal step.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it has assigned licenses. These groups are removed during the license removal step." -Sev 'Warning' -tenant $TenantFilter + } elseif ($IsDynamic) { + $Results.Add("Error: Could not remove $Username from group '$GroupName' because it is a Dynamic Group.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it is a Dynamic Group." -Sev 'Warning' -tenant $TenantFilter + } elseif ($GroupInfo.onPremisesSyncEnabled) { + $Results.Add("Error: Could not remove $Username from group '$GroupName' because it is synced with Active Directory.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it is synced with Active Directory." -Sev 'Warning' -tenant $TenantFilter + } else { + if ($IsM365Group -or (-not $IsMailEnabled)) { + # Use Graph API for M365 Groups and Security Groups + $BulkRequests.Add(@{ + id = "removeFromGroup-$Group" + method = 'DELETE' + url = "groups/$Group/members/$UserID/`$ref" + }) + $GraphLogs.Add(@{ + message = "Removed $Username from $GroupName" + id = "removeFromGroup-$Group" + groupName = $GroupName + }) + } elseif ($IsMailEnabled) { + # Use Exchange Online for Distribution Lists + $Params = @{ + Identity = $GroupName + Member = $UserID + BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed $Username from $GroupName" + target = $UserID + groupName = $GroupName + }) + } + } + } - Write-LogMessage -headers $using:Headers -API $($using:APIName) -message "Removed $($using:Username) from $GroupName" -Sev 'Info' -tenant $using:TenantFilter - "Successfully removed $($using:Username) from group $GroupName" + # Execute Graph bulk requests + if ($BulkRequests.Count -gt 0) { + try { + $RawGraphRequest = New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($BulkRequests) -asapp $true + + foreach ($GraphLog in $GraphLogs) { + $GraphError = $RawGraphRequest | Where-Object { $_.id -eq $GraphLog.id -and $_.status -notmatch '^2[0-9]+' } + if ($GraphError) { + $Message = Get-NormalizedError -message $GraphError.body.error + $Results.Add("Could not remove $Username from group '$($GraphLog.groupName)': $Message. This is likely because it's a Dynamic Group or synced with Active Directory") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$($GraphLog.groupName)': $Message" -Sev 'Error' -tenant $TenantFilter + } else { + $Results.Add("Successfully removed $Username from group '$($GraphLog.groupName)'") + Write-LogMessage -headers $Headers -API $APIName -message $GraphLog.message -Sev 'Info' -tenant $TenantFilter + } } } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $using:Headers -API $($using:APIName) -message "Could not remove $($using:Username) from group $GroupName : $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $using:TenantFilter -LogData $ErrorMessage - "Could not remove $($using:Username) from group $($GroupName): $($ErrorMessage.NormalizedError). This is likely because its a Dynamic Group or synched with active directory" + Write-LogMessage -headers $Headers -API $APIName -message "Error executing Graph bulk requests: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Results.Add("Error executing bulk removal requests: $($ErrorMessage.NormalizedError)") } } - if (-not $Returnval) { - $Returnval = "$($Username) is not a member of any groups." - Write-LogMessage -headers $Headers -API $APIName -message "$($Username) is not a member of any groups" -Sev 'Info' -tenant $TenantFilter + + # Execute Exchange Online bulk requests + if ($ExoBulkRequests.Count -gt 0) { + try { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + $Results.Add("Error - $ExoError") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + $Results.Add("Successfully removed $Username from group $($ExoLog.groupName)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } else { + $Results.Add("Could not remove $Username from $($ExoLog.groupName). This is likely because its a Dynamic Group or synched with active directory") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from $($ExoLog.groupName)" -Sev 'Error' -tenant $TenantFilter + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Error executing Exchange bulk requests: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Results.Add("Error executing bulk Exchange requests: $($ErrorMessage.NormalizedError)") + } } - return $Returnval + + return $Results } diff --git a/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 index b2d8d447e9d1..3b18b54b0678 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 @@ -33,7 +33,8 @@ function Remove-CIPPLicense { return "Scheduled license removal for $username" } else { try { - $ConvertTable = Import-Csv ConversionTable.csv + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -tenantid $tenantFilter $GroupMemberships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/memberOf/microsoft.graph.group?`$select=id,displayName,assignedLicenses" -tenantid $tenantFilter $LicenseGroups = $GroupMemberships | Where-Object { ($_.assignedLicenses | Measure-Object).Count -gt 0 } diff --git a/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 b/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 new file mode 100644 index 000000000000..c63ff4872094 --- /dev/null +++ b/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 @@ -0,0 +1,79 @@ +function Update-CippSamPermissions { + <# + .SYNOPSIS + Updates CIPP-SAM app permissions by merging missing permissions. + .DESCRIPTION + Retrieves current SAM permissions, merges any missing permissions, and updates the AppPermissions table. + .PARAMETER UpdatedBy + The user or system that is performing the update. Defaults to 'CIPP-API'. + .OUTPUTS + String indicating the result of the operation. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$UpdatedBy = 'CIPP-API' + ) + + try { + $CurrentPermissions = Get-CippSamPermissions + + if (($CurrentPermissions.MissingPermissions | Measure-Object).Count -eq 0) { + return 'No permissions to update' + } + + Write-Information 'Missing permissions found' + $MissingPermissions = $CurrentPermissions.MissingPermissions + $Permissions = $CurrentPermissions.Permissions + + $AppIds = @($Permissions.PSObject.Properties.Name + $MissingPermissions.PSObject.Properties.Name) + $NewPermissions = @{} + + foreach ($AppId in $AppIds) { + if (!$AppId) { continue } + $ApplicationPermissions = [system.collections.generic.list[object]]::new() + $DelegatedPermissions = [system.collections.generic.list[object]]::new() + + foreach ($Permission in $Permissions.$AppId.applicationPermissions) { + $ApplicationPermissions.Add($Permission) + } + if (($MissingPermissions.$AppId.applicationPermissions | Measure-Object).Count -gt 0) { + foreach ($MissingPermission in $MissingPermissions.$AppId.applicationPermissions) { + Write-Host "Adding missing permission: $MissingPermission" + $ApplicationPermissions.Add($MissingPermission) + } + } + + foreach ($Permission in $Permissions.$AppId.delegatedPermissions) { + $DelegatedPermissions.Add($Permission) + } + if (($MissingPermissions.$AppId.delegatedPermissions | Measure-Object).Count -gt 0) { + foreach ($MissingPermission in $MissingPermissions.$AppId.delegatedPermissions) { + Write-Host "Adding missing permission: $MissingPermission" + $DelegatedPermissions.Add($MissingPermission) + } + } + + $NewPermissions.$AppId = @{ + applicationPermissions = @($ApplicationPermissions | Sort-Object -Property label) + delegatedPermissions = @($DelegatedPermissions | Sort-Object -Property label) + } + } + + $Entity = @{ + 'PartitionKey' = 'CIPP-SAM' + 'RowKey' = 'CIPP-SAM' + 'Permissions' = [string]([PSCustomObject]$NewPermissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = $UpdatedBy + } + + $Table = Get-CIPPTable -TableName 'AppPermissions' + $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + Write-LogMessage -API 'UpdateCippSamPermissions' -message 'CIPP-SAM Permissions Updated' -Sev 'Info' -LogData $NewPermissions + + return 'Permissions Updated' + } catch { + throw "Failed to update permissions: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 index 7606d4d0606e..3451827a67d3 100644 --- a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 +++ b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 @@ -18,6 +18,11 @@ function Send-CIPPAlert { $Table = Get-CIPPTable -TableName SchedulerConfig $Filter = "RowKey eq 'CippNotifications' and PartitionKey eq 'CippNotifications'" $Config = [pscustomobject](Get-CIPPAzDataTableEntity @Table -Filter $Filter) + + if ($HTMLContent) { + $HTMLContent = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $HTMLContent + } + if ($Type -eq 'email') { Write-Information 'Trying to send email' try { @@ -39,6 +44,7 @@ function Send-CIPPAlert { } } } + $PowerShellBody = [PSCustomObject]@{ message = @{ subject = $Title @@ -52,6 +58,7 @@ function Send-CIPPAlert { } $JSONBody = ConvertTo-Json -Compress -Depth 10 -InputObject $PowerShellBody + if ($PSCmdlet.ShouldProcess($($Recipients.EmailAddress.Address -join ', '), 'Sending email')) { $null = New-GraphPostRequest -uri 'https://graph.microsoft.com/v1.0/me/sendMail' -tenantid $env:TenantID -NoAuthCheck $true -type POST -body ($JSONBody) } @@ -94,8 +101,20 @@ function Send-CIPPAlert { if ($Type -eq 'webhook') { Write-Information 'Trying to send webhook' + $ExtensionTable = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @ExtensionTable).config | ConvertFrom-Json) + + if ($Configuration.CFZTNA.WebhookEnabled -eq $true -and $Configuration.CFZTNA.Enabled -eq $true) { + $CFAPIKey = Get-ExtensionAPIKey -Extension 'CFZTNA' + $Headers = @{'CF-Access-Client-Id' = $Configuration.CFZTNA.ClientId; 'CF-Access-Client-Secret' = "$CFAPIKey" } + Write-Information 'CF-Access-Client-Id and CF-Access-Client-Secret headers added to webhook API request' + } else { + $Headers = $null + } + + $JSONBody = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $JSONContent -EscapeForJson try { - if ($Config.webhook -ne '' -or $AltWebhook -ne '') { + if (![string]::IsNullOrWhiteSpace($Config.webhook) -or ![string]::IsNullOrWhiteSpace($AltWebhook)) { if ($PSCmdlet.ShouldProcess($Config.webhook, 'Sending webhook')) { $webhook = if ($AltWebhook) { $AltWebhook } else { $Config.webhook } switch -wildcard ($webhook) { @@ -117,17 +136,29 @@ function Send-CIPPAlert { Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONBody } default { - Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONContent + $RestMethod = @{ + Uri = $webhook + Method = 'POST' + ContentType = 'application/json' + Body = $JSONContent + } + if ($Headers) { + $RestMethod['Headers'] = $Headers + } + Invoke-RestMethod @RestMethod } } } + Write-LogMessage -API 'Webhook Alerts' -message "Sent Webhook alert $title to External webhook" -tenant $TenantFilter -sev info + } else { + Write-LogMessage -API 'Webhook Alerts' -message 'No webhook URL configured' -sev warning } - Write-LogMessage -API 'Webhook Alerts' -message "Sent Webhook alert $title to External webhook" -tenant $TenantFilter -sev info } catch { $ErrorMessage = Get-CippException -Exception $_ Write-Information "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" Write-LogMessage -API 'Webhook Alerts' -message "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -sev error -LogData $ErrorMessage + return "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 index 272c0d21aff8..17b9201199e3 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 @@ -6,11 +6,39 @@ function Set-CIPPAssignedApplication { $AppType, $ApplicationId, $TenantFilter, + $GroupIds, + $AssignmentMode = 'replace', $APIName = 'Assign Application', $Headers ) Write-Host "GroupName: $GroupName Intent: $Intent AppType: $AppType ApplicationId: $ApplicationId TenantFilter: $TenantFilter APIName: $APIName" try { + $assignmentSettings = $null + if ($AppType) { + $assignmentSettings = @{ + '@odata.type' = "#microsoft.graph.$($AppType)AppAssignmentSettings" + } + + switch ($AppType) { + 'Win32Lob' { + $assignmentSettings.notifications = 'hideAll' + } + 'WinGet' { + $assignmentSettings.notifications = 'hideAll' + } + 'macOsVpp' { + $assignmentSettings.useDeviceLicensing = $true + } + 'iosVpp' { + $assignmentSettings.useDeviceLicensing = $true + } + default { + # No additional settings + } + } + } + + # Build the assignment object $MobileAppAssignment = switch ($GroupName) { 'AllUsers' { @(@{ @@ -19,12 +47,7 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings }) break } @@ -35,12 +58,7 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings }) break } @@ -52,12 +70,7 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings }, @{ '@odata.type' = '#microsoft.graph.mobileAppAssignment' @@ -65,27 +78,33 @@ function Set-CIPPAssignedApplication { '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null - } + settings = $assignmentSettings } ) } default { - $GroupNames = $GroupName.Split(',') - $GroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter | ForEach-Object { - $Group = $_ - foreach ($SingleName in $GroupNames) { - if ($_.displayname -like $SingleName) { - $group.id + $resolvedGroupIds = @() + if ($PSBoundParameters.ContainsKey('GroupIds') -and $GroupIds) { + $resolvedGroupIds = $GroupIds + } else { + $GroupNames = $GroupName.Split(',') + $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter | ForEach-Object { + $Group = $_ + foreach ($SingleName in $GroupNames) { + if ($_.displayName -like $SingleName) { + $group.id + } } } + Write-Information "found $($resolvedGroupIds) groups" + } + + # We ain't found nothing so we panic + if (-not $resolvedGroupIds) { + throw 'No matching groups resolved for assignment request.' } - Write-Information "found $($GroupIds) groups" - foreach ($Group in $GroupIds) { + + foreach ($Group in $resolvedGroupIds) { @{ '@odata.type' = '#microsoft.graph.mobileAppAssignment' target = @{ @@ -93,30 +112,79 @@ function Set-CIPPAssignedApplication { groupId = $Group } intent = $Intent - settings = @{ - '@odata.type' = "#microsoft.graph.$($appType)AppAssignmentSettings" - notifications = 'hideAll' - installTimeSettings = $null - restartSettings = $null + settings = $assignmentSettings + } + } + } + } + + # If we're appending, we need to get existing assignments + if ($AssignmentMode -eq 'append') { + try { + $ExistingAssignments = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($ApplicationId)/assignments" -tenantid $TenantFilter + } catch { + Write-Warning "Unable to retrieve existing assignments for $ApplicationId. Proceeding with new assignments only. Error: $($_.Exception.Message)" + $ExistingAssignments = @() + } + } + + # Deduplicate current assignments so the new ones override existing ones + if ($ExistingAssignments) { + $ExistingAssignments = $ExistingAssignments | ForEach-Object { + $ExistingAssignment = $_ + switch ($ExistingAssignment.target.'@odata.type') { + '#microsoft.graph.groupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $MobileAppAssignment.target.groupId) { + $ExistingAssignment + } + } + default { + if ($ExistingAssignment.target.'@odata.type' -notin $MobileAppAssignment.target.'@odata.type') { + $ExistingAssignment } } } } } + + $FinalAssignments = [System.Collections.Generic.List[object]]::new() + if ($AssignmentMode -eq 'append' -and $ExistingAssignments) { + $ExistingAssignments | ForEach-Object { + $FinalAssignments.Add(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = $_.target + intent = $_.intent + settings = $_.settings + }) + } + + $MobileAppAssignment | ForEach-Object { + $FinalAssignments.Add(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = $_.target + intent = $_.intent + settings = $_.settings + }) + } + } else { + $FinalAssignments = $MobileAppAssignment + } + $DefaultAssignmentObject = [PSCustomObject]@{ mobileAppAssignments = @( - $MobileAppAssignment + $FinalAssignments ) } if ($PSCmdlet.ShouldProcess($GroupName, "Assigning Application $ApplicationId")) { Start-Sleep -Seconds 1 + # Write-Information (ConvertTo-Json $DefaultAssignmentObject -Depth 10) $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($ApplicationId)/assign" -tenantid $TenantFilter -type POST -body ($DefaultAssignmentObject | ConvertTo-Json -Compress -Depth 10) - Write-LogMessage -headers $Headers -API $APIName -message "Assigned Application to $($GroupName)" -Sev 'Info' -tenant $TenantFilter + Write-LogMessage -headers $Headers -API $APIName -message "Assigned Application $ApplicationId to $($GroupName)" -Sev 'Info' -tenant $TenantFilter } - return "Assigned Application to $($GroupName)" + return "Assigned Application $ApplicationId to $($GroupName)" } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APIName -message "Could not assign application to $GroupName. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - return "Could not assign application to $GroupName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message "Could not assign application $ApplicationId to $GroupName. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw "Could not assign application $ApplicationId to $GroupName. Error: $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 index afe026749296..72fedbbeace3 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 @@ -10,7 +10,10 @@ function Set-CIPPAssignedPolicy { $APIName = 'Assign Policy', $Headers, $AssignmentFilterName, - $AssignmentFilterType = 'include' + $AssignmentFilterType = 'include', + $GroupIds, + $GroupNames, + $AssignmentMode = 'replace' ) Write-Host "Assigning policy $PolicyId ($PlatformType/$Type) to $GroupName" @@ -22,7 +25,7 @@ function Set-CIPPAssignedPolicy { Write-Host "Looking up assignment filter by name: $AssignmentFilterName" $AllFilters = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter $MatchingFilter = $AllFilters | Where-Object { $_.displayName -like $AssignmentFilterName } | Select-Object -First 1 - + if ($MatchingFilter) { $ResolvedFilterId = $MatchingFilter.id Write-Host "Found assignment filter: $($MatchingFilter.displayName) with ID: $ResolvedFilterId" @@ -33,7 +36,7 @@ function Set-CIPPAssignedPolicy { } } - $assignmentsList = New-Object System.Collections.Generic.List[System.Object] + $assignmentsList = [System.Collections.Generic.List[object]]::new() switch ($GroupName) { 'allLicensedUsers' { $assignmentsList.Add( @@ -70,23 +73,30 @@ function Set-CIPPAssignedPolicy { ) } default { - $GroupNames = $GroupName.Split(',').Trim() - $GroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | - ForEach-Object { - foreach ($SingleName in $GroupNames) { - if ($_.displayName -like $SingleName) { - $_.id + # Use GroupIds if provided, otherwise resolve by name + $resolvedGroupIds = @() + if ($GroupIds -and @($GroupIds).Count -gt 0) { + $resolvedGroupIds = @($GroupIds) + Write-Host "Using provided GroupIds: $($resolvedGroupIds -join ', ')" + } elseif ($GroupName) { + $GroupNames = $GroupName.Split(',').Trim() + $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | + ForEach-Object { + foreach ($SingleName in $GroupNames) { + if ($_.displayName -like $SingleName) { + $_.id + } } } - } - - if (-not $GroupIds -or $GroupIds.Count -eq 0) { + } + + if (-not $resolvedGroupIds -or $resolvedGroupIds.Count -eq 0) { $ErrorMessage = "No groups found matching the specified name(s): $GroupName. Policy not assigned." Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -Sev 'Warning' -tenant $TenantFilter - return $ErrorMessage + throw $ErrorMessage } - - foreach ($gid in $GroupIds) { + + foreach ($gid in $resolvedGroupIds) { $assignmentsList.Add( @{ target = @{ @@ -134,26 +144,93 @@ function Set-CIPPAssignedPolicy { } } - $assignmentsObject = [PSCustomObject]@{ - assignments = $assignmentsList + # If we're appending, we need to get existing assignments + $ExistingAssignments = @() + if ($AssignmentMode -eq 'append') { + try { + $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assignments" + $ExistingAssignments = New-GraphGetRequest -uri $uri -tenantid $TenantFilter + Write-Host "Found $($ExistingAssignments.Count) existing assignments for policy $PolicyId" + } catch { + Write-Warning "Unable to retrieve existing assignments for $PolicyId. Proceeding with new assignments only. Error: $($_.Exception.Message)" + $ExistingAssignments = @() + } + } + + # Deduplicate current assignments so the new ones override existing ones + if ($ExistingAssignments -and $ExistingAssignments.Count -gt 0) { + $ExistingAssignments = $ExistingAssignments | ForEach-Object { + $ExistingAssignment = $_ + switch ($ExistingAssignment.target.'@odata.type') { + '#microsoft.graph.groupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { + $ExistingAssignment + } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { + $ExistingAssignment + } + } + default { + if ($ExistingAssignment.target.'@odata.type' -notin $assignmentsList.target.'@odata.type') { + $ExistingAssignment + } + } + } + } + } + + # Build final assignments list + $FinalAssignments = [System.Collections.Generic.List[object]]::new() + if ($AssignmentMode -eq 'append' -and $ExistingAssignments) { + foreach ($existing in $ExistingAssignments) { + $FinalAssignments.Add(@{ + target = $existing.target + }) + } + } + + foreach ($newAssignment in $assignmentsList) { + $FinalAssignments.Add($newAssignment) } - $AssignJSON = $assignmentsObject | ConvertTo-Json -Depth 10 -Compress + # Determine the assignment property name based on type + $AssignmentPropertyName = switch ($Type) { + 'deviceHealthScripts' { 'deviceHealthScriptAssignments' } + 'deviceManagementScripts' { 'deviceManagementScriptAssignments' } + 'deviceShellScripts' { 'deviceManagementScriptAssignments' } + default { 'assignments' } + } + + $assignmentsObject = @{ $AssignmentPropertyName = @($FinalAssignments) } + + $AssignJSON = ConvertTo-Json -InputObject $assignmentsObject -Depth 10 -Compress if ($PSCmdlet.ShouldProcess($GroupName, "Assigning policy $PolicyId")) { $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assign" $null = New-GraphPOSTRequest -uri $uri -tenantid $TenantFilter -type POST -body $AssignJSON + + # Build a friendly display name for the assigned groups + $AssignedGroupsDisplay = if ($GroupNames -and @($GroupNames).Count -gt 0) { + ($GroupNames -join ', ') + } elseif ($GroupName) { + $GroupName + } else { + 'specified groups' + } + if ($ExcludeGroup) { - Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$GroupName' and excluded group '$ExcludeGroup' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter - return "Successfully assigned group '$GroupName' and excluded group '$ExcludeGroup' on Policy $PolicyId" + Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + return "Successfully assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" } else { - Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$GroupName' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter - return "Successfully assigned group '$GroupName' on Policy $PolicyId" + Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + return "Successfully assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" } } } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -headers $Headers -API $APIName -message "Failed to assign $GroupName to Policy $PolicyId, using Platform $PlatformType and $Type. The error is:$ErrorMessage" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to assign $GroupName to Policy $PolicyId, using Platform $PlatformType and $Type. The error is:$($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage return "Failed to assign $GroupName to Policy $PolicyId. Error: $ErrorMessage" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 b/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 new file mode 100644 index 000000000000..c2b6d75d2fea --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 @@ -0,0 +1,66 @@ +function Set-CIPPAuditLogUserExclusion { + <# + .SYNOPSIS + Sets user exclusions for Audit Log alerting. + .DESCRIPTION + This function allows you to add or remove user exclusions for Audit Log alerting in a specified tenant + by updating the AuditLogUserExclusions CIPP table. + .PARAMETER TenantFilter + The tenant identifier for which to set the user exclusions. + .PARAMETER Users + An array of user identifiers (GUIDs or UPNs) to be added or removed from the exclusion list. + .PARAMETER Action + The action to perform: 'Add' to add users to the exclusion list, 'Remove' to remove users from the exclusion list. + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. This is supplied automatically by the API. + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string[]]$Users, + [ValidateSet('Add', 'Remove')] + [string]$Action = 'Add', + [ValidateSet('Location')] + [string]$Type = 'Location', + $Headers + ) + + $AuditLogExclusionsTable = Get-CIPPTable -tablename 'AuditLogUserExclusions' + $ExistingEntries = Get-CIPPAzDataTableEntity @AuditLogExclusionsTable -Filter "PartitionKey eq '$TenantFilter'" + + $Results = foreach ($User in $Users) { + if ($Action -eq 'Add') { + $ExistingUser = $ExistingEntries | Where-Object { $_.RowKey -eq $User -and $_.PartitionKey -eq $TenantFilter -and $_.Type -eq $Type } + if (!$ExistingUser) { + $NewEntry = [PSCustomObject]@{ + PartitionKey = $TenantFilter + RowKey = $User + ExcludedOn = (Get-Date).ToString('o') + Type = $Type + } + if ($PSCmdlet.ShouldProcess("Adding exclusion for user: $User")) { + Add-CIPPAzDataTableEntity @AuditLogExclusionsTable -Entity $NewEntry + "Added audit log exclusion for user: $User" + Write-LogMessage -headers $Headers -API 'Set-CIPPAuditLogUserExclusion' -message "Added audit log exclusion for user: $User" -Sev 'Info' -tenant $TenantFilter -LogData $NewEntry + } + } else { + "User $User is already excluded." + } + } elseif ($Action -eq 'Remove') { + if ($ExistingEntries.RowKey -contains $User) { + if ($PSCmdlet.ShouldProcess("Removing exclusion for user: $User")) { + $Entity = $ExistingEntries | Where-Object { $_.RowKey -eq $User -and $_.PartitionKey -eq $TenantFilter -and $_.Type -eq $Type } + Remove-AzDataTableEntity @AuditLogExclusionsTable -Entity $Entity + Write-LogMessage -headers $Headers -API 'Set-CIPPAuditLogUserExclusion' -message "Removed audit log exclusion for user: $User" -Sev 'Info' -tenant $TenantFilter -LogData $Entity + "Removed audit log exclusion for user: $User" + } + } else { + "User $User is not in the exclusion list." + } + } + } + return @($Results) +} + diff --git a/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 b/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 index 956f12951375..a8d045379c26 100644 --- a/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 @@ -7,12 +7,31 @@ function Set-CIPPCAExclusion { $PolicyId, $Username, $Users, + $Groups, $Headers ) try { $CheckExisting = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true if ($ExclusionType -eq 'add') { - if ($Users) { + if ($Groups) { + # Handle group exclusions + $Groupnames = $Groups.addedFields.displayName + $ExcludeGroups = [System.Collections.Generic.List[string]]::new() + foreach ($Group in $CheckExisting.conditions.users.excludeGroups) { + $ExcludeGroups.Add($Group) + } + foreach ($Group in $Groups.value) { + if ($Group -and $Group -ne '' -and $ExcludeGroups -notcontains $Group) { + $ExcludeGroups.Add($Group) + } + } + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeGroups = $ExcludeGroups + } + } + } + } elseif ($Users) { $Username = $Users.addedFields.userPrincipalName $ExcludeUsers = [System.Collections.Generic.List[string]]::new() foreach ($User in $CheckExisting.conditions.users.excludeUsers) { @@ -29,7 +48,7 @@ function Set-CIPPCAExclusion { } } } - } else { + } elseif ($UserID) { if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName } @@ -43,52 +62,92 @@ function Set-CIPPCAExclusion { $RawJson = ConvertTo-Json -Depth 10 -InputObject $NewExclusions - if ($Users) { - $UserIdentifier = ($Username -join ', ') + if ($Groups) { + $Identifier = ($Groupnames -join ', ') + $IdentifierType = 'group' + } elseif ($Users) { + $Identifier = ($Username -join ', ') + $IdentifierType = 'user' } else { - $UserIdentifier = $UserID + $Identifier = $UserID + $IdentifierType = 'user' } - if ($PSCmdlet.ShouldProcess($PolicyId, "Add exclusion for $UserIdentifier")) { + if ($PSCmdlet.ShouldProcess($PolicyId, "Add exclusion for $IdentifierType $Identifier")) { $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true } } if ($ExclusionType -eq 'remove') { - if ($Users) { + if ($Groups) { + # Handle group exclusions removal + $GroupID = $Groups.value | Where-Object { $_ -and $_ -ne '' } + $Groupnames = $Groups.addedFields.displayName + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeGroups = @($CheckExisting.conditions.users.excludeGroups | Where-Object { $GroupID -notcontains $_ }) + } + } + } + } elseif ($Users) { $UserID = $Users.value | Where-Object { $_ -and $_ -ne '' } $Username = $Users.addedFields.userPrincipalName + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers | Where-Object { $UserID -notcontains $_ }) + } + } + } } else { if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName } $UserID = @($UserID) - } - $NewExclusions = [pscustomobject]@{ - conditions = [pscustomobject]@{ users = [pscustomobject]@{ - excludeUsers = @($CheckExisting.conditions.users.excludeUsers | Where-Object { $UserID -notcontains $_ }) + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers | Where-Object { $UserID -notcontains $_ }) + } } } } $RawJson = ConvertTo-Json -Depth 10 -InputObject $NewExclusions - - if ($Users) { - $UserIdentifier = ($Username -join ', ') + + if ($Groups) { + $Identifier = ($Groupnames -join ', ') + $IdentifierType = 'group' + } elseif ($Users) { + $Identifier = ($Username -join ', ') + $IdentifierType = 'user' } else { - $UserIdentifier = $UserID + $Identifier = $UserID + $IdentifierType = 'user' } - if ($PSCmdlet.ShouldProcess($PolicyId, "Remove exclusion for $UserIdentifier")) { + if ($PSCmdlet.ShouldProcess($PolicyId, "Remove exclusion for $IdentifierType $Identifier")) { $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true } } - foreach ($User in $Username) { - "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" - Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" -Sev 'Info' -tenant $TenantFilter + if ($Groups) { + foreach ($Group in $Groupnames) { + "Successfully performed $($ExclusionType) exclusion for group $Group from policy $($CheckExisting.displayName)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Successfully performed $($ExclusionType) exclusion for group $Group from policy $($CheckExisting.displayName)" -Sev 'Info' -tenant $TenantFilter + } + } else { + foreach ($User in $Username) { + "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" -Sev 'Info' -tenant $TenantFilter + } } } catch { - foreach ($User in $Username) { - "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $($_.Exception.Message)" - Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + if ($Groups) { + foreach ($Group in $Groupnames) { + "Failed to $($ExclusionType) group exclusion for $Group from policy $($CheckExisting.displayName): $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Failed to $($ExclusionType) group exclusion for $Group from policy $($CheckExisting.displayName): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + } else { + foreach ($User in $Username) { + "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 b/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 index 8b52c1d83d6f..51ca8ee0289b 100644 --- a/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 @@ -11,20 +11,20 @@ function Set-CIPPCAPolicyServiceException { $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true # If the policy is set to affect either all or all guests/external users - if ($policy.conditions.users.includeUsers -eq "All" -OR $policy.conditions.users.includeGuestsOrExternalUsers.externalTenants.membershipKind -eq "all") { + if ($policy.conditions.users.includeUsers -eq 'All' -or $policy.conditions.users.includeGuestsOrExternalUsers.externalTenants.membershipKind -eq 'all') { # Check if the policy already has the correct service provider exception if ($policy.conditions.users.excludeGuestsOrExternalUsers) { $excludeConfig = $policy.conditions.users.excludeGuestsOrExternalUsers # Check if serviceProvider is already in guestOrExternalUserTypes - $hasServiceProvider = $excludeConfig.guestOrExternalUserTypes -match "serviceProvider" + $hasServiceProvider = $excludeConfig.guestOrExternalUserTypes -match 'serviceProvider' # Check if externalTenants is properly configured if ($excludeConfig.externalTenants) { $externalTenants = $excludeConfig.externalTenants - $hasCorrectExternalTenants = ($externalTenants.membershipKind -eq "enumerated" -and - $externalTenants.members -contains $CSPtenantId) + $hasCorrectExternalTenants = ($externalTenants.membershipKind -eq 'enumerated' -and + $externalTenants.members -contains $CSPtenantId) # If already configured, exit without making changes if ($hasServiceProvider -and $hasCorrectExternalTenants) { @@ -38,11 +38,11 @@ function Set-CIPPCAPolicyServiceException { # Define data $excludeServiceProviderData = [pscustomobject]@{ - guestOrExternalUserTypes = "serviceProvider" - externalTenants = [pscustomobject]@{ - '@odata.type' = "#microsoft.graph.conditionalAccessEnumeratedExternalTenants" - membershipKind = "enumerated" - members = @( + guestOrExternalUserTypes = 'serviceProvider' + externalTenants = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.conditionalAccessEnumeratedExternalTenants' + membershipKind = 'enumerated' + members = @( $CSPtenantId ) } @@ -56,27 +56,31 @@ function Set-CIPPCAPolicyServiceException { if ($policy.conditions.users.excludeGuestsOrExternalUsers) { # If guestOrExternalUserTypes doesn't include type serviceProvider add it - if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -notmatch "serviceProvider") { - $policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes += ",serviceProvider" + if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -notmatch 'serviceProvider') { + $policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes += ',serviceProvider' } # If guestOrExternalUserTypes includes type serviceProvider and membershipKind is not all tenants - if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -match "serviceProvider" -AND $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -ne "all") { + if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -match 'serviceProvider' -and $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -ne 'all') { # If membershipKind is enumerated and members does not include our tenant add it - if ($policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -eq "enumerated" -AND $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.members -notmatch $CSPtenantId) { + if ($policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -eq 'enumerated' -and $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.members -notmatch $CSPtenantId) { $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.members += $($CSPtenantId) } } } + $Json = $policy | Select-Object * -ExcludeProperty TemplateId, createdDateTime, modifiedDateTime | ConvertTo-Json -Depth 20 - } + Write-Information 'Updated policy JSON:' + Write-Information $Json - # Patch policy with updated data. - # TemplateId,createdDateTime,modifiedDateTime can't be written back so exclude them using -ExcludeProperty - if ($PSCmdlet.ShouldProcess($PolicyId, "Update policy with service provider exception")) { - $patch = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($policy.id)" -tenantid $TenantFilter -type PATCH -body ($policy | Select-Object * -ExcludeProperty TemplateId,createdDateTime,modifiedDateTime | ConvertTo-Json -Depth 20) -AsApp $true - return "Successfully added service provider to policy $PolicyId" + # Patch policy with updated data. + # TemplateId,createdDateTime,modifiedDateTime can't be written back so exclude them using -ExcludeProperty + if ($PSCmdlet.ShouldProcess($PolicyId, 'Update policy with service provider exception')) { + $patch = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($policy.id)" -tenantid $TenantFilter -type PATCH -body ($policy | Select-Object * -ExcludeProperty TemplateId, createdDateTime, modifiedDateTime | ConvertTo-Json -Depth 20) -AsApp $true + return "Successfully added service provider to policy $PolicyId" + } + } else { + return "Policy $PolicyId does not target all users or all guest/external users. No changes made." } - } diff --git a/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 b/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 new file mode 100644 index 000000000000..4042bed25611 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 @@ -0,0 +1,34 @@ +function Set-CIPPCloudManaged( + [string]$TenantFilter, + [string]$Id, + [string]$DisplayName, + [ValidateSet('User', 'Group', 'Contact')] + [string]$Type, + [bool]$IsCloudManaged, + [string]$APIName = 'Set Cloud Managed', + $Headers +) { + try { + $statusText = if ($IsCloudManaged -eq $true) { 'cloud-managed' } else { 'on-premises managed' } + + $URI = switch ($Type) { + 'User' { "https://graph.microsoft.com/beta/users/$Id/onPremisesSyncBehavior" } + 'Group' { "https://graph.microsoft.com/beta/groups/$Id/onPremisesSyncBehavior" } + 'Contact' { "https://graph.microsoft.com/beta/contacts/$Id/onPremisesSyncBehavior" } + } + + $Body = @{ + isCloudManaged = $IsCloudManaged + } | ConvertTo-Json -Depth 10 + + $null = New-GraphPOSTRequest -uri $URI -type PATCH -tenantid $TenantFilter -body $Body -AsApp $true + $Message = "Successfully set $Type $DisplayName ($Id) source of authority to $statusText" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set $Type $DisplayName ($Id) source of authority to ${statusText}: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Error' -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 new file mode 100644 index 000000000000..e865512367d1 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheAdminConsentRequestPolicy { + <# + .SYNOPSIS + Caches admin consent request policy and settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache consent policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching admin consent request policy' -sev Info + $ConsentPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/adminConsentRequestPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AdminConsentRequestPolicy' -Data @($ConsentPolicy) + $ConsentPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached admin consent request policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache admin consent request policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 new file mode 100644 index 000000000000..f056e4ec470f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 @@ -0,0 +1,47 @@ +function Set-CIPPDBCacheAppRoleAssignments { + <# + .SYNOPSIS + Caches application role assignments for a tenant + + .PARAMETER TenantFilter + The tenant to cache app role assignments for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching app role assignments' -sev Info + + # Get all service principals first + $ServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals?$select=id,appId,displayName&$top=999&expand=appRoleAssignments' -tenantid $TenantFilter + + $AllAppRoleAssignments = [System.Collections.Generic.List[object]]::new() + + foreach ($SP in $ServicePrincipals) { + try { + $AppRoleAssignments = $SP.appRoleAssignments + foreach ($Assignment in $AppRoleAssignments) { + # Enrich with service principal info + $Assignment | Add-Member -NotePropertyName 'servicePrincipalDisplayName' -NotePropertyValue $SP.displayName -Force + $Assignment | Add-Member -NotePropertyName 'servicePrincipalAppId' -NotePropertyValue $SP.appId -Force + $AllAppRoleAssignments.Add($Assignment) + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to get app role assignments for $($SP.displayName): $($_.Exception.Message)" -sev Warning + } + } + + if ($AllAppRoleAssignments.Count -gt 0) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AppRoleAssignments' -Data $AllAppRoleAssignments + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AppRoleAssignments' -Data $AllAppRoleAssignments -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllAppRoleAssignments.Count) app role assignments" -sev Info + } + $AllAppRoleAssignments = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache app role assignments: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 new file mode 100644 index 000000000000..9844836372d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheApps { + <# + .SYNOPSIS + Caches all application registrations for a tenant + + .PARAMETER TenantFilter + The tenant to cache applications for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching applications' -sev Info + + $Apps = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/applications?$top=999&expand=owners' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -Data $Apps + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -Data $Apps -Count + $Apps = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached applications successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache applications: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 new file mode 100644 index 000000000000..587eaa8a587b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheAuthenticationFlowsPolicy { + <# + .SYNOPSIS + Caches authentication flows policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authentication flows policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authentication flows policy' -sev Info + + $AuthFlowPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationFlowsPolicy' -tenantid $TenantFilter -AsApp $true + + if ($AuthFlowPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationFlowsPolicy' -Data @($AuthFlowPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authentication flows policy successfully' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache authentication flows policy: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 new file mode 100644 index 000000000000..2700a8e2c3c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheAuthenticationMethodsPolicy { + <# + .SYNOPSIS + Caches authentication methods policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authentication methods policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authentication methods policy' -sev Info + $AuthMethodsPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationMethodsPolicy' -Data @($AuthMethodsPolicy) + $AuthMethodsPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authentication methods policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authentication methods policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 new file mode 100644 index 000000000000..7167e39f66a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheAuthorizationPolicy { + <# + .SYNOPSIS + Caches authorization policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authorization policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authorization policy' -sev Info + $AuthPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthorizationPolicy' -Data @($AuthPolicy) + $AuthPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authorization policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authorization policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 new file mode 100644 index 000000000000..168866b475c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheB2BManagementPolicy { + <# + .SYNOPSIS + Caches B2B management policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache B2B management policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching B2B management policy' -sev Info + + $LegacyPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/b2bManagementPolicies' -tenantid $TenantFilter + $B2BManagementPolicy = $LegacyPolicies + + if ($B2BManagementPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'B2BManagementPolicy' -Data @($B2BManagementPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached B2B management policy successfully' -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No B2B management policy found' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache B2B management policy: $($_.Exception.Message)" -sev Warning -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 new file mode 100644 index 000000000000..81a21f5bbe9f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 @@ -0,0 +1,68 @@ +function Set-CIPPDBCacheConditionalAccessPolicies { + <# + .SYNOPSIS + Caches all Conditional Access policies, named locations, and authentication strengths for a tenant (if CA capable) + + .PARAMETER TenantFilter + The tenant to cache CA policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessCache' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Azure AD Premium license, skipping CA' -sev Info + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Conditional Access policies' -sev Info + + try { + $CAPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter + if ($CAPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' -Data $CAPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' -Data $CAPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($CAPolicies.Count) CA policies" -sev Info + } + $CAPolicies = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache CA policies: $($_.Exception.Message)" -sev Warning + } + + try { + $NamedLocations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations?$top=999' -tenantid $TenantFilter + + if ($NamedLocations) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'NamedLocations' -Data $NamedLocations + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'NamedLocations' -Data $NamedLocations -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($NamedLocations.Count) named locations" -sev Info + } + $NamedLocations = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache named locations: $($_.Exception.Message)" -sev Warning + } + + try { + $AuthStrengths = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies' -tenantid $TenantFilter + + if ($AuthStrengths) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationStrengths' -Data $AuthStrengths + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationStrengths' -Data $AuthStrengths -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AuthStrengths.Count) authentication strengths" -sev Info + } + $AuthStrengths = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authentication strengths: $($_.Exception.Message)" -sev Warning + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached CA data successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Conditional Access data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 new file mode 100644 index 000000000000..861d0c25a50c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheCredentialUserRegistrationDetails { + <# + .SYNOPSIS + Caches MFA and SSPR registration details for all users in a tenant + + .PARAMETER TenantFilter + The tenant to cache credential user registration details for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching credential user registration details' -sev Info + + $CredentialUserRegistrationDetails = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails' -tenantid $TenantFilter + + if ($CredentialUserRegistrationDetails) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CredentialUserRegistrationDetails' -Data $CredentialUserRegistrationDetails + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CredentialUserRegistrationDetails' -Data $CredentialUserRegistrationDetails -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($CredentialUserRegistrationDetails.Count) credential user registration details" -sev Info + } + $CredentialUserRegistrationDetails = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache credential user registration details: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 new file mode 100644 index 000000000000..e9e66753dcd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheCrossTenantAccessPolicy { + <# + .SYNOPSIS + Caches cross-tenant access policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching cross-tenant access policy' -sev Info + $CrossTenantPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/crossTenantAccessPolicy/default' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CrossTenantAccessPolicy' -Data @($CrossTenantPolicy) + $CrossTenantPolicy = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached cross-tenant access policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache cross-tenant access policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 new file mode 100644 index 000000000000..556094e09ada --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheDefaultAppManagementPolicy { + <# + .SYNOPSIS + Caches default app management policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching default app management policy' -sev Info + $AppMgmtPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/defaultAppManagementPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DefaultAppManagementPolicy' -Data @($AppMgmtPolicy) + $AppMgmtPolicy = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached default app management policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache default app management policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 new file mode 100644 index 000000000000..ec2da92abc21 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheDeviceRegistrationPolicy { + <# + .SYNOPSIS + Caches device registration policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache device registration policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching device registration policy' -sev Info + + $DeviceRegistrationPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $TenantFilter + + if ($DeviceRegistrationPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceRegistrationPolicy' -Data @($DeviceRegistrationPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached device registration policy successfully' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache device registration policy: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 new file mode 100644 index 000000000000..aa2c1f6b9d01 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDeviceSettings { + <# + .SYNOPSIS + Caches device settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache device settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching device settings' -sev Info + + $DeviceSettings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/deviceLocalCredentials' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceSettings' -Data @($DeviceSettings) + $DeviceSettings = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached device settings successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache device settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 new file mode 100644 index 000000000000..3bc9b96a0ec7 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDevices { + <# + .SYNOPSIS + Caches all Azure AD devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache devices for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Azure AD devices' -sev Info + + $Devices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$top=999&$select=id,displayName,operatingSystem,operatingSystemVersion,trustType,accountEnabled,approximateLastSignInDateTime' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -Data $Devices + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -Data $Devices -Count + $Devices = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Azure AD devices successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Azure AD devices: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 new file mode 100644 index 000000000000..dcd28623b7e9 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDirectoryRecommendations { + <# + .SYNOPSIS + Caches directory recommendations for a tenant + + .PARAMETER TenantFilter + The tenant to cache recommendations for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory recommendations' -sev Info + + $Recommendations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/recommendations?$top=999' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -Data $Recommendations + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -Data $Recommendations -Count + $Recommendations = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory recommendations successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache directory recommendations: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 new file mode 100644 index 000000000000..a4943be1759d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheDomains { + <# + .SYNOPSIS + Caches domains for a tenant + + .PARAMETER TenantFilter + The tenant to cache domains for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching domains' -sev Info + $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Domains' -Data @($Domains) + $Domains = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached domains successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache domains: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 new file mode 100644 index 000000000000..31e57744c336 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoAcceptedDomains { + <# + .SYNOPSIS + Caches Exchange Online Accepted Domains + + .PARAMETER TenantFilter + The tenant to cache accepted domains for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Accepted Domains' -sev Info + + $AcceptedDomains = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AcceptedDomain' + + if ($AcceptedDomains) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAcceptedDomains' -Data $AcceptedDomains + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAcceptedDomains' -Data $AcceptedDomains -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AcceptedDomains.Count) Accepted Domains" -sev Info + } + $AcceptedDomains = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Accepted Domains: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 new file mode 100644 index 000000000000..cfd709c4b04b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoAntiPhishPolicies { + <# + .SYNOPSIS + Caches Exchange Online Anti-Phishing policies and rules + + .PARAMETER TenantFilter + The tenant to cache Anti-Phishing data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Anti-Phishing policies and rules' -sev Info + + # Get Anti-Phishing policies + $AntiPhishPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishPolicy' + if ($AntiPhishPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicies' -Data $AntiPhishPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicies' -Data $AntiPhishPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishPolicies.Count) Anti-Phishing policies" -sev Info + } + $AntiPhishPolicies = $null + + # Get Anti-Phishing rules + $AntiPhishRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishRule' + if ($AntiPhishRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishRules' -Data $AntiPhishRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishRules' -Data $AntiPhishRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishRules.Count) Anti-Phishing rules" -sev Info + } + $AntiPhishRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Anti-Phishing data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 new file mode 100644 index 000000000000..161d582f3fe5 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoDkimSigningConfig { + <# + .SYNOPSIS + Caches Exchange Online DKIM signing configuration + + .PARAMETER TenantFilter + The tenant to cache DKIM configuration for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange DKIM signing configuration' -sev Info + + $DkimConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DkimSigningConfig' + + if ($DkimConfig) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoDkimSigningConfig' -Data $DkimConfig + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoDkimSigningConfig' -Data $DkimConfig -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($DkimConfig.Count) DKIM configurations" -sev Info + } + $DkimConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache DKIM configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 new file mode 100644 index 000000000000..025401125b02 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoMalwareFilterPolicies { + <# + .SYNOPSIS + Caches Exchange Online Malware Filter policies and rules + + .PARAMETER TenantFilter + The tenant to cache Malware Filter data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Malware Filter policies and rules' -sev Info + + # Get Malware Filter policies + $MalwarePolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterPolicy' + if ($MalwarePolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicies' -Data $MalwarePolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicies' -Data $MalwarePolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwarePolicies.Count) Malware Filter policies" -sev Info + } + $MalwarePolicies = $null + + # Get Malware Filter rules + $MalwareRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterRule' + if ($MalwareRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterRules' -Data $MalwareRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterRules' -Data $MalwareRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwareRules.Count) Malware Filter rules" -sev Info + } + $MalwareRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Malware Filter data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 new file mode 100644 index 000000000000..d0733cac780a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 @@ -0,0 +1,32 @@ +function Set-CIPPDBCacheExoOrganizationConfig { + <# + .SYNOPSIS + Caches Exchange Online Organization Configuration + + .PARAMETER TenantFilter + The tenant to cache organization configuration for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Organization configuration' -sev Info + + $OrgConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-OrganizationConfig' + + if ($OrgConfig) { + # OrganizationConfig returns a single object, wrap in array for consistency + $OrgConfigArray = @($OrgConfig) + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoOrganizationConfig' -Data $OrgConfigArray + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoOrganizationConfig' -Data $OrgConfigArray -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Exchange Organization configuration' -sev Info + } + $OrgConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Organization configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 new file mode 100644 index 000000000000..e49576235842 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoSafeAttachmentPolicies { + <# + .SYNOPSIS + Caches Exchange Online Safe Attachment policies and rules + + .PARAMETER TenantFilter + The tenant to cache Safe Attachment data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Attachment policies and rules' -sev Info + + # Get Safe Attachment policies + $SafeAttachmentPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentPolicy' + if ($SafeAttachmentPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicies' -Data $SafeAttachmentPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicies' -Data $SafeAttachmentPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentPolicies.Count) Safe Attachment policies" -sev Info + } + $SafeAttachmentPolicies = $null + + # Get Safe Attachment rules + $SafeAttachmentRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentRule' + if ($SafeAttachmentRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentRules' -Data $SafeAttachmentRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentRules' -Data $SafeAttachmentRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentRules.Count) Safe Attachment rules" -sev Info + } + $SafeAttachmentRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Attachment data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 new file mode 100644 index 000000000000..33276c8fb993 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoSafeLinksPolicies { + <# + .SYNOPSIS + Caches Exchange Online Safe Links policies and rules + + .PARAMETER TenantFilter + The tenant to cache Safe Links data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Links policies and rules' -sev Info + + # Get Safe Links policies + $SafeLinksPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksPolicy' + if ($SafeLinksPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicies' -Data $SafeLinksPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicies' -Data $SafeLinksPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksPolicies.Count) Safe Links policies" -sev Info + } + $SafeLinksPolicies = $null + + # Get Safe Links rules + $SafeLinksRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksRule' + if ($SafeLinksRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksRules' -Data $SafeLinksRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksRules' -Data $SafeLinksRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksRules.Count) Safe Links rules" -sev Info + } + $SafeLinksRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Links data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 new file mode 100644 index 000000000000..5328e63b99af --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoTransportRules { + <# + .SYNOPSIS + Caches Exchange Online Transport Rules (Mail Flow Rules) + + .PARAMETER TenantFilter + The tenant to cache Transport Rules for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Transport Rules' -sev Info + + $TransportRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' + + if ($TransportRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTransportRules' -Data $TransportRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTransportRules' -Data $TransportRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($TransportRules.Count) Transport Rules" -sev Info + } + $TransportRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Transport Rules: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 new file mode 100644 index 000000000000..84d1d971ed9a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheGroups { + <# + .SYNOPSIS + Caches all groups for a tenant + + .PARAMETER TenantFilter + The tenant to cache groups for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching groups' -sev Info + + $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName,groupTypes,mail,mailEnabled,securityEnabled,membershipRule,onPremisesSyncEnabled' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $Groups + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $Groups -Count + $Groups = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached groups successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache groups: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 new file mode 100644 index 000000000000..96a1b5f02f52 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheGuests { + <# + .SYNOPSIS + Caches all guest users for a tenant + + .PARAMETER TenantFilter + The tenant to cache guest users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching guest users' -sev Info + + $Guests = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=userType eq 'Guest'&`$expand=sponsors&`$top=999" -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -Data $Guests + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -Data $Guests -Count + $Guests = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached guest users successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache guest users: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 new file mode 100644 index 000000000000..3330ad5f8255 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheIntuneAppProtectionPolicies { + <# + .SYNOPSIS + Caches Intune App Protection Policies + + .PARAMETER TenantFilter + The tenant to cache app protection policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Intune App Protection Policies' -sev Info + + # iOS Managed App Protection Policies + $IosPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/iosManagedAppProtections?$expand=assignments' -tenantid $TenantFilter + if ($IosPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneIosAppProtectionPolicies' -Data $IosPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneIosAppProtectionPolicies' -Data $IosPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($IosPolicies.Count) iOS app protection policies" -sev Info + } + $IosPolicies = $null + + # Android Managed App Protection Policies + $AndroidPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/androidManagedAppProtections?$expand=assignments' -tenantid $TenantFilter + if ($AndroidPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneAndroidAppProtectionPolicies' -Data $AndroidPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneAndroidAppProtectionPolicies' -Data $AndroidPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AndroidPolicies.Count) Android app protection policies" -sev Info + } + $AndroidPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache App Protection Policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 new file mode 100644 index 000000000000..cac6e1120670 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 @@ -0,0 +1,80 @@ +function Set-CIPPDBCacheIntunePolicies { + <# + .SYNOPSIS + Caches all Intune policies for a tenant (if Intune capable) + + .PARAMETER TenantFilter + The tenant to cache Intune policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'IntunePoliciesCache' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Intune license, skipping' -sev Info + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Intune policies' -sev Info + + $PolicyTypes = @( + @{ Type = 'DeviceCompliancePolicies'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies'; SupportsExpand = $true } + @{ Type = 'DeviceConfigurations'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations'; SupportsExpand = $true } + @{ Type = 'ConfigurationPolicies'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies'; SupportsExpand = $true; ExpandSettings = $true } + @{ Type = 'GroupPolicyConfigurations'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations'; SupportsExpand = $true } + @{ Type = 'MobileAppConfigurations'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/mobileAppConfigurations'; SupportsExpand = $true } + @{ Type = 'AppProtectionPolicies'; Uri = 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies'; SupportsExpand = $false } + @{ Type = 'WindowsAutopilotDeploymentProfiles'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles'; SupportsExpand = $true } + @{ Type = 'DeviceEnrollmentConfigurations'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations'; SupportsExpand = $false } + @{ Type = 'DeviceManagementScripts'; Uri = 'https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts'; SupportsExpand = $true } + @{ Type = 'MobileApps'; Uri = 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps'; SupportsExpand = $false } + ) + + foreach ($PolicyType in $PolicyTypes) { + try { + $UriWithParams = $PolicyType.Uri + '?$top=999' + if ($PolicyType.SupportsExpand) { + $UriWithParams += '&$expand=assignments' + } + if ($PolicyType.ExpandSettings) { + $UriWithParams += ',settings' + } + + $Policies = New-GraphGetRequest -uri $UriWithParams -tenantid $TenantFilter + + if ($Policies) { + if (-not $PolicyType.SupportsExpand) { + foreach ($Policy in $Policies) { + try { + $AssignmentUri = "$($PolicyType.Uri)/$($Policy.id)/assignments" + $Assignments = New-GraphGetRequest -uri $AssignmentUri -tenantid $TenantFilter + $Policy | Add-Member -NotePropertyName 'assignments' -NotePropertyValue $Assignments -Force + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to get assignments for $($Policy.id): $($_.Exception.Message)" -sev Verbose + } + } + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type "Intune$($PolicyType.Type)" -Data $Policies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type "Intune$($PolicyType.Type)" -Data $Policies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($Policies.Count) $($PolicyType.Type)" -sev Info + } + + $Policies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache $($PolicyType.Type): $($_.Exception.Message)" -sev Warning + } + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Intune policies successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Intune policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 new file mode 100644 index 000000000000..5556ac3d307c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheLicenseOverview { + <# + .SYNOPSIS + Caches license overview for a tenant + + .PARAMETER TenantFilter + The tenant to cache license overview for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching license overview' -sev Info + + $LicenseOverview = Get-CIPPLicenseOverview -TenantFilter $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'LicenseOverview' -Data @($LicenseOverview) + $LicenseOverview = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached license overview successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache license overview: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 new file mode 100644 index 000000000000..131f5a1ac16c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheMFAState { + <# + .SYNOPSIS + Caches MFA state for a tenant + + .PARAMETER TenantFilter + The tenant to cache MFA state for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching MFA state' -sev Info + + $MFAState = Get-CIPPMFAState -TenantFilter $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MFAState' -Data @($MFAState) + $MFAState = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached MFA state successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache MFA state: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 new file mode 100644 index 000000000000..9ab751d41ce0 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheManagedDeviceEncryptionStates { + <# + .SYNOPSIS + Caches encryption states (BitLocker/FileVault) for managed devices in a tenant + + .PARAMETER TenantFilter + The tenant to cache managed device encryption states for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching managed device encryption states' -sev Info + + $ManagedDeviceEncryptionStates = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceEncryptionStates?$top=999' -tenantid $TenantFilter + + if ($ManagedDeviceEncryptionStates) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDeviceEncryptionStates' -Data $ManagedDeviceEncryptionStates + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDeviceEncryptionStates' -Data $ManagedDeviceEncryptionStates -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($ManagedDeviceEncryptionStates.Count) managed device encryption states" -sev Info + } + $ManagedDeviceEncryptionStates = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache managed device encryption states: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 new file mode 100644 index 000000000000..f9f6fbb7f11d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheManagedDevices { + <# + .SYNOPSIS + Caches all Intune managed devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache managed devices for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching managed devices' -sev Info + $ManagedDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDevices?$top=999&$select=id,deviceName,operatingSystem,osVersion,complianceState,managedDeviceOwnerType,enrolledDateTime,lastSyncDateTime' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -Data $ManagedDevices + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -Data $ManagedDevices -Count + $ManagedDevices = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached managed devices successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache managed devices: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 new file mode 100644 index 000000000000..3c4da6f7d188 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheOAuth2PermissionGrants { + <# + .SYNOPSIS + Caches OAuth2 permission grants (delegated permissions) for a tenant + + .PARAMETER TenantFilter + The tenant to cache OAuth2 permission grants for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching OAuth2 permission grants' -sev Info + + $OAuth2PermissionGrants = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/oauth2PermissionGrants?$top=999' -tenantid $TenantFilter + + if ($OAuth2PermissionGrants) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OAuth2PermissionGrants' -Data $OAuth2PermissionGrants + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OAuth2PermissionGrants' -Data $OAuth2PermissionGrants -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($OAuth2PermissionGrants.Count) OAuth2 permission grants" -sev Info + } + $OAuth2PermissionGrants = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache OAuth2 permission grants: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 new file mode 100644 index 000000000000..c6c32918367b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheOrganization { + <# + .SYNOPSIS + Caches organization information for a tenant + + .PARAMETER TenantFilter + The tenant to cache organization data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching organization data' -sev Info + + $Organization = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Organization' -Data $Organization + $Organization = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached organization data successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache organization data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 new file mode 100644 index 000000000000..24f8dbef7d8b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 @@ -0,0 +1,56 @@ +function Set-CIPPDBCachePIMSettings { + <# + .SYNOPSIS + Caches PIM (Privileged Identity Management) settings for a tenant (if CA capable) + + .PARAMETER TenantFilter + The tenant to cache PIM settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'PIMSettingsCache' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Azure AD Premium P2 license, skipping PIM' -sev Info + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching PIM settings' -sev Info + + try { + $PIMRoleSettings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/roleManagementPolicyAssignments?$top=999' -tenantid $TenantFilter + + if ($PIMRoleSettings) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMRoleSettings' -Data $PIMRoleSettings + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMRoleSettings' -Data $PIMRoleSettings -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($PIMRoleSettings.Count) PIM role settings" -sev Info + } + $PIMRoleSettings = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM role settings: $($_.Exception.Message)" -sev Warning + } + + try { + $PIMAssignments = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilityScheduleInstances?$top=999' -tenantid $TenantFilter + + if ($PIMAssignments) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMAssignments' -Data $PIMAssignments + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMAssignments' -Data $PIMAssignments -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($PIMAssignments.Count) PIM assignments" -sev Info + } + $PIMAssignments = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM assignments: $($_.Exception.Message)" -sev Warning + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached PIM settings successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 new file mode 100644 index 000000000000..c85118401d4f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskDetections { + <# + .SYNOPSIS + Caches risk detections from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risk detections for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risk detections from Identity Protection' -sev Info + + # Requires P2 licensing + $RiskDetections = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskDetections' -tenantid $TenantFilter + + if ($RiskDetections) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskDetections' -Data $RiskDetections + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskDetections' -Data $RiskDetections -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskDetections.Count) risk detections successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risk detections found or Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risk detections: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 new file mode 100644 index 000000000000..950e9998ec0b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskyServicePrincipals { + <# + .SYNOPSIS + Caches risky service principals from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risky service principals for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risky service principals from Identity Protection' -sev Info + + # Requires Workload Identity Premium licensing + $RiskyServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyServicePrincipals' -tenantid $TenantFilter + + if ($RiskyServicePrincipals) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyServicePrincipals' -Data $RiskyServicePrincipals + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyServicePrincipals' -Data $RiskyServicePrincipals -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskyServicePrincipals.Count) risky service principals successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risky service principals found or Workload Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risky service principals: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 new file mode 100644 index 000000000000..417110f483bd --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskyUsers { + <# + .SYNOPSIS + Caches risky users from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risky users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risky users from Identity Protection' -sev Info + + # Requires P2 or Governance licensing + $RiskyUsers = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyUsers' -tenantid $TenantFilter + + if ($RiskyUsers) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyUsers' -Data $RiskyUsers + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyUsers' -Data $RiskyUsers -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskyUsers.Count) risky users successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risky users found or Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risky users: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 new file mode 100644 index 000000000000..6d269f2cf17c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheRoleAssignmentScheduleInstances { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $RoleAssignmentScheduleInstances = New-GraphGetRequest -Uri 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleInstances' -tenantid $TenantFilter + + $Body = [pscustomobject]@{ + Tenant = $TenantFilter + LastRefresh = (Get-Date).ToUniversalTime() + Type = 'RoleAssignmentScheduleInstances' + Data = [System.Text.Encoding]::UTF8.GetBytes(($RoleAssignmentScheduleInstances | ConvertTo-Json -Compress -Depth 10)) + PartitionKey = 'TenantCache' + RowKey = ('{0}-{1}' -f $TenantFilter, 'RoleAssignmentScheduleInstances') + SchemaVersion = [int]1 + SentAsDate = [string](Get-Date -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + } + + $null = Add-CIPPAzDataTableEntity @CacheTableDetails -Entity $Body -Force + Write-LogMessage -API 'DBCache' -tenant $TenantFilter -message 'Role assignment schedule instances cache updated' -sev Debug + } catch { + Write-LogMessage -API 'DBCache' -tenant $TenantFilter -message "Error caching role assignment schedule instances: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 new file mode 100644 index 000000000000..6433570cf810 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheRoleEligibilitySchedules { + <# + .SYNOPSIS + Caches role eligibility schedules for a tenant + + .PARAMETER TenantFilter + The tenant to cache role eligibility schedules for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role eligibility schedules' -sev Info + $RoleEligibilitySchedules = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilitySchedules' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleEligibilitySchedules' -Data @($RoleEligibilitySchedules) + $RoleEligibilitySchedules = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role eligibility schedules successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache role eligibility schedules: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 new file mode 100644 index 000000000000..fcba68720a1f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheRoleManagementPolicies { + <# + .SYNOPSIS + Caches role management policies for a tenant + + .PARAMETER TenantFilter + The tenant to cache role management policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role management policies' -sev Info + $RoleManagementPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/roleManagementPolicies' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleManagementPolicies' -Data @($RoleManagementPolicies) + $RoleManagementPolicies = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role management policies successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache role management policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 new file mode 100644 index 000000000000..1c76f2eac12e --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 @@ -0,0 +1,56 @@ +function Set-CIPPDBCacheRoles { + <# + .SYNOPSIS + Caches all directory roles and their members for a tenant + + .PARAMETER TenantFilter + The tenant to cache role data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory roles' -sev Info + + $Roles = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directoryRoles' -tenantid $TenantFilter + + $RolesWithMembers = foreach ($Role in $Roles) { + try { + $Members = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles/$($Role.id)/members?&`$select=id,displayName,userPrincipalName" -tenantid $TenantFilter + [PSCustomObject]@{ + id = $Role.id + displayName = $Role.displayName + description = $Role.description + roleTemplateId = $Role.roleTemplateId + members = $Members + memberCount = $Members.Count + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to get members for role $($Role.displayName): $($_.Exception.Message)" -sev Warning + [PSCustomObject]@{ + id = $Role.id + displayName = $Role.displayName + description = $Role.description + roleTemplateId = $Role.roleTemplateId + members = @() + memberCount = 0 + } + } + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $RolesWithMembers + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $RolesWithMembers -Count + + $Roles = $null + $RolesWithMembers = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory roles successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache directory roles: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 new file mode 100644 index 000000000000..b1db9a6c1234 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheSecureScore { + <# + .SYNOPSIS + Caches secure score history (last 14 days) and control profiles for a tenant + + .PARAMETER TenantFilter + The tenant to cache secure score for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching secure score' -sev Info + + # Cache secure score history (last 14 days) + $SecureScore = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScores?$top=14' -tenantid $TenantFilter -noPagination $true + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' -Data $SecureScore + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' -Data $SecureScore -Count + $SecureScore = $null + + # Cache secure score control profiles + $SecureScoreControlProfiles = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScoreControlProfiles' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' -Data $SecureScoreControlProfiles + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' -Data $SecureScoreControlProfiles -Count + $SecureScoreControlProfiles = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached secure score and control profiles successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache secure score: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 new file mode 100644 index 000000000000..79aeec84eada --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheServicePrincipalRiskDetections { + <# + .SYNOPSIS + Caches service principal risk detections from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache service principal risk detections for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching service principal risk detections from Identity Protection' -sev Info + + # Requires Workload Identity Premium licensing + $ServicePrincipalRiskDetections = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/servicePrincipalRiskDetections' -tenantid $TenantFilter + + if ($ServicePrincipalRiskDetections) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipalRiskDetections' -Data $ServicePrincipalRiskDetections + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipalRiskDetections' -Data $ServicePrincipalRiskDetections -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($ServicePrincipalRiskDetections.Count) service principal risk detections successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No service principal risk detections found or Workload Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache service principal risk detections: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 new file mode 100644 index 000000000000..e2422e6028b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheServicePrincipals { + <# + .SYNOPSIS + Caches all service principals for a tenant + + .PARAMETER TenantFilter + The tenant to cache service principals for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching service principals' -sev Info + + $ServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -Data $ServicePrincipals + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -Data $ServicePrincipals -Count + $ServicePrincipals = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached service principals successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache service principals: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 new file mode 100644 index 000000000000..3f809db48f57 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheSettings { + <# + .SYNOPSIS + Caches directory settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory settings' -sev Info + + $Settings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/settings?$top=999' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Settings' -Data $Settings + $Settings = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory settings successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache directory settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 new file mode 100644 index 000000000000..51ff2b467e55 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheUserRegistrationDetails { + <# + .SYNOPSIS + Caches authentication method registration details for all users in a tenant + + .PARAMETER TenantFilter + The tenant to cache user registration details for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching user registration details' -sev Info + + $UserRegistrationDetails = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails' -tenantid $TenantFilter + + if ($UserRegistrationDetails) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'UserRegistrationDetails' -Data $UserRegistrationDetails + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'UserRegistrationDetails' -Data $UserRegistrationDetails -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($UserRegistrationDetails.Count) user registration details" -sev Info + } + $UserRegistrationDetails = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache user registration details: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 new file mode 100644 index 000000000000..2a03fedc46ab --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheUsers { + <# + .SYNOPSIS + Caches all users for a tenant + + .PARAMETER TenantFilter + The tenant to cache users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching users' -sev Info + + $Users = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' -Data $Users + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' -Data $Users -Count + $Users = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached users successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache users: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 index e465e7552887..b0518e1d5d5a 100644 --- a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 @@ -8,14 +8,13 @@ function Set-CIPPIntunePolicy { $AssignTo, $ExcludeGroup, $Headers, - $APINAME, - $tenantFilter, + $APIName = 'Set-CIPPIntunePolicy', + $TenantFilter, $AssignmentFilterName, $AssignmentFilterType = 'include' ) - $APINAME = 'Set-CIPPIntunePolicy' - $RawJSON = Get-CIPPTextReplacement -TenantFilter $tenantFilter -Text $RawJSON + $RawJSON = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $RawJSON try { switch ($TemplateType) { @@ -23,64 +22,87 @@ function Set-CIPPIntunePolicy { $PlatformType = 'deviceAppManagement' $TemplateType = ($RawJSON | ConvertFrom-Json).'@odata.type' -replace '#microsoft.graph.', '' $PolicyFile = $RawJSON | ConvertFrom-Json - $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $description -Force - $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $displayname -Force + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty 'apps' $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 $TemplateTypeURL = if ($TemplateType -eq 'windowsInformationProtectionPolicy') { 'windowsInformationProtectionPolicies' } else { "$($TemplateType)s" } - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter - if ($displayname -in $CheckExististing.displayName) { + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + } + } + 'AppConfiguration' { + $PlatformType = 'deviceAppManagement' + $TemplateTypeURL = 'mobileAppConfigurations' + $PolicyFile = $RawJSON | ConvertFrom-Json + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, '@odata.context', targetedMobileApps + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 -Compress + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $PostType = 'added' + $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, '@odata.context' + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 -Compress + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'deviceCompliancePolicies' { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'deviceCompliancePolicies' - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter $JSON = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, 'scheduledActionsForRule@odata.context', '@odata.context' $JSON.scheduledActionsForRule = @($JSON.scheduledActionsForRule | Select-Object * -ExcludeProperty 'scheduledActionConfigurations@odata.context') - if ($displayname -in $CheckExististing.displayName) { + if ($DisplayName -in $CheckExististing.displayName) { $RawJSON = ConvertTo-Json -InputObject ($JSON | Select-Object * -ExcludeProperty 'scheduledActionsForRule') -Depth 20 -Compress $PostType = 'edited' - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $RawJSON = ConvertTo-Json -InputObject $JSON -Depth 20 -Compress $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'Admin' { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'groupPolicyConfigurations' - $CreateBody = '{"description":"' + $description + '","displayName":"' + $displayname + '","roleScopeTagIds":["0"]}' - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter - if ($displayname -in $CheckExististing.displayName) { - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname - $ExistingData = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/definitionValues" -tenantid $tenantFilter + $CreateBody = '{"description":"' + $Description + '","displayName":"' + $DisplayName + '","roleScopeTagIds":["0"]}' + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $ExistingData = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/definitionValues" -tenantid $TenantFilter $DeleteJson = $RawJSON | ConvertFrom-Json -Depth 10 $DeleteJson | Add-Member -MemberType NoteProperty -Name 'deletedIds' -Value @($ExistingData.id) -Force $DeleteJson | Add-Member -MemberType NoteProperty -Name 'added' -Value @() -Force $DeleteJson = ConvertTo-Json -Depth 10 -InputObject $DeleteJson - $DeleteRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $tenantFilter -type POST -body $DeleteJson - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $tenantFilter -type POST -body $RawJSON + $DeleteRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $DeleteJson + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Updated policy $($Displayname) to template defaults" -Sev 'info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' $PostType = 'edited' } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $CreateBody - $UpdateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($CreateRequest.id)')/updateDefinitionValues" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($Displayname) to template defaults" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $CreateBody + $UpdateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($CreateRequest.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) to template defaults" -Sev 'info' } } @@ -88,9 +110,9 @@ function Set-CIPPIntunePolicy { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'deviceConfigurations' $PolicyFile = $RawJSON | ConvertFrom-Json - $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value "$description" -Force - $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $displayname -Force - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value "$Description" -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName | Select-Object -Last 1 $PolicyFile = $policyFile | Select-Object * -ExcludeProperty 'featureUpdatesWillBeRolledBack', 'qualityUpdatesWillBeRolledBack', 'qualityUpdatesPauseStartDate', 'featureUpdatesPauseStartDate' $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress @@ -99,11 +121,11 @@ function Set-CIPPIntunePolicy { Write-Host "Raw JSON is $RawJSON" $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' } else { $PostType = 'added' $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } @@ -120,7 +142,7 @@ function Set-CIPPIntunePolicy { if ($AvailableSettings) { Write-Information "Available settings for template $($Template.templateReference.templateId): $($AvailableSettings.Count)" - $FilteredSettings = [system.collections.generic.list[psobject]]::new() + $FilteredSettings = [System.Collections.Generic.List[psobject]]::new() foreach ($setting in $Template.settings) { if ($setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId -in $AvailableSettings.settingInstanceTemplate.settingInstanceTemplateId) { $AvailableSetting = $AvailableSettings | Where-Object { $_.settingInstanceTemplate.settingInstanceTemplateId -eq $setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId } @@ -145,18 +167,18 @@ function Set-CIPPIntunePolicy { } } - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.name) { $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty Platform, PolicyType, CreationSource $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress $ExistingID = $CheckExististing | Where-Object -Property Name -EQ $DisplayName - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PUT -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PUT -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property Name -EQ $DisplayName $PostType = 'edited' } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsDriverUpdateProfiles' { @@ -164,19 +186,19 @@ function Set-CIPPIntunePolicy { $TemplateTypeURL = 'windowsDriverUpdateProfiles' $File = ($RawJSON | ConvertFrom-Json) $DisplayName = $File.displayName ?? $File.Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty inventorySyncStatus, newUpdates, deviceReporting, approvalType $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsFeatureUpdateProfiles' { @@ -189,15 +211,15 @@ function Set-CIPPIntunePolicy { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty deployableContentDisplayName, endOfSupportDate, installLatestWindows10OnWindows11IneligibleDevice $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsQualityUpdatePolicies' { @@ -205,19 +227,19 @@ function Set-CIPPIntunePolicy { $TemplateTypeURL = 'windowsQualityUpdatePolicies' $File = ($RawJSON | ConvertFrom-Json) $DisplayName = $File.displayName ?? $File.Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } 'windowsQualityUpdateProfiles' { @@ -225,34 +247,34 @@ function Set-CIPPIntunePolicy { $TemplateTypeURL = 'windowsQualityUpdateProfiles' $File = ($RawJSON | ConvertFrom-Json) $DisplayName = $File.displayName ?? $File.Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter if ($DisplayName -in $CheckExististing.displayName) { $PostType = 'edited' $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty releaseDateDisplayName, deployableContentDisplayName $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress - $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $displayname + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName Write-Host 'We are editing' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName } else { $PostType = 'added' - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' } } } - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "$($PostType) policy $($Displayname)" -Sev 'Info' + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "$($PostType) policy $($DisplayName)" -Sev 'Info' if ($AssignTo) { - Write-Host "Assigning policy to $($AssignTo) with ID $($CreateRequest.id) and type $TemplateTypeURL for tenant $tenantFilter" + Write-Host "Assigning policy to $($AssignTo) with ID $($CreateRequest.id) and type $TemplateTypeURL for tenant $TenantFilter" Write-Host "ID is $($CreateRequest.id)" $AssignParams = @{ - GroupName = $AssignTo - PolicyId = $CreateRequest.id - PlatformType = $PlatformType - Type = $TemplateTypeURL - TenantFilter = $tenantFilter - ExcludeGroup = $ExcludeGroup + GroupName = $AssignTo + PolicyId = $CreateRequest.id + PlatformType = $PlatformType + Type = $TemplateTypeURL + TenantFilter = $tenantFilter + ExcludeGroup = $ExcludeGroup } if ($AssignmentFilterName) { @@ -262,10 +284,10 @@ function Set-CIPPIntunePolicy { Set-CIPPAssignedPolicy @AssignParams } - return "Successfully $($PostType) policy for $($tenantFilter) with display name $($Displayname)" + return "Successfully $($PostType) policy for $($TenantFilter) with display name $($DisplayName)" } catch { $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Failed $($PostType) policy $($Displayname). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage - throw "Failed to add or set policy for $($tenantFilter) with display name $($Displayname): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Failed $($PostType) policy $($DisplayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to add or set policy for $($TenantFilter) with display name $($DisplayName): $($ErrorMessage.NormalizedError)" } } diff --git a/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 index 82e213299226..b2371545d135 100644 --- a/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 @@ -6,6 +6,7 @@ function Set-CIPPIntuneTemplate { $DisplayName, $Description, $templateType, + $Package, $Headers ) Write-Host "Received $DisplayName, $Description, $RawJSON, $templateType" @@ -25,6 +26,7 @@ function Set-CIPPIntuneTemplate { JSON = "$object" RowKey = "$GUID" GUID = "$GUID" + Package = "$Package" PartitionKey = 'IntuneTemplate' } Write-LogMessage -Headers $Headers -API $APINAME -message "Created intune policy template named $($Request.body.displayname) with GUID $GUID" -Sev 'Debug' diff --git a/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 b/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 index 512d56a75257..08e15977157e 100644 --- a/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 @@ -1,20 +1,27 @@ function Set-CIPPMessageCopy { [CmdletBinding()] param ( - $userid, + $UserId, [bool]$MessageCopyForSentAsEnabled, + [bool]$MessageCopyForSendOnBehalfEnabled, $TenantFilter, - $APIName = 'Manage OneDrive Access', + $APIName = 'Set message copy for sent', $Headers ) - Try { - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $userid; MessageCopyForSentAsEnabled = $MessageCopyForSentAsEnabled } - $Result = "Successfully set MessageCopyForSentAsEnabled as $MessageCopyForSentAsEnabled on $($userid)." + try { + $cmdParams = @{ + Identity = $UserId + MessageCopyForSentAsEnabled = $MessageCopyForSentAsEnabled + MessageCopyForSendOnBehalfEnabled = $MessageCopyForSendOnBehalfEnabled + + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams $cmdParams + $Result = "Successfully set message copy for 'Send as' as $MessageCopyForSentAsEnabled and 'Sent on behalf' as $MessageCopyForSendOnBehalfEnabled on $($UserId)." Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' return $Result } catch { $ErrorMessage = Get-CippException -Exception $_ - $Result = "Failed to set MessageCopyForSentAsEnabled to $MessageCopyForSentAsEnabled - $($ErrorMessage.NormalizedError)" + $Result = "Failed to set message copy for 'Send as' as $MessageCopyForSentAsEnabled and 'Sent on behalf' as $MessageCopyForSendOnBehalfEnabled - $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Error' -LogData $ErrorMessage throw $Result } diff --git a/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 b/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 index c5c6db30d5da..6f7251b04034 100644 --- a/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 @@ -29,7 +29,7 @@ function Set-CIPPSPOTenant { #> [CmdletBinding(SupportsShouldProcess = $true)] - Param( + param( [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [string]$TenantFilter, [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] @@ -65,7 +65,7 @@ function Set-CIPPSPOTenant { } $xml = @" - $($PropertyToSet) + $($PropertyToSet) "@ $SetProperty.Add($xml) diff --git a/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 b/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 index 96c23dbc9fc6..ed868fbb2663 100644 --- a/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 @@ -2,39 +2,106 @@ function Set-CIPPStandardsCompareField { [CmdletBinding(SupportsShouldProcess = $true)] param ( $FieldName, - $FieldValue, - $TenantFilter + $FieldValue, #FieldValue is here for backward compatibility. + $CurrentValue, #The latest actual value in raw json + $ExpectedValue, #The expected value - e.g. the settings object from our standard + $TenantFilter, + [Parameter()] + [bool]$LicenseAvailable = $true, + [Parameter()] + [array]$BulkFields ) $Table = Get-CippTable -tablename 'CippStandardsReports' $TenantName = Get-Tenants -TenantFilter $TenantFilter - if ($FieldValue -is [System.Boolean]) { - $FieldValue = [bool]$FieldValue - } elseif ($FieldValue -is [string]) { - $FieldValue = [string]$FieldValue - } else { - $FieldValue = ConvertTo-Json -Compress -InputObject @($FieldValue) -Depth 10 | Out-String - $FieldValue = [string]$FieldValue + # Helper function to normalize field values. This can go in a couple of releases tbh. + function ConvertTo-NormalizedFieldValue { + param($Value) + if ($Value -is [System.Boolean]) { + return [bool]$Value + } elseif ($Value -is [string]) { + return [string]$Value + } else { + $JsonValue = ConvertTo-Json -Compress -InputObject @($Value) -Depth 10 | Out-String + return [string]$JsonValue + } } - $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)' and RowKey eq '$($FieldName)'" + # Handle bulk operations + if ($BulkFields) { + # Get all existing entities for this tenant in one query + $ExistingEntities = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)'" + $ExistingHash = @{} + foreach ($Entity in $ExistingEntities) { + $ExistingHash[$Entity.RowKey] = $Entity + } + + # Build array of entities to insert/update + $EntitiesToProcess = [System.Collections.Generic.List[object]]::new() - if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set field '$FieldName' to '$FieldValue' for tenant '$($TenantName.defaultDomainName)'")) { - try { - if ($Existing) { - $Existing.Value = $FieldValue - Add-CIPPAzDataTableEntity @Table -Entity $Existing -Force + foreach ($Field in $BulkFields) { + $NormalizedValue = ConvertTo-NormalizedFieldValue -Value $Field.FieldValue + + if ($ExistingHash.ContainsKey($Field.FieldName)) { + $Entity = $ExistingHash[$Field.FieldName] + $Entity.Value = $NormalizedValue + $Entity | Add-Member -NotePropertyName TemplateId -NotePropertyValue ([string]$script:CippStandardInfoStorage.Value.StandardTemplateId) -Force + $Entity | Add-Member -NotePropertyName LicenseAvailable -NotePropertyValue ([bool]$Field.LicenseAvailable) -Force + $Entity | Add-Member -NotePropertyName CurrentValue -NotePropertyValue ([string]$Field.CurrentValue) -Force + $Entity | Add-Member -NotePropertyName ExpectedValue -NotePropertyValue ([string]$Field.ExpectedValue) -Force } else { - $Result = [PSCustomObject]@{ - PartitionKey = [string]$TenantName.defaultDomainName - RowKey = [string]$FieldName - Value = $FieldValue + $Entity = [PSCustomObject]@{ + PartitionKey = [string]$TenantName.defaultDomainName + RowKey = [string]$Field.FieldName + Value = $NormalizedValue + TemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + LicenseAvailable = [bool]$Field.LicenseAvailable + CurrentValue = [string]$Field.CurrentValue + ExpectedValue = [string]$Field.ExpectedValue + } + } + $EntitiesToProcess.Add($Entity) + } + + if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set $($EntitiesToProcess.Count) fields for tenant '$($TenantName.defaultDomainName)'")) { + try { + # Single bulk insert/update operation + Add-CIPPAzDataTableEntity @Table -Entity $EntitiesToProcess -Force + Write-Information "Bulk added $($EntitiesToProcess.Count) fields to StandardCompare for $($TenantName.defaultDomainName)" + } catch { + Write-Warning "Failed to bulk add fields to StandardCompare for $($TenantName.defaultDomainName) - $($_.Exception.Message)" + } + } + } else { + # Original single field logic + $NormalizedValue = ConvertTo-NormalizedFieldValue -Value $FieldValue + $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)' and RowKey eq '$($FieldName)'" + + if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set field '$FieldName' to '$NormalizedValue' for tenant '$($TenantName.defaultDomainName)'")) { + try { + if ($Existing) { + $Existing.Value = $NormalizedValue + $Existing | Add-Member -NotePropertyName TemplateId -NotePropertyValue ([string]$script:CippStandardInfoStorage.Value.StandardTemplateId) -Force + $Existing | Add-Member -NotePropertyName LicenseAvailable -NotePropertyValue ([bool]$LicenseAvailable) -Force + $Existing | Add-Member -NotePropertyName CurrentValue -NotePropertyValue ([string]$CurrentValue) -Force + $Existing | Add-Member -NotePropertyName ExpectedValue -NotePropertyValue ([string]$ExpectedValue) -Force + Add-CIPPAzDataTableEntity @Table -Entity $Existing -Force + } else { + $Result = [PSCustomObject]@{ + PartitionKey = [string]$TenantName.defaultDomainName + RowKey = [string]$FieldName + Value = $NormalizedValue + TemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + LicenseAvailable = [bool]$LicenseAvailable + CurrentValue = [string]$CurrentValue + ExpectedValue = [string]$ExpectedValue + } + Add-CIPPAzDataTableEntity @Table -Entity $Result -Force } - Add-CIPPAzDataTableEntity @Table -Entity $Result -Force + Write-Information "Adding $FieldName to StandardCompare for $($TenantName.defaultDomainName). content is $NormalizedValue" + } catch { + Write-Warning "Failed to add $FieldName to StandardCompare for $($TenantName.defaultDomainName). content is $NormalizedValue - $($_.Exception.Message)" } - Write-Information "Adding $FieldName to StandardCompare for $Tenant. content is $FieldValue" - } catch { - Write-Warning "Failed to add $FieldName to StandardCompare for $Tenant. content is $FieldValue - $($_.Exception.Message)" } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 index 06114c720f41..2fdcb5864535 100644 --- a/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 @@ -24,6 +24,9 @@ function Set-CIPPUserJITAdmin { .PARAMETER Reason Reason for JIT admin assignment. Defaults to 'No reason provided' as due to backwards compatibility this is not a mandatory field. + .PARAMETER Headers + Headers to include in logging + .EXAMPLE Set-CIPPUserJITAdmin -TenantFilter 'contoso.onmicrosoft.com' -Headers@{UserPrincipalName = 'jit@contoso.onmicrosoft.com'} -Roles @('62e90394-69f5-4237-9190-012177145e10') -Action 'AddRoles' -Expiration (Get-Date).AddDays(1) -Reason 'Emergency access' @@ -32,19 +35,17 @@ function Set-CIPPUserJITAdmin { param( [Parameter(Mandatory = $true)] [string]$TenantFilter, - [Parameter(Mandatory = $true)] [hashtable]$User, - [string[]]$Roles, - [Parameter(Mandatory = $true)] [ValidateSet('Create', 'AddRoles', 'RemoveRoles', 'DeleteUser', 'DisableUser')] [string]$Action, - [datetime]$Expiration, - - [string]$Reason = 'No reason provided' + [datetime]$StartDate, + [string]$Reason = 'No reason provided', + $Headers, + [string]$APIName = 'Set-CIPPUserJITAdmin' ) if ($PSCmdlet.ShouldProcess("User: $($User.UserPrincipalName)", "Action: $Action")) { @@ -69,10 +70,12 @@ function Set-CIPPUserJITAdmin { forceChangePasswordNextSignInWithMfa = $false password = $Password } - $Schema.id = @{ + "$($Schema.id)" = @{ jitAdminEnabled = $false jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminStartDate = if ($StartDate) { $StartDate.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } else { $null } jitAdminReason = $Reason + jitAdminCreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } } } $Json = ConvertTo-Json -Depth 5 -InputObject $Body @@ -83,6 +86,16 @@ function Set-CIPPUserJITAdmin { if ($PasswordLink) { $Password = $PasswordLink } + $LogData = @{ + UserPrincipalName = $User.UserPrincipalName + Action = 'Create' + Reason = $Reason + StartDate = if ($StartDate) { $StartDate.ToString('o') } else { (Get-Date).ToString('o') } + Expiration = $Expiration.ToString('o') + ExpirationUTC = $Expiration.ToUniversalTime().ToString('o') + CreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Created JIT Admin user: $($User.UserPrincipalName). Reason: $Reason" -Sev 'Info' -LogData $LogData [PSCustomObject]@{ id = $NewUser.id userPrincipalName = $NewUser.userPrincipalName @@ -114,8 +127,25 @@ function Set-CIPPUserJITAdmin { New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $TenantFilter -body $Json | Out-Null } catch {} } - - Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Enabled -Expiration $Expiration -Reason $Reason | Out-Null + $CreatedBy = if ($Headers) { + ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + } else { 'Unknown' } + + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Enabled -Expiration $Expiration -StartDate $StartDate -Reason $Reason -CreatedBy $CreatedBy | Out-Null + $Message = "Added admin roles to user $($UserObj.displayName) ($($UserObj.userPrincipalName)). Reason: $Reason" + $LogData = @{ + UserPrincipalName = $UserObj.userPrincipalName + UserId = $UserObj.id + DisplayName = $UserObj.displayName + Action = 'AddRoles' + Roles = $Roles + Reason = $Reason + StartDate = if ($StartDate) { $StartDate.ToString('o') } else { (Get-Date).ToString('o') } + Expiration = $Expiration.ToString('o') + ExpirationUTC = $Expiration.ToUniversalTime().ToString('o') + CreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' -LogData $LogData return "Added admin roles to user $($UserObj.displayName) ($($UserObj.userPrincipalName))" } 'RemoveRoles' { @@ -125,15 +155,20 @@ function Set-CIPPUserJITAdmin { } catch {} } Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Clear | Out-Null + $Message = "Removed admin roles from user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' return "Removed admin roles from user $($UserObj.displayName)" } 'DeleteUser' { try { - $null = New-GraphPOSTRequest -type DELETE -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $TenantFilter - return "Deleted user $($UserObj.displayName) ($($UserObj.userPrincipalName)) with id $($UserObj.id)" + $null = New-GraphPOSTRequest -type DELETE -uri "https://graph.microsoft.com/beta/users/$($UserObj.userPrincipalName)" -tenantid $TenantFilter + $Message = "Deleted user $($UserObj.displayName) ($($UserObj.userPrincipalName)) with id $($UserObj.id)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - return "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" -Sev 'Error' + throw "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" } } 'DisableUser' { @@ -147,11 +182,13 @@ function Set-CIPPUserJITAdmin { Write-Information "https://graph.microsoft.com/beta/users/$($User.UserPrincipalName)" $null = New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/users/$($User.UserPrincipalName)" -tenantid $TenantFilter -body $Json Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $User.UserPrincipalName -Clear | Out-Null - return "Disabled user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + $Message = "Disabled user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - return "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" - + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" -Sev 'Error' + throw "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 index 481fef740b42..07eb7402ed7a 100644 --- a/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 @@ -5,8 +5,10 @@ function Set-CIPPUserJITAdminProperties { [string]$UserId, [switch]$Enabled, $Expiration, + $StartDate, [switch]$Clear, - [string]$Reason + [string]$Reason, + [string]$CreatedBy ) try { $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 @@ -15,7 +17,9 @@ function Set-CIPPUserJITAdminProperties { "$($Schema.id)" = @{ jitAdminEnabled = $null jitAdminExpiration = $null + jitAdminStartDate = $null jitAdminReason = $null + jitAdminCreatedBy = $null } } } else { @@ -23,7 +27,9 @@ function Set-CIPPUserJITAdminProperties { "$($Schema.id)" = @{ jitAdminEnabled = $Enabled.IsPresent jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminStartDate = if ($StartDate) { $StartDate.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } else { $null } jitAdminReason = $Reason + jitAdminCreatedBy = $CreatedBy } } } diff --git a/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 new file mode 100644 index 000000000000..aeaadf430655 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 @@ -0,0 +1,77 @@ +function Set-CippKeyVaultSecret { + <# + .SYNOPSIS + Sets a secret in Azure Key Vault using REST API (no Az.KeyVault module required) + + .DESCRIPTION + Lightweight replacement for Set-AzKeyVaultSecret that uses REST API directly. + Significantly faster as it doesn't require loading the Az.KeyVault module. + + .PARAMETER VaultName + Name of the Key Vault. If not provided, derives from WEBSITE_DEPLOYMENT_ID environment variable. + + .PARAMETER Name + Name of the secret to set. + + .PARAMETER SecretValue + The secret value as a SecureString. + + .EXAMPLE + $secret = ConvertTo-SecureString -String 'mypassword' -AsPlainText -Force + Set-CippKeyVaultSecret -Name 'MySecret' -SecretValue $secret + + .EXAMPLE + Set-CippKeyVaultSecret -VaultName 'mykeyvault' -Name 'RefreshToken' -SecretValue $secureToken + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$VaultName, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [securestring]$SecretValue + ) + + try { + # Derive vault name if not provided + if (-not $VaultName) { + if ($env:WEBSITE_DEPLOYMENT_ID) { + $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + } else { + throw "VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set" + } + } + + # Get access token for Key Vault + $token = Get-CIPPAzIdentityToken -ResourceUrl "https://vault.azure.net" + + # Convert SecureString to plain text + $plainText = [System.Net.NetworkCredential]::new('', $SecretValue).Password + + # Prepare request body + $body = @{ value = $plainText } | ConvertTo-Json + + # Call Key Vault REST API + $uri = "https://$VaultName.vault.azure.net/secrets/$Name`?api-version=7.4" + $response = Invoke-RestMethod -Uri $uri -Headers @{ + Authorization = "Bearer $token" + 'Content-Type' = 'application/json' + } -Method Put -Body $body -ErrorAction Stop + + # Return object similar to Set-AzKeyVaultSecret for compatibility + return @{ + Name = $Name + VaultName = $VaultName + Id = $response.id + Enabled = $response.attributes.enabled + Created = $response.attributes.created + Updated = $response.attributes.updated + } + } catch { + Write-Error "Failed to set secret '$Name' in vault '$VaultName': $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 index 5bbec0db0fb8..6b631e8c96fd 100644 --- a/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 +++ b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 @@ -3,6 +3,9 @@ function Get-CIPPStandards { [Parameter(Mandatory = $false)] [string]$TenantFilter = 'allTenants', + [Parameter(Mandatory = $false)] + [switch]$LicenseChecks = $false, + [Parameter(Mandatory = $false)] [switch]$ListAllTenants, @@ -20,16 +23,16 @@ function Get-CIPPStandards { $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'StandardsTemplateV2'" $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Sort-Object TimeStamp).JSON | - ForEach-Object { - try { - # Fix old "Action" => "action" - $JSON = $_ -replace '"Action":', '"action":' -replace '"permissionlevel":', '"permissionLevel":' - ConvertFrom-Json -InputObject $JSON -ErrorAction SilentlyContinue - } catch {} - } | - Where-Object { - $_.GUID -like $TemplateId -and $_.runManually -eq $runManually - } + ForEach-Object { + try { + # Fix old "Action" => "action" + $JSON = $_ -replace '"Action":', '"action":' -replace '"permissionlevel":', '"permissionLevel":' + ConvertFrom-Json -InputObject $JSON -ErrorAction SilentlyContinue + } catch {} + } | + Where-Object { + $_.GUID -like $TemplateId -and $_.runManually -eq $runManually + } # 1.5. Expand templates that contain TemplateList-Tags into multiple standards $ExpandedTemplates = foreach ($Template in $Templates) { @@ -114,8 +117,6 @@ function Get-CIPPStandards { $_.tenantFilter.value -contains 'AllTenants' } - $ComputedStandards = [ordered]@{} - foreach ($Template in $AllTenantsTemplates) { $Standards = $Template.standards @@ -124,99 +125,70 @@ function Get-CIPPStandards { $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) if ($IsArray) { - # e.g. IntuneTemplate with 2 items + # Emit one object per array element foreach ($Item in $Value) { $CurrentStandard = $Item.PSObject.Copy() - $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force - - if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - Write-Host 'STRDS: autoRemediate set to true, adding Remediate action' - $reportAction = [pscustomobject]@{ - label = 'Report' - value = 'Report' - } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction - } - #If its a drift template, with autoRemediate, we add the Remediate action. - if ($CurrentStandard.autoRemediate -eq $true) { + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Remediate' value = 'Remediate' } } + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard - } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $Normalized = ConvertTo-CippStandardObject $CurrentStandard + + [pscustomobject]@{ + Tenant = 'AllTenants' + Standard = $StandardName + Settings = $Normalized + TemplateId = $Template.GUID } } } } else { - # single object + # Single object $CurrentStandard = $Value.PSObject.Copy() - $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force - if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ - label = 'Report' - value = 'Report' - } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction - } - #If its a drift template, with autoRemediate, we add the Remediate action. - if ($CurrentStandard.autoRemediate -eq $true) { - Write-Host 'STRDS: autoRemediate set to true, adding Remediate action' + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Remediate' value = 'Remediate' } } - $Actions = $CurrentStandard.action.value - if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard - } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' } } - } - } - } - # Output result for 'AllTenants' - foreach ($Standard in $ComputedStandards.Keys) { - $TempCopy = $ComputedStandards[$Standard].PSObject.Copy() - - # Preserve TemplateId(s) before removing them from the Settings - $PreservedTemplateIds = if ($TempCopy -is [System.Collections.IEnumerable] -and -not ($TempCopy -is [string])) { - $TempCopy | ForEach-Object { $_.TemplateId } - } else { - $TempCopy.TemplateId - } + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $Normalized = ConvertTo-CippStandardObject $CurrentStandard - # Remove 'TemplateId' from final output - if ($TempCopy -is [System.Collections.IEnumerable] -and -not ($TempCopy -is [string])) { - foreach ($subItem in $TempCopy) { - $subItem.PSObject.Properties.Remove('TemplateId') | Out-Null + [pscustomobject]@{ + Tenant = 'AllTenants' + Standard = $StandardName + Settings = $Normalized + TemplateId = $Template.GUID + } + } } - } else { - $TempCopy.PSObject.Properties.Remove('TemplateId') | Out-Null - } - - $Normalized = ConvertTo-CippStandardObject $TempCopy - - [pscustomobject]@{ - Tenant = 'AllTenants' - Standard = $Standard - Settings = $Normalized - TemplateId = $PreservedTemplateIds } } } else { @@ -271,17 +243,23 @@ function Get-CIPPStandards { } } - # Separate them into AllTenant vs. TenantSpecific sets + # Separate templates into three tiers: AllTenants (lowest precedence), Group (middle), Tenant-Specific (highest) $AllTenantTemplatesSet = $ApplicableTemplates | Where-Object { $_.tenantFilter.value -contains 'AllTenants' } + $GroupTemplatesSet = $ApplicableTemplates | Where-Object { + ($_.tenantFilter.value -notcontains 'AllTenants') -and + ($_.tenantFilter | Where-Object { $_.type -eq 'Group' }) + } $TenantSpecificTemplatesSet = $ApplicableTemplates | Where-Object { - $_.tenantFilter.value -notcontains 'AllTenants' + ($_.tenantFilter.value -notcontains 'AllTenants') -and + -not ($_.tenantFilter | Where-Object { $_.type -eq 'Group' }) } - $ComputedStandards = [ordered]@{} + # Build merged standards keyed by (StandardName, TemplateList.value) + $ComputedStandards = @{} - # 4a. Merge the AllTenantTemplatesSet + # Process AllTenants templates first foreach ($Template in $AllTenantTemplatesSet) { $Standards = $Template.standards @@ -294,58 +272,142 @@ function Get-CIPPStandards { $CurrentStandard = $Item.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard - } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard - } + # Key by StandardName + TemplateList.value (if present) + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + $ComputedStandards[$Key] = $CurrentStandard } } } else { $CurrentStandard = $Value.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Report' value = 'Report' } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction } - #If its a drift template, with autoRemediate, we add the Remediate action. - if ($CurrentStandard.autoRemediate -eq $true) { - Write-Host 'STRDS: autoRemediate set to true, adding Remediate action' + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } + + # Process Group templates, merging with AllTenants base + foreach ($Template in $GroupTemplatesSet) { + $Standards = $Template.standards + + foreach ($StandardName in $Standards.PSObject.Properties.Name) { + $Value = $Standards.$StandardName + $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) + + if ($IsArray) { + foreach ($Item in $Value) { + $CurrentStandard = $Item.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + # Merge group-based over AllTenants base + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard + } else { + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } else { + $CurrentStandard = $Value.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Remediate' value = 'Remediate' } } + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $ComputedStandards[$Key] = $CurrentStandard } } } } } - # 4b. Merge the TenantSpecificTemplatesSet + # Process TenantSpecific templates, merging with Group and AllTenants base foreach ($Template in $TenantSpecificTemplatesSet) { $Standards = $Template.standards @@ -358,30 +420,33 @@ function Get-CIPPStandards { $CurrentStandard = $Item.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force - if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ - label = 'Report' - value = 'Report' - } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction - } - #If its a drift template, with autoRemediate, we add the Remediate action. - if ($CurrentStandard.autoRemediate -eq $true) { - Write-Host 'STRDS: autoRemediate set to true, adding Remediate action' + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Remediate' value = 'Remediate' } } - # Filter actions only 'Remediate','warn','Report' - $Actions = $CurrentStandard.action.value | Where-Object { $_ -in 'Remediate', 'warn', 'Report' } + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + # Merge tenant-specific over Group/AllTenants base + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $ComputedStandards[$Key] = $CurrentStandard } } } @@ -389,65 +454,54 @@ function Get-CIPPStandards { $CurrentStandard = $Value.PSObject.Copy() $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force - if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { - $reportAction = [pscustomobject]@{ - label = 'Report' - value = 'Report' - } - $CurrentStandard.action = @($CurrentStandard.action) + $reportAction - } - #If its a drift template, with autoRemediate, we add the Remediate action. - if ($CurrentStandard.autoRemediate -eq $true) { - Write-Host 'STRDS: autoRemediate set to true, adding Remediate action' + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ label = 'Remediate' value = 'Remediate' } } - $Actions = $CurrentStandard.action.value | Where-Object { $_ -in 'Remediate', 'warn', 'Report' } + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { - if (-not $ComputedStandards.Contains($StandardName)) { - $ComputedStandards[$StandardName] = $CurrentStandard + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard } else { - $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$StandardName] -New $CurrentStandard -StandardName $StandardName - $ComputedStandards[$StandardName] = $MergedStandard + $ComputedStandards[$Key] = $CurrentStandard } } } } } + # License checks and policy timestamp filtering moved to Push-CIPPStandardsList activity + foreach ($Key in $ComputedStandards.Keys) { + $Standard = $ComputedStandards[$Key] + $StandardName = $Key -replace '\|.*$', '' + # Preserve TemplateId before removing + $PreservedTemplateId = $Standard.TemplateId + $Standard.PSObject.Properties.Remove('TemplateId') | Out-Null - # 4c. Output each final standard for this tenant - foreach ($Standard in $ComputedStandards.Keys) { - $TempCopy = $ComputedStandards[$Standard].PSObject.Copy() - - # Preserve TemplateId(s) before removing them from the Settings - $PreservedTemplateIds = if ($TempCopy -is [System.Collections.IEnumerable] -and -not ($TempCopy -is [string])) { - $TempCopy | ForEach-Object { $_.TemplateId } - } else { - $TempCopy.TemplateId - } - - # Remove local 'TemplateId' from final object(s) - if ($TempCopy -is [System.Collections.IEnumerable] -and -not ($TempCopy -is [string])) { - foreach ($subItem in $TempCopy) { - $subItem.PSObject.Properties.Remove('TemplateId') | Out-Null - } - } else { - $TempCopy.PSObject.Properties.Remove('TemplateId') | Out-Null - } - - $Normalized = ConvertTo-CippStandardObject $TempCopy + $Normalized = ConvertTo-CippStandardObject $Standard [pscustomobject]@{ Tenant = $TenantName - Standard = $Standard + Standard = $StandardName Settings = $Normalized - TemplateId = $PreservedTemplateIds + TemplateId = $PreservedTemplateId } } } } } - diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 index f2c2ebca401f..0bdf7e92a3eb 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 @@ -43,20 +43,19 @@ function Invoke-CIPPStandardActivityBasedTimeout { # Input validation if ([string]::IsNullOrWhiteSpace($timeout) -or $timeout -eq 'Select a value' ) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'ActivityBasedTimeout: Invalid timeout parameter set' -sev Error - Return + return } try { $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies' -tenantid $Tenant - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ActivityBasedTimeout state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ActivityBasedTimeout state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } $StateIsCorrect = if ($CurrentState.definition -like "*$timeout*") { $true } else { $false } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { try { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Activity Based Timeout is already enabled and set to $timeout" -sev Info @@ -78,11 +77,12 @@ function Invoke-CIPPStandardActivityBasedTimeout { $RequestType = 'PATCH' $URI = "https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies/$($CurrentState.id)" } - New-GraphPostRequest -tenantid $Tenant -Uri $URI -Type $RequestType -Body $body -ContentType 'application/json' + New-GraphPostRequest -tenantid $Tenant -Uri $URI -Type $RequestType -Body $body Write-LogMessage -API 'Standards' -tenant $Tenant -message "Enabled Activity Based Timeout with a value of $timeout" -sev Info } } catch { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable Activity Based Timeout a value of $timeout." -sev Error -LogData $_ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable Activity Based Timeout a value of $timeout." -sev Error -LogData $ErrorMessage } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 index 719b642897a9..4485efc83044 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 @@ -76,6 +76,7 @@ function Invoke-CIPPStandardAddDKIM { # Same exclusions also found in Push-DomainAnalyserTenant $ExclusionDomains = @( '*.microsoftonline.com' + '*.mail.onmicrosoft.com' '*.exclaimer.cloud' '*.excl.cloud' '*.codetwo.online' @@ -85,6 +86,7 @@ function Invoke-CIPPStandardAddDKIM { '*.teams.dstny.com' '*.msteams.8x8.com' '*.ucconnect.co.uk' + '*.teams-sbc.dk' ) $AllDomains = ($BatchResults | Where-Object { $_.DomainName }).DomainName | ForEach-Object { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 index add17140e51f..1b7e98d18c06 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 @@ -51,7 +51,10 @@ function Invoke-CIPPStandardAddDMARCToMOERA { $CurrentInfo = $Domains | ForEach-Object { # Get current DNS records that matches _dmarc hostname and TXT type - $CurrentRecords = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri "https://admin.microsoft.com/admin/api/Domains/Records?domainName=$($_.Name)" | Select-Object -ExpandProperty DnsRecords | Where-Object { $_.HostName -eq $RecordModel.HostName -and $_.Type -eq $RecordModel.Type } + $RecordsResponse = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri "https://admin.microsoft.com/admin/api/Domains/Records?domainName=$($_.Name)" + $AllRecords = $RecordsResponse | Select-Object -ExpandProperty DnsRecords + $CurrentRecords = $AllRecords | Where-Object { $_.HostName -eq '_dmarc' -and $_.Type -eq 'TXT' } + Write-Information "Found $($CurrentRecords.count) DMARC records for domain $($_.Name)" if ($CurrentRecords.count -eq 0) { #record not found, return a model with Match set to false @@ -87,15 +90,16 @@ function Invoke-CIPPStandardAddDMARCToMOERA { } } } - # Check if match is true and there is only one DMARC record for the domain - $StateIsCorrect = $false -notin $CurrentInfo.Match -and $CurrentInfo.Count -eq 1 + # Check if match is true and there is only one DMARC record for each domain + $StateIsCorrect = $false -notin $CurrentInfo.Match -and $CurrentInfo.Count -eq $Domains.Count } catch { + $ErrorMessage = Get-CippException -Exception $_ if ($_.Exception.Message -like '*403*') { - $Message = "AddDMARCToMOERA: Insufficient permissions. Please ensure the tenant GDAP relationship includes the 'Domain Name Administrator' role: $(Get-NormalizedError -message $_.Exception.message)" + $Message = "AddDMARCToMOERA: Insufficient permissions. Please ensure the tenant GDAP relationship includes the 'Domain Name Administrator' role: $($ErrorMessage.NormalizedError)" } else { - $Message = "Failed to get dns records for MOERA domains: $(Get-NormalizedError -message $_.Exception.message)" + $Message = "Failed to get dns records for MOERA domains: $($ErrorMessage.NormalizedError)" } - Write-LogMessage -API 'Standards' -tenant $tenant -message $Message -sev Error + Write-LogMessage -API 'Standards' -tenant $tenant -message $Message -sev Error -LogData $ErrorMessage return $Message } @@ -106,16 +110,33 @@ function Invoke-CIPPStandardAddDMARCToMOERA { # Loop through each domain and set the DMARC record, existing misconfigured records and duplicates will be deleted foreach ($Domain in ($CurrentInfo | Sort-Object -Property DomainName -Unique)) { try { - foreach ($Record in ($CurrentInfo | Where-Object -Property DomainName -EQ $Domain.DomainName)) { + $DomainRecords = @($CurrentInfo | Where-Object -Property DomainName -EQ $Domain.DomainName) + $HasMatchingRecord = $false + + # First, delete any non-matching records + foreach ($Record in $DomainRecords) { if ($Record.CurrentRecord) { - New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body ($Record.CurrentRecord | ConvertTo-Json -Compress) -AddedHeaders @{'x-http-method-override' = 'Delete' } - Write-LogMessage -API 'Standards' -tenant $tenant -message "Deleted incorrect DMARC record for domain $($Domain.DomainName)" -sev Info + if ($Record.Match -eq $false) { + # Delete incorrect record + New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body ($Record.CurrentRecord | ConvertTo-Json -Compress) -AddedHeaders @{'x-http-method-override' = 'Delete' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Deleted incorrect DMARC record for domain $($Domain.DomainName)" -sev Info + } else { + # Record already matches, no need to add + $HasMatchingRecord = $true + } } + } + + # Only add the record if we don't already have a matching one + if (-not $HasMatchingRecord) { New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -type 'PUT' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body (@{RecordModel = $RecordModel } | ConvertTo-Json -Compress) Write-LogMessage -API 'Standards' -tenant $tenant -message "Set DMARC record for domain $($Domain.DomainName)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "DMARC record already correctly set for domain $($Domain.DomainName)" -sev Info } } catch { - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set DMARC record for domain $($Domain.DomainName): $(Get-NormalizedError -message $_.Exception.message)" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set DMARC record for domain $($Domain.DomainName): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 index 868355a15e2e..05d16fd877de 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 @@ -35,24 +35,23 @@ function Invoke-CIPPStandardAnonReportDisable { try { $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -tenantid $Tenant -AsApp $true - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AnonReportDisable state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AnonReportDisable state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.displayConcealedNames -eq $false) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports is already disabled.' -sev Info } else { try { - New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -Type patch -Body '{"displayConcealedNames": false}' -ContentType 'application/json' -AsApp $true + New-GraphPOSTRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -Type patch -Body '{"displayConcealedNames": false}' -AsApp $true Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports Disabled.' -sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable anonymous reports. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable anonymous reports. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 index 2192e715ee90..34a1fa83cdd9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 @@ -23,6 +23,7 @@ function Invoke-CIPPStandardAntiPhishPolicy { "CIS M365 5.0 (2.1.7)" "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.AntiPhishPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Anti-Phishing Policy"} {"type":"number","label":"Phishing email threshold. (Default 1)","name":"standards.AntiPhishPolicy.PhishThresholdLevel","defaultValue":1} {"type":"switch","label":"Show first contact safety tip","name":"standards.AntiPhishPolicy.EnableFirstContactSafetyTips","defaultValue":true} {"type":"switch","label":"Show user impersonation safety tip","name":"standards.AntiPhishPolicy.EnableSimilarUsersSafetyTips","defaultValue":true} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 index 1368cdab35fd..4eb08c0cf3fa 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 @@ -65,8 +65,8 @@ function Invoke-CIPPStandardAtpPolicyForO365 { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-AtpPolicyForO365' -cmdParams $cmdParams -UseSystemMailbox $true Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Atp Policy For O365' -sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Atp Policy For O365. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Atp Policy For O365. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 index b6fd707ab2d8..3d8ef1325f2e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 @@ -69,8 +69,8 @@ function Invoke-CIPPStandardAuditLog { } } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Unified Audit Log. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Unified Audit Log. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } if ($Settings.alert -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 index dd80987646d4..733571d2ceba 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 @@ -33,15 +33,14 @@ function Invoke-CIPPStandardAuthMethodsPolicyMigration { param($Tenant, $Settings) try { $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AuthMethodsPolicyMigration state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AuthMethodsPolicyMigration state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } if ($null -eq $CurrentInfo) { - throw "Failed to retrieve current authentication methods policy information" + throw 'Failed to retrieve current authentication methods policy information' } if ($Settings.remediate -eq $true) { @@ -52,7 +51,8 @@ function Invoke-CIPPStandardAuthMethodsPolicyMigration { New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant -body '{"policyMigrationState": "migrationComplete"}' -type PATCH Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy migration completed successfully.' -sev Info } catch { - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to complete authentication methods policy migration: $($_.Exception.Message)" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to complete authentication methods policy migration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 index 3b4078aa3d7f..06313eebbf53 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 @@ -39,10 +39,9 @@ function Invoke-CIPPStandardAutoAddProxy { try { $Domains = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-AcceptedDomain' | Select-Object -ExpandProperty DomainName $AllMailboxes = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-Mailbox' - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoAddProxy state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoAddProxy state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 new file mode 100644 index 000000000000..c11d2f661262 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 @@ -0,0 +1,96 @@ +function Invoke-CIPPStandardAutoArchive { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutoArchive + .SYNOPSIS + (Label) Configure Auto-Archiving Threshold + .DESCRIPTION + (Helptext) Configures the auto-archiving threshold percentage for the tenant. When a mailbox exceeds this threshold, the oldest items are automatically moved to the archive mailbox. Archive must be enabled manually or via the CIPP standard 'Enable Online Archive for all users'. More information can be found in [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/security-and-compliance/messaging-records-management/auto-archiving) + (DocsDescription) Configures the auto-archiving threshold at the organization level. Auto-archiving automatically moves the oldest items from a user's primary mailbox to their archive mailbox when mailbox usage exceeds the configured threshold percentage. This prevents mail flow disruptions caused by full mailboxes. Valid range is 80-100, where 100 disables auto-archiving for the tenant. More information can be found in [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/security-and-compliance/messaging-records-management/auto-archiving) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Configures automatic archiving of mailbox items when storage approaches capacity, preventing email delivery failures due to full mailboxes. This proactive storage management ensures business continuity and reduces helpdesk tickets related to mailbox quota issues. + ADDEDCOMPONENT + {"type":"number","name":"standards.AutoArchive.AutoArchivingThresholdPercentage","label":"Auto-Archiving Threshold Percentage (80-100, default 96, 100 disables)","defaultValue":96} + IMPACT + Low Impact + ADDEDDATE + 2025-12-11 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -AutoArchivingThresholdPercentage 80-100 + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutoArchive' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } + + # Get the threshold value from settings + $DesiredThreshold = [int]($Settings.AutoArchivingThresholdPercentage) + + # Validate the threshold is within valid range + if ($DesiredThreshold -lt 80 -or $DesiredThreshold -gt 100) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Invalid AutoArchivingThresholdPercentage value: $DesiredThreshold. Must be between 80 and 100." -Sev Error + return + } + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' -Select 'AutoArchivingThresholdPercentage').AutoArchivingThresholdPercentage + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoArchive state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $CorrectState = $CurrentState -eq $DesiredThreshold + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is already set to $CurrentState%." -Sev Info + } else { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ AutoArchivingThresholdPercentage = $DesiredThreshold } + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold has been set to $DesiredThreshold%." -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set auto-archiving threshold. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is correctly set to $CurrentState%." -Sev Info + } else { + Write-StandardsAlert -message "Auto-archiving threshold is set to $CurrentState% but should be $DesiredThreshold%." -object @{ CurrentThreshold = $CurrentState; DesiredThreshold = $DesiredThreshold } -tenant $Tenant -standardName 'AutoArchive' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is set to $CurrentState% but should be $DesiredThreshold%." -Sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'AutoArchive' -FieldValue $CorrectState -StoreAs bool -Tenant $Tenant + + if ($CorrectState) { + $FieldValue = $true + } else { + $FieldValue = @{ CurrentThreshold = $CurrentState; DesiredThreshold = $DesiredThreshold } + } + Set-CIPPStandardsCompareField -FieldName 'standards.AutoArchive' -FieldValue $FieldValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 index 3b1a234d1065..6a9f9d80cc8d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 @@ -40,14 +40,13 @@ function Invoke-CIPPStandardAutoExpandArchive { try { $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AutoExpandingArchiveEnabled - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoExpandArchive state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoExpandArchive state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { Write-Host 'Time to remediate' if ($CurrentState) { @@ -57,8 +56,8 @@ function Invoke-CIPPStandardAutoExpandArchive { New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{AutoExpandingArchive = $true } Write-LogMessage -API 'Standards' -tenant $tenant -message 'Added Auto Expanding Archive.' -sev Info } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Auto Expanding Archives. Error: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Auto Expanding Archives. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 index a59431315bf2..4db07c9b94b8 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 @@ -49,11 +49,8 @@ function Invoke-CIPPStandardAutopilotProfile { return $true } #we're done. try { - # Replace variables in displayname to prevent duplicates - $DisplayName = Get-CIPPTextReplacement -Text $Settings.DisplayName -TenantFilter $Tenant - $CurrentConfig = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -tenantid $Tenant | - Where-Object { $_.displayName -eq $DisplayName } | + Where-Object { $_.displayName -eq $Settings.DisplayName } | Select-Object -Property displayName, description, deviceNameTemplate, locale, preprovisioningAllowed, hardwareHashExtractionEnabled, outOfBoxExperienceSetting if ($Settings.NotLocalAdmin -eq $true) { $userType = 'Standard' } else { $userType = 'Administrator' } @@ -64,7 +61,7 @@ function Invoke-CIPPStandardAutopilotProfile { $DeploymentMode = 'singleUser' } - $StateIsCorrect = ($CurrentConfig.displayName -eq $DisplayName) -and + $StateIsCorrect = ($CurrentConfig.displayName -eq $Settings.DisplayName) -and ($CurrentConfig.description -eq $Settings.Description) -and ($CurrentConfig.deviceNameTemplate -eq $Settings.DeviceNameTemplate) -and ([string]::IsNullOrWhiteSpace($CurrentConfig.locale) -and [string]::IsNullOrWhiteSpace($Settings.Languages.value) -or $CurrentConfig.locale -eq $Settings.Languages.value) -and @@ -76,20 +73,20 @@ function Invoke-CIPPStandardAutopilotProfile { ($CurrentConfig.outOfBoxExperienceSetting.userType -eq $userType) -and ($CurrentConfig.outOfBoxExperienceSetting.keyboardSelectionPageSkipped -eq $Settings.AutoKeyboard) } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot profile: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot profile: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage $StateIsCorrect = $false } # Remediate if the state is not correct if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($DisplayName)' already exists" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' already exists" -sev Info } else { try { $Parameters = @{ tenantFilter = $Tenant - displayName = $DisplayName + displayName = $Settings.DisplayName description = $Settings.Description userType = $userType DeploymentMode = $DeploymentMode @@ -106,13 +103,13 @@ function Invoke-CIPPStandardAutopilotProfile { Set-CIPPDefaultAPDeploymentProfile @Parameters if ($null -eq $CurrentConfig) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Autopilot profile '$($DisplayName)'" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Autopilot profile '$($Settings.DisplayName)'" -sev Info } else { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Autopilot profile '$($DisplayName)'" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Autopilot profile '$($Settings.DisplayName)'" -sev Info } } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Autopilot profile: $ErrorMessage" -sev 'Error' + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Autopilot profile: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage throw $ErrorMessage } } @@ -128,10 +125,10 @@ function Invoke-CIPPStandardAutopilotProfile { # Alert if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($DisplayName)' exists" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' exists" -sev Info } else { - Write-StandardsAlert -message "Autopilot profile '$($DisplayName)' do not match expected configuration" -object $CurrentConfig -tenant $Tenant -standardName 'AutopilotProfile' -standardId $Settings.standardId - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($DisplayName)' do not match expected configuration" -sev Info + Write-StandardsAlert -message "Autopilot profile '$($Settings.DisplayName)' do not match expected configuration" -object $CurrentConfig -tenant $Tenant -standardName 'AutopilotProfile' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' do not match expected configuration" -sev Info } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 index 33038ccdc207..e765ec90013e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 @@ -63,8 +63,8 @@ function Invoke-CIPPStandardAutopilotStatusPage { ($CurrentConfig.allowDeviceResetOnInstallFailure -eq $Settings.AllowReset) -and ($CurrentConfig.allowDeviceUseOnInstallFailure -eq $Settings.AllowFail) } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot Enrollment Status Page: $ErrorMessage" -sev Error + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot Enrollment Status Page: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage $StateIsCorrect = $false } @@ -86,8 +86,6 @@ function Invoke-CIPPStandardAutopilotStatusPage { Set-CIPPDefaultAPEnrollment @Parameters } catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - throw $ErrorMessage } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 index 1588392ebbca..e063f6a05f9e 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 @@ -1,31 +1,29 @@ -function Invoke-CIPPStandardBitLockerKeysForOwnedDevice { +function Invoke-CIPPStandardBitLockerKeysForOwnedDevice { <# .FUNCTIONALITY Internal .COMPONENT (APIName) BitLockerKeysForOwnedDevice .SYNOPSIS - (Label) Restrict users from recovering BitLocker keys for owned devices + (Label) Control BitLocker key recovery for owned devices .DESCRIPTION - (Helptext) Controls whether standard users can recover BitLocker keys for devices they own via Microsoft 365 portals. - (DocsDescription) Updates the default user role setting that governs access to BitLocker recovery keys for owned devices. This allows administrators to either permit self-service recovery or require helpdesk involvement through Microsoft Entra authorization policies. + (Helptext) Controls whether standard users can recover BitLocker keys for devices they own. + (DocsDescription) Updates the Microsoft Entra authorization policy that controls whether standard users can read BitLocker recovery keys for devices they own. Choose to restrict access for tighter security or allow self-service recovery when operational needs require it. .NOTES CAT Entra (AAD) Standards TAG - "NIST CSF 2.0 (PR.AA-05)" EXECUTIVETEXT - Ensures administrators retain control over BitLocker recovery secrets when required, while still allowing flexibility to enable self-service recovery when business needs demand it. + Gives administrators centralized control over BitLocker recovery secrets—restrict access to ensure IT-assisted recovery flows, or allow self-service when rapid device unlocks are a priority. ADDEDCOMPONENT {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select state","name":"standards.BitLockerKeysForOwnedDevice.state","options":[{"label":"Restrict","value":"restrict"},{"label":"Allow","value":"allow"}]} IMPACT - Medium Impact + Low Impact ADDEDDATE 2025-10-12 POWERSHELLEQUIVALENT Update-MgBetaPolicyAuthorizationPolicy RECOMMENDEDBY - "CIPP" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 index 258f240f123f..a9d2d9633ffe 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 @@ -44,10 +44,9 @@ function Invoke-CIPPStandardBookings { try { $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').BookingsEnabled - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Bookings state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Bookings state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } $WantedState = if ($state -eq 'true') { $true } else { $false } @@ -63,7 +62,7 @@ function Invoke-CIPPStandardBookings { # Input validation if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'BookingsEnabled: Invalid state parameter set' -sev Error - Return + return } if ($Settings.remediate -eq $true) { Write-Host 'Time to remediate' diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 index 923b2358994d..c6b8f80a97a6 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 @@ -47,14 +47,12 @@ function Invoke-CIPPStandardBranding { if ($Localizations | Where-Object { $_.id -eq '0' }) { try { $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0" -tenantID $Tenant -AsApp $true - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Branding state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Branding state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } - } - else { + } else { try { $GraphRequest = @{ tenantID = $Tenant @@ -76,10 +74,9 @@ function Invoke-CIPPStandardBranding { } | ConvertTo-Json -Compress } $CurrentState = New-GraphPostRequest @GraphRequest - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not create the default Branding localization for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not create the default Branding localization for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } } @@ -91,11 +88,10 @@ function Invoke-CIPPStandardBranding { ($CurrentState.loginPageLayoutConfiguration.isHeaderShown -eq $Settings.isHeaderShown) -and ($CurrentState.loginPageLayoutConfiguration.isFooterShown -eq $Settings.isFooterShown) - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is already applied correctly.' -Sev Info - } - else { + } else { try { $GraphRequest = @{ tenantID = $Tenant @@ -118,8 +114,7 @@ function Invoke-CIPPStandardBranding { } $null = New-GraphPostRequest @GraphRequest Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully updated branding.' -Sev Info - } - catch { + } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to update branding. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage } @@ -127,18 +122,17 @@ function Invoke-CIPPStandardBranding { } - If ($Settings.alert -eq $true) { + if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is correctly set.' -Sev Info - } - else { + } else { Write-StandardsAlert -message 'Branding is incorrectly set.' -object ($CurrentState | Select-Object -Property signInPageText, usernameHintText, loginPageTextVisibilitySettings, loginPageLayoutConfiguration) -tenant $Tenant -standardName 'Branding' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is incorrectly set.' -Sev Info } } - If ($Settings.report -eq $true) { + if ($Settings.report -eq $true) { $state = $StateIsCorrect -eq $true ? $true : ($CurrentState | Select-Object -Property signInPageText, usernameHintText, loginPageTextVisibilitySettings, loginPageLayoutConfiguration) Set-CIPPStandardsCompareField -FieldName 'standards.Branding' -FieldValue $state -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'Branding' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 index 489fb2692dac..8a61d794eac0 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 @@ -44,10 +44,9 @@ function Invoke-CIPPStandardCloudMessageRecall { try { $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').MessageRecallEnabled - } - catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the CloudMessageRecall state for $Tenant. Error: $ErrorMessage" -Sev Error + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the CloudMessageRecall state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage return } $WantedState = if ($state -eq 'true') { $true } else { $false } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 index 1600d0cc01b9..acdb5f3757f6 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 @@ -23,9 +23,10 @@ function Invoke-CIPPStandardConditionalAccessTemplate { EXECUTIVETEXT Deploys standardized conditional access policies that automatically enforce security requirements based on user location, device compliance, and risk factors. These templates ensure consistent security controls across the organization while enabling secure access to business resources. ADDEDCOMPONENT - {"type":"autoComplete","name":"TemplateList","multiple":false,"label":"Select Conditional Access Template","api":{"url":"/api/ListCATemplates","labelField":"displayName","valueField":"GUID","queryKey":"ListCATemplates"}} + {"type":"autoComplete","name":"TemplateList","multiple":false,"label":"Select Conditional Access Template","api":{"url":"/api/ListCATemplates","labelField":"displayName","valueField":"GUID","queryKey":"ListCATemplates","showRefresh":true,"templateView":{"title":"Conditional Access Policy"}}} {"name":"state","label":"What state should we deploy this template in?","type":"radio","options":[{"value":"donotchange","label":"Do not change state"},{"value":"Enabled","label":"Set to enabled"},{"value":"Disabled","label":"Set to disabled"},{"value":"enabledForReportingButNotEnforced","label":"Set to report only"}]} {"type":"switch","name":"DisableSD","label":"Disable Security Defaults when deploying policy"} + {"type":"switch","name":"CreateGroups","label":"Create groups if they do not exist"} UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -66,7 +67,19 @@ function Invoke-CIPPStandardConditionalAccessTemplate { continue } } - $null = New-CIPPCAPolicy -replacePattern 'displayName' -TenantFilter $tenant -state $Setting.state -RawJSON $JSONObj -Overwrite $true -APIName $APIName -Headers $Request.Headers -DisableSD $Setting.DisableSD + $NewCAPolicy = @{ + replacePattern = 'displayName' + TenantFilter = $Tenant + state = $Setting.state + RawJSON = $JSONObj + Overwrite = $true + APIName = 'Standards' + Headers = $Request.Headers + DisableSD = $Setting.DisableSD + CreateGroups = $Setting.CreateGroups ?? $false + } + + $null = New-CIPPCAPolicy @NewCAPolicy } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update conditional access rule $($JSONObj.displayName). Error: $ErrorMessage" -sev 'Error' @@ -76,6 +89,7 @@ function Invoke-CIPPStandardConditionalAccessTemplate { if ($Settings.report -eq $true -or $Settings.remediate -eq $true) { $Filter = "PartitionKey eq 'CATemplate'" $Policies = (Get-CippAzDataTableEntity @Table -Filter $Filter | Where-Object RowKey -In $Settings.TemplateList.value).JSON | ConvertFrom-Json -Depth 10 + $AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant -asApp $true #check if all groups.displayName are in the existingGroups, if not $fieldvalue should contain all missing groups, else it should be true. $MissingPolicies = foreach ($Setting in $Settings.TemplateList) { $policy = $Policies | Where-Object { $_.displayName -eq $Setting.label } @@ -91,8 +105,15 @@ function Invoke-CIPPStandardConditionalAccessTemplate { Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) is missing from this tenant." -Tenant $Tenant } } else { - $CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject (New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing) - $Compare = Compare-CIPPIntuneObject -ReferenceObject $policy -DifferenceObject $CompareObj + $templateResult = New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing + $CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject $templateResult + try { + $Compare = Compare-CIPPIntuneObject -ReferenceObject $policy -DifferenceObject $CompareObj + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error comparing CA policy: $($_.Exception.Message)" -sev Error + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Error comparing policy: $($_.Exception.Message)" -Tenant $Tenant + continue + } if (!$Compare) { Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue $true -Tenant $Tenant } else { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 index ff37c226ddb3..a4169524521d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 @@ -33,7 +33,17 @@ function Invoke-CIPPStandardDisableGuests { #> param($Tenant, $Settings) - ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableGuests' + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableGuests' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + + if ($TestResult -eq $false) { + #writing to each item that the license is not present. + $settings.TemplateList | ForEach-Object { + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuests' -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + $checkDays = if ($Settings.days) { $Settings.days } else { 90 } # Default to 90 days if not set. Pre v8.5.0 compatibility $Days = (Get-Date).AddDays(-$checkDays).ToUniversalTime() $Lookup = $Days.ToString('o') @@ -58,7 +68,7 @@ function Invoke-CIPPStandardDisableGuests { foreach ($guest in $GraphRequest) { try { $null = New-GraphPostRequest -type Patch -tenantid $tenant -uri "https://graph.microsoft.com/beta/users/$($guest.id)" -body '{"accountEnabled":"false"}' - Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabling guest $($guest.UserPrincipalName) ($($guest.id))" -sev Info + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabling guest $($guest.UserPrincipalName) ($($guest.id)). Last sign-in: $($guest.signInActivity.lastSuccessfulSignInDateTime)" -sev Info } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable guest $($guest.UserPrincipalName) ($($guest.id)): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 index 1d21de6a55e3..3cf07e245b89 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 @@ -38,7 +38,7 @@ function Invoke-CIPPStandardEXODirectSend { # Input validation if ([string]::IsNullOrWhiteSpace($DesiredStateName) -or $DesiredStateName -eq 'Select a value') { Write-LogMessage -API 'Standards' -tenant $Tenant -message 'EXODirectSend: Invalid state parameter set' -sev Error - Return + return } # Get current organization config @@ -85,8 +85,13 @@ function Invoke-CIPPStandardEXODirectSend { # Report if needed if ($Settings.report -eq $true) { - - Set-CIPPStandardsCompareField -FieldName 'standards.EXODirectSend' -FieldValue $StateIsCorrect -Tenant $Tenant + $ExpectedState = @{ + RejectDirectSend = $DesiredState + } | ConvertTo-Json -Depth 10 -Compress + $CurrentState = @{ + RejectDirectSend = $CurrentConfig + } | ConvertTo-Json -Depth 10 -Compress + Set-CIPPStandardsCompareField -FieldName 'standards.EXODirectSend' -CurrentValue $CurrentState -ExpectedValue $ExpectedState -Tenant $Tenant Add-CIPPBPAField -FieldName 'EXODirectSend' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 index 4e6d83305916..1476f7eab82d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 @@ -41,7 +41,7 @@ function Invoke-CIPPStandardEnableLitigationHold { try { $MailboxesNoLitHold = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ Filter = 'LitigationHoldEnabled -eq "False"' } -Select 'UserPrincipalName,PersistedCapabilities,LitigationHoldEnabled' | - Where-Object { $_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE' } + Where-Object { $_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE' -or $_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise' } } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableLitigationHold state for $Tenant. Error: $ErrorMessage" -Sev Error diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 index fc6e8be67ce1..7f5edd9b41c6 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 @@ -49,8 +49,7 @@ function Invoke-CIPPStandardEnableMailboxAuditing { try { $AuditState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AuditDisabled - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableMailboxAuditing state for $Tenant. Error: $ErrorMessage" -Sev Error return @@ -71,25 +70,30 @@ function Invoke-CIPPStandardEnableMailboxAuditing { $LogMessage = 'Tenant level mailbox audit already enabled. ' } - # Check for mailbox audit on all mailboxes. Enable for all that it's not enabled for - $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{filter = "auditenabled -eq 'False'" } -useSystemMailbox $true -Select 'AuditEnabled,UserPrincipalName' - $Request = $mailboxes | ForEach-Object { - @{ - CmdletInput = @{ - CmdletName = 'Set-Mailbox' - Parameters = @{Identity = $_.UserPrincipalName; AuditEnabled = $true } - } - } - } + # Commented out because MS recommends NOT doing this anymore. From docs: https://learn.microsoft.com/en-us/purview/audit-mailboxes#verify-mailbox-auditing-on-by-default-is-turned-on + # When you turn on mailbox auditing on by default for the organization, the AuditEnabled property for affected mailboxes doesn't change from False to True. In other words, mailbox auditing on by default ignores the AuditEnabled property on mailboxes. + # Auditing is automatically turned on when you create a new mailbox. You don't need to manually enable mailbox auditing for new users. + # You don't need to manage the mailbox actions that are audited. A predefined set of mailbox actions are audited by default for each sign-in type (Admin, Delegate, and Owner). + # When Microsoft releases a new mailbox action, the action might be added automatically to the list of mailbox actions that are audited by default (subject to the user having the appropriate license). This result means you don't need to add new actions on mailboxes as they're released. + # You have a consistent mailbox auditing policy across your organization because you're auditing the same actions for all mailboxes. + #$Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{filter = "auditenabled -eq 'False'" } -useSystemMailbox $true -Select 'AuditEnabled,UserPrincipalName' + #$Request = $mailboxes | ForEach-Object { + # @{ + # CmdletInput = @{ + # CmdletName = 'Set-Mailbox' + # Parameters = @{Identity = $_.UserPrincipalName; AuditEnabled = $true } + # } + #} + #} - $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) - $BatchResults | ForEach-Object { - if ($_.error) { - $ErrorMessage = Get-NormalizedError -Message $_.error - Write-Host "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" -sev Error - } - } + #$BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) + #$BatchResults | ForEach-Object { + # if ($_.error) { + # $ErrorMessage = Get-NormalizedError -Message $_.error + # Write-Host "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" + # Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" -sev Error + # } + #} # Disable audit bypass for all mailboxes that have it enabled diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 index 9e71c3a79077..4ba8ebbc353d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 @@ -23,11 +23,13 @@ function Invoke-CIPPStandardIntuneTemplate { EXECUTIVETEXT Deploys standardized device management configurations across all corporate devices, ensuring consistent security policies, application settings, and compliance requirements. This template-based approach streamlines device management while maintaining uniform security standards across the organization. ADDEDCOMPONENT - {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"TemplateList","label":"Select Intune Template","api":{"queryKey":"ListIntuneTemplates-autcomplete","url":"/api/ListIntuneTemplates","labelField":"Displayname","valueField":"GUID"}} + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"TemplateList","label":"Select Intune Template","api":{"queryKey":"ListIntuneTemplates-autcomplete","url":"/api/ListIntuneTemplates","labelField":"Displayname","valueField":"GUID","showRefresh":true,"templateView":{"title":"Intune Template","property":"RAWJson","type":"intune"}}} {"type":"autoComplete","multiple":false,"required":false,"creatable":false,"name":"TemplateList-Tags","label":"Or select a package of Intune Templates","api":{"queryKey":"ListIntuneTemplates-tag-autcomplete","url":"/api/ListIntuneTemplates?mode=Tag","labelField":"label","valueField":"value","addedField":{"templates":"templates"}}} {"name":"AssignTo","label":"Who should this template be assigned to?","type":"radio","options":[{"label":"Do not assign","value":"On"},{"label":"Assign to all users","value":"allLicensedUsers"},{"label":"Assign to all devices","value":"AllDevices"},{"label":"Assign to all users and devices","value":"AllDevicesAndUsers"},{"label":"Assign to Custom Group","value":"customGroup"}]} {"type":"textField","required":false,"name":"customGroup","label":"Enter the custom group name if you selected 'Assign to Custom Group'. Wildcards are allowed."} {"name":"excludeGroup","label":"Exclude Groups","type":"textField","required":false,"helpText":"Enter the group name(s) to exclude from the assignment. Wildcards are allowed. Multiple group names are comma-seperated."} + {"type":"textField","required":false,"name":"assignmentFilter","label":"Assignment Filter Name (Optional)","helpText":"Enter the assignment filter name to apply to this policy assignment. Wildcards are allowed."} + {"name":"assignmentFilterType","label":"Assignment Filter Mode (Optional)","type":"radio","required":false,"helpText":"Choose whether to include or exclude devices matching the filter. Only applies if you specified a filter name above. Defaults to Include if not specified.","options":[{"label":"Include - Assign to devices matching the filter","value":"include"},{"label":"Exclude - Assign to devices NOT matching the filter","value":"exclude"}]} UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 new file mode 100644 index 000000000000..c1ee03aecaa5 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 @@ -0,0 +1,90 @@ +function Invoke-CIPPStandardMDMEnrollmentDuringRegistration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MDMEnrollmentDuringRegistration + .SYNOPSIS + (Label) Configure MDM enrollment when adding work or school account + .DESCRIPTION + (Helptext) Controls the "Allow my organization to manage my device" prompt when adding a work or school account on Windows. This setting determines whether automatic MDM enrollment occurs during account registration. + (DocsDescription) Controls whether Windows shows the "Allow my organization to manage my device" prompt when users add a work or school account. When set to disabled, this setting prevents automatic MDM enrollment during the account registration flow, separating account registration from device enrollment. This is useful for environments where you want to allow users to add work accounts without triggering MDM enrollment. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Controls automatic device management enrollment during work account setup. When disabled, users can add work accounts to their Windows devices without the prompt asking to allow organizational device management, preventing unintended MDM enrollments on personal or BYOD devices. + ADDEDCOMPONENT + {"type":"switch","name":"standards.MDMEnrollmentDuringRegistration.disableEnrollment","label":"Disable MDM enrollment during registration"} + IMPACT + Medium Impact + ADDEDDATE + 2025-12-15 + POWERSHELLEQUIVALENT + Graph API PATCH to mobileDeviceManagementPolicies + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MDMEnrollmentDuringRegistration' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } + + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get MDM enrollment during registration state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Get the current state - if the property doesn't exist, treat as false (default behavior) + $CurrentState = [bool]$CurrentInfo.isMdmEnrollmentDuringRegistrationDisabled + $DesiredState = [bool]$Settings.disableEnrollment + $StateIsCorrect = $CurrentState -eq $DesiredState + $stateText = $DesiredState ? 'disabled' : 'enabled' + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "MDM enrollment during registration is already $stateText" -sev Info + } else { + $GraphParam = @{ + tenantid = $Tenant + Uri = 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' + type = 'PATCH' + Body = (@{'isMdmEnrollmentDuringRegistrationDisabled' = $DesiredState } | ConvertTo-Json) + } + + try { + New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully $stateText MDM enrollment during registration" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure MDM enrollment during registration. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "MDM enrollment during registration is $stateText as configured" -sev Info + } else { + Write-StandardsAlert -message "MDM enrollment during registration is not $stateText" -object @{isMdmEnrollmentDuringRegistrationDisabled = $CurrentState; desiredState = $DesiredState } -tenant $tenant -standardName 'MDMEnrollmentDuringRegistration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "MDM enrollment during registration is not $stateText" -sev Info + } + } + + if ($Settings.report -eq $true) { + $FieldValue = $StateIsCorrect ? $true : @{isMdmEnrollmentDuringRegistrationDisabled = $CurrentState; desiredState = $DesiredState } + Set-CIPPStandardsCompareField -FieldName 'standards.MDMEnrollmentDuringRegistration' -FieldValue $FieldValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MDMEnrollmentDuringRegistration' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 index 2bae9f7d7439..22c3f53fde45 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 @@ -20,6 +20,7 @@ function Invoke-CIPPStandardMalwareFilterPolicy { "mdo_zapmalware" "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.MalwareFilterPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Malware Policy"} {"type":"select","multiple":false,"label":"FileTypeAction","name":"standards.MalwareFilterPolicy.FileTypeAction","options":[{"label":"Reject","value":"Reject"},{"label":"Quarantine the message","value":"Quarantine"}]} {"type":"textField","name":"standards.MalwareFilterPolicy.OptionalFileTypes","required":false,"label":"Optional File Types, Comma separated"} {"type":"select","multiple":false,"creatable":true,"label":"QuarantineTag","name":"standards.MalwareFilterPolicy.QuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} @@ -75,10 +76,9 @@ function Invoke-CIPPStandardMalwareFilterPolicy { try { $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterPolicy' | - Where-Object -Property Name -EQ $PolicyName | - Select-Object Name, EnableFileFilter, FileTypeAction, FileTypes, ZapEnabled, QuarantineTag, EnableInternalSenderAdminNotifications, InternalSenderAdminAddress, EnableExternalSenderAdminNotifications, ExternalSenderAdminAddress - } - catch { + Where-Object -Property Name -EQ $PolicyName | + Select-Object Name, EnableFileFilter, FileTypeAction, FileTypes, ZapEnabled, QuarantineTag, EnableInternalSenderAdminNotifications, InternalSenderAdminAddress, EnableExternalSenderAdminNotifications, ExternalSenderAdminAddress + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MalwareFilterPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error return @@ -92,27 +92,29 @@ function Invoke-CIPPStandardMalwareFilterPolicy { $ExpectedFileTypes = $DefaultFileTypes + @($Settings.OptionalFileTypes.Split(',').Trim()) } + $FileTypeAction = $Settings.FileTypeAction.value ?? $Settings.FileTypeAction ?? 'Quarantine' + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and - ($CurrentState.EnableFileFilter -eq $true) -and - ($CurrentState.FileTypeAction -eq $Settings.FileTypeAction) -and - (!(Compare-Object -ReferenceObject $CurrentState.FileTypes -DifferenceObject $ExpectedFileTypes)) -and - ($CurrentState.ZapEnabled -eq $true) -and - ($CurrentState.QuarantineTag -eq $Settings.QuarantineTag) -and - ($CurrentState.EnableInternalSenderAdminNotifications -eq $Settings.EnableInternalSenderAdminNotifications) -and - (($null -eq $Settings.InternalSenderAdminAddress) -or ($CurrentState.InternalSenderAdminAddress -eq $Settings.InternalSenderAdminAddress)) -and - ($CurrentState.EnableExternalSenderAdminNotifications -eq $Settings.EnableExternalSenderAdminNotifications) -and - (($null -eq $Settings.ExternalSenderAdminAddress) -or ($CurrentState.ExternalSenderAdminAddress -eq $Settings.ExternalSenderAdminAddress)) + ($CurrentState.EnableFileFilter -eq $true) -and + ($CurrentState.FileTypeAction -eq $FileTypeAction) -and + (!(Compare-Object -ReferenceObject $CurrentState.FileTypes -DifferenceObject $ExpectedFileTypes)) -and + ($CurrentState.ZapEnabled -eq $true) -and + ($CurrentState.QuarantineTag -eq $Settings.QuarantineTag) -and + ($CurrentState.EnableInternalSenderAdminNotifications -eq $Settings.EnableInternalSenderAdminNotifications) -and + (($null -eq $Settings.InternalSenderAdminAddress) -or ($CurrentState.InternalSenderAdminAddress -eq $Settings.InternalSenderAdminAddress)) -and + ($CurrentState.EnableExternalSenderAdminNotifications -eq $Settings.EnableExternalSenderAdminNotifications) -and + (($null -eq $Settings.ExternalSenderAdminAddress) -or ($CurrentState.ExternalSenderAdminAddress -eq $Settings.ExternalSenderAdminAddress)) $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterRule' | - Where-Object -Property Name -EQ $RuleName | - Select-Object Name, MalwareFilterPolicy, Priority, RecipientDomainIs + Where-Object -Property Name -EQ $RuleName | + Select-Object Name, MalwareFilterPolicy, Priority, RecipientDomainIs $RuleStateIsCorrect = ($RuleState.Name -eq $RuleName) -and - ($RuleState.MalwareFilterPolicy -eq $PolicyName) -and - ($RuleState.Priority -eq 0) -and - (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) + ($RuleState.MalwareFilterPolicy -eq $PolicyName) -and + ($RuleState.Priority -eq 0) -and + (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) if ($Settings.remediate -eq $true) { @@ -122,7 +124,7 @@ function Invoke-CIPPStandardMalwareFilterPolicy { $cmdParams = @{ EnableFileFilter = $true FileTypes = $ExpectedFileTypes - FileTypeAction = $Settings.FileTypeAction + FileTypeAction = $FileTypeAction ZapEnabled = $true QuarantineTag = $Settings.QuarantineTag EnableInternalSenderAdminNotifications = $Settings.EnableInternalSenderAdminNotifications diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 index c2633efe5104..6acbaaeca1c6 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 @@ -19,6 +19,7 @@ function Invoke-CIPPStandardSafeAttachmentPolicy { "mdo_safeattachmentpolicy" "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.SafeAttachmentPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Safe Attachment Policy"} {"type":"select","multiple":false,"label":"Safe Attachment Action","name":"standards.SafeAttachmentPolicy.SafeAttachmentAction","options":[{"label":"Allow","value":"Allow"},{"label":"Block","value":"Block"},{"label":"DynamicDelivery","value":"DynamicDelivery"}]} {"type":"select","multiple":false,"creatable":true,"label":"QuarantineTag","name":"standards.SafeAttachmentPolicy.QuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} {"type":"switch","label":"Redirect","name":"standards.SafeAttachmentPolicy.Redirect"} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 index ed5925224aa6..1927d31de13d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 @@ -18,6 +18,7 @@ function Invoke-CIPPStandardSafeLinksPolicy { "mdo_safelinksforOfficeApps" "NIST CSF 2.0 (DE.CM-09)" ADDEDCOMPONENT + {"type":"textField","name":"standards.SafeLinksPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default SafeLinks Policy"} {"type":"switch","label":"AllowClickThrough","name":"standards.SafeLinksPolicy.AllowClickThrough"} {"type":"switch","label":"DisableUrlRewrite","name":"standards.SafeLinksPolicy.DisableUrlRewrite"} {"type":"switch","label":"EnableOrganizationBranding","name":"standards.SafeLinksPolicy.EnableOrganizationBranding"} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 new file mode 100644 index 000000000000..59d994b42f30 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 @@ -0,0 +1,191 @@ +function Invoke-CIPPStandardSecureScoreRemediation { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SecureScoreRemediation + .SYNOPSIS + (Label) Update Secure Score Control Profiles + .DESCRIPTION + (Helptext) Allows bulk updating of Secure Score control profiles across tenants. Select controls and assign them to different states: Default, Ignored, Third-Party, or Reviewed. + (DocsDescription) Allows bulk updating of Secure Score control profiles across tenants. Select controls and assign them to different states: Default, Ignored, Third-Party, or Reviewed. + .NOTES + CAT + Global Standards + TAG + "lowimpact" + ADDEDCOMPONENT + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.Default","label":"Controls to set to Default","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.Ignored","label":"Controls to set to Ignored","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.ThirdParty","label":"Controls to set to Third-Party","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"required":false,"creatable":true,"name":"standards.SecureScoreRemediation.Reviewed","label":"Controls to set to Reviewed","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + IMPACT + Low Impact + ADDEDDATE + 2025-11-19 + POWERSHELLEQUIVALENT + New-GraphPostRequest to /beta/security/secureScoreControlProfiles/{id} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + + # Get current secure score controls + try { + $CurrentControls = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScoreControlProfiles' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not retrieve Secure Score controls for $Tenant. Error: $ErrorMessage" -sev Error + return + } + + # Build list of controls with their desired states + $ControlsToUpdate = [System.Collections.Generic.List[object]]::new() + + # Process Default controls + $DefaultControls = $Settings.Default.value ?? $Settings.Default + if ($DefaultControls) { + foreach ($ControlName in $DefaultControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'default' + Reason = 'Default' + }) + } + } + + # Process Ignored controls + $IgnoredControls = $Settings.Ignored.value ?? $Settings.Ignored + if ($IgnoredControls) { + foreach ($ControlName in $IgnoredControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'ignored' + Reason = 'Ignored' + }) + } + } + + # Process ThirdParty controls + $ThirdPartyControls = $Settings.ThirdParty.value ?? $Settings.ThirdParty + if ($ThirdPartyControls) { + foreach ($ControlName in $ThirdPartyControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'thirdParty' + Reason = 'ThirdParty' + }) + } + } + + # Process Reviewed controls + $ReviewedControls = $Settings.Reviewed.value ?? $Settings.Reviewed + if ($ReviewedControls) { + foreach ($ControlName in $ReviewedControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'reviewed' + Reason = 'Reviewed' + }) + } + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Processing Secure Score control updates' + + foreach ($Control in $ControlsToUpdate) { + # Skip if this is a Defender control (starts with scid_) + if ($Control.ControlName -match '^scid_') { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Skipping Defender control $($Control.ControlName) - cannot be updated via this API" -sev Info + continue + } + + # Build the request body + $Body = @{ + state = $Control.State + comment = $Control.Reason + vendorInformation = @{ + vendor = 'Microsoft' + provider = 'SecureScore' + } + } + + try { + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + + # Check if already in desired state + if ($CurrentControl.state -eq $Control.State) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Control $($Control.ControlName) is already in state $($Control.State)" -sev Info + } else { + # Update the control + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/security/secureScoreControlProfiles/$($Control.ControlName)" -tenantid $Tenant -type PATCH -Body (ConvertTo-Json -InputObject $Body -Compress) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set control $($Control.ControlName) to $($Control.State)" -sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set control $($Control.ControlName) to $($Control.State). Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + $AlertMessages = [System.Collections.Generic.List[string]]::new() + + foreach ($Control in $ControlsToUpdate) { + if ($Control.ControlName -match '^scid_') { + continue + } + + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + + if ($CurrentControl) { + if ($CurrentControl.state -eq $Control.State) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Control $($Control.ControlName) is in expected state: $($Control.State)" -sev Info + } else { + $AlertMessage = "Control $($Control.ControlName) is in state $($CurrentControl.state), expected $($Control.State)" + $AlertMessages.Add($AlertMessage) + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Alert + } + } else { + $AlertMessage = "Control $($Control.ControlName) not found in tenant" + $AlertMessages.Add($AlertMessage) + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Warning + } + } + + if ($AlertMessages.Count -gt 0) { + Write-StandardsAlert -message 'Secure Score controls not in expected state' -object @{Issues = $AlertMessages.ToArray() } -tenant $Tenant -standardName 'SecureScoreRemediation' -standardId $Settings.standardId + } + } + + if ($Settings.report -eq $true) { + $ReportData = [System.Collections.Generic.List[object]]::new() + + foreach ($Control in $ControlsToUpdate) { + if ($Control.ControlName -match '^scid_') { + continue + } + + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + $LatestState = ($CurrentControl.controlStateUpdates | Select-Object -Last 1).state + if ($LatestState -ne $Control.State) { + $ReportData.Add(@{ + ControlName = $Control.ControlName + CurrentState = $LatestState + DesiredState = $Control.State + InCompliance = $false + }) + } + } + if ($ReportData.count -eq 0) { + $ReportData = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.SecureScoreRemediation' -FieldValue $ReportData -Tenant $tenant + Add-CIPPBPAField -FieldName 'SecureScoreRemediation' -FieldValue $ReportData -StoreAs json -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 index d85d0621f121..68322ddf5b2a 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 @@ -14,6 +14,7 @@ function Invoke-CIPPStandardSpamFilterPolicy { Defender Standards TAG ADDEDCOMPONENT + {"type":"textField","name":"standards.SpamFilterPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Spam Filter Policy"} {"type":"number","label":"Bulk email threshold (Default 7)","name":"standards.SpamFilterPolicy.BulkThreshold","defaultValue":7} {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"Spam Action","name":"standards.SpamFilterPolicy.SpamAction","options":[{"label":"Quarantine the message","value":"Quarantine"},{"label":"Move message to Junk Email folder","value":"MoveToJmf"}]} {"type":"autoComplete","required":true,"multiple":false,"creatable":true,"label":"Spam Quarantine Tag","name":"standards.SpamFilterPolicy.SpamQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 index f86655371873..11676a8f2146 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 @@ -44,8 +44,7 @@ function Invoke-CIPPStandardSpoofWarn { try { $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ExternalInOutlook') - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SpoofWarn state for $Tenant. Error: $ErrorMessage" -Sev Error return @@ -53,6 +52,8 @@ function Invoke-CIPPStandardSpoofWarn { # Get state value using null-coalescing operator $state = $Settings.state.value ?? $Settings.state + + $IsEnabled = $state -eq 'enabled' $AllowListAdd = $Settings.AllowListAdd.value ?? $Settings.AllowListAdd # Test if all entries in the AllowListAdd variable are in the AllowList @@ -131,7 +132,7 @@ function Invoke-CIPPStandardSpoofWarn { if ($Settings.report -eq $true) { Add-CIPPBPAField -FieldName 'SpoofingWarnings' -FieldValue $CurrentInfo.Enabled -StoreAs bool -Tenant $Tenant - if ($AllowListCorrect -eq $true -and $CurrentInfo.Enabled -eq $status) { + if ($AllowListCorrect -eq $true -and $CurrentInfo.Enabled -eq $IsEnabled) { $FieldValue = $true } else { $FieldValue = $CurrentInfo | Select-Object Enabled, AllowList diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 new file mode 100644 index 000000000000..c6e38220857a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardTeamsExternalChatWithAnyone { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsExternalChatWithAnyone + .SYNOPSIS + (Label) Set Teams chat with anyone setting + .DESCRIPTION + (Helptext) Controls whether users can start Teams chats with any email address, inviting external recipients as guests via email. + (DocsDescription) Manages the Teams messaging policy setting UseB2BInvitesToAddExternalUsers. When enabled, users can start chats with any email address and recipients receive an invitation to join the chat as guests. Disabling the setting prevents these external email chats from being created, keeping conversations limited to internal users and approved guests. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Allows organizations to decide if employees can launch Microsoft Teams chats with anyone on the internet using just an email address. Disabling the feature keeps conversations inside trusted boundaries and helps prevent accidental data exposure through unexpected external invitations. + ADDEDCOMPONENT + {"type":"radio","name":"standards.TeamsExternalChatWithAnyone.UseB2BInvitesToAddExternalUsers","label":"Allow chatting with anyone via email","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}],"defaultValue":"Disabled"} + IMPACT + Low Impact + ADDEDDATE + 2025-11-03 + POWERSHELLEQUIVALENT + Set-CsTeamsMessagingPolicy -Identity Global -UseB2BInvitesToAddExternalUsers \$false/\$true + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsExternalChatWithAnyone' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{ Identity = 'Global' } | Select-Object -Property Identity, UseB2BInvitesToAddExternalUsers + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Teams external chat state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Set default to Disabled if not specified. Should not be possible without some serious misconfiguration via the API + $Settings.UseB2BInvitesToAddExternalUsers ??= $false + $DesiredState = [System.Convert]::ToBoolean($Settings.UseB2BInvitesToAddExternalUsers) + $StateIsCorrect = ($CurrentState.UseB2BInvitesToAddExternalUsers -eq $DesiredState) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams external chat with anyone setting already set to: $DesiredState" -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + UseB2BInvitesToAddExternalUsers = $DesiredState + } + + try { + $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Teams external chat with anyone setting to UseB2BInvitesToAddExternalUsers: $DesiredState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure Teams external chat with anyone setting. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams external chat setting is configured correctly as: $DesiredState" -sev Info + } else { + Write-StandardsAlert -message 'Teams external chat setting is not configured correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsExternalChatWithAnyone' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams external chat setting is not configured correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsExternalChatWithAnyone' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + if ($StateIsCorrect) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalChatWithAnyone' -FieldValue $FieldValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 index 2dca70f14177..8d8a2255f866 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 @@ -22,8 +22,9 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { EXECUTIVETEXT Establishes security-focused default settings for Teams meetings, controlling who can join meetings, present content, and participate in chats. These policies balance collaboration needs with security requirements, ensuring meetings remain productive while protecting against unauthorized access and disruption. ADDEDCOMPONENT - {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode","label":"Default value of the `Who can present?`","options":[{"label":"EveryoneUserOverride","value":"EveryoneUserOverride"},{"label":"EveryoneInCompanyUserOverride","value":"EveryoneInCompanyUserOverride"},{"label":"EveryoneInSameAndFederatedCompanyUserOverride","value":"EveryoneInSameAndFederatedCompanyUserOverride"},{"label":"OrganizerOnlyUserOverride","value":"OrganizerOnlyUserOverride"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode","label":"Default value of the `Who can present?`","options":[{"label":"Everyone","value":"EveryoneUserOverride"},{"label":"People in my organization","value":"EveryoneInCompanyUserOverride"},{"label":"People in my organization and trusted organizations","value":"EveryoneInSameAndFederatedCompanyUserOverride"},{"label":"Only organizer","value":"OrganizerOnlyUserOverride"}]} {"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting","label":"Allow anonymous users to join meeting"} + {"type":"autoComplete","required":false,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.AutoAdmittedUsers","label":"Who can bypass the lobby?","helperText":"If left blank, the current value will not be changed.","options":[{"label":"Only organizers and co-organizers","value":"OrganizerOnly"},{"label":"People in organization excluding guests","value":"EveryoneInCompanyExcludingGuests"},{"label":"People who were invited","value":"InvitedUsers"}]} {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.MeetingChatEnabledType","label":"Meeting chat policy","options":[{"label":"On for everyone","value":"Enabled"},{"label":"On for everyone but anonymous users","value":"EnabledExceptAnonymous"},{"label":"Off for everyone","value":"Disabled"}]} {"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowExternalParticipantGiveRequestControl","label":"External participants can give or request control"} IMPACT @@ -31,7 +32,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { ADDEDDATE 2024-11-12 POWERSHELLEQUIVALENT - Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting \$false -AllowAnonymousUsersToStartMeeting \$false -AutoAdmittedUsers EveryoneInCompanyExcludingGuests -AllowPSTNUsersToBypassLobby \$false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode \$DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl \$false + Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting \$false -AllowAnonymousUsersToStartMeeting \$false -AutoAdmittedUsers \$AutoAdmittedUsers -AllowPSTNUsersToBypassLobby \$false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode \$DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl \$false RECOMMENDEDBY "CIS" UPDATECOMMENTBLOCK @@ -42,7 +43,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsGlobalMeetingPolicy' param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1','Teams_Room_Standard') + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -51,9 +52,8 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { try { $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | - Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl - } - catch { + Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsGlobalMeetingPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error return @@ -61,10 +61,11 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { $MeetingChatEnabledType = $Settings.MeetingChatEnabledType.value ?? $Settings.MeetingChatEnabledType $DesignatedPresenterRoleMode = $Settings.DesignatedPresenterRoleMode.value ?? $Settings.DesignatedPresenterRoleMode + $AutoAdmittedUsers = $Settings.AutoAdmittedUsers.value ?? $Settings.AutoAdmittedUsers ?? $CurrentState.AutoAdmittedUsers # Default to current state if not set, for backward compatibility pre v8.6.0 $StateIsCorrect = ($CurrentState.AllowAnonymousUsersToJoinMeeting -eq $Settings.AllowAnonymousUsersToJoinMeeting) -and ($CurrentState.AllowAnonymousUsersToStartMeeting -eq $false) -and - ($CurrentState.AutoAdmittedUsers -eq 'EveryoneInCompanyExcludingGuests') -and + ($CurrentState.AutoAdmittedUsers -eq $AutoAdmittedUsers) -and ($CurrentState.AllowPSTNUsersToBypassLobby -eq $false) -and ($CurrentState.MeetingChatEnabledType -eq $MeetingChatEnabledType) -and ($CurrentState.DesignatedPresenterRoleMode -eq $DesignatedPresenterRoleMode) -and @@ -79,7 +80,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { Identity = 'Global' AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting AllowAnonymousUsersToStartMeeting = $false - AutoAdmittedUsers = 'EveryoneInCompanyExcludingGuests' + AutoAdmittedUsers = $AutoAdmittedUsers AllowPSTNUsersToBypassLobby = $false MeetingChatEnabledType = $MeetingChatEnabledType DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 index 52bf5c0dcba0..5ac0d53dffbf 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 @@ -49,9 +49,13 @@ function Invoke-CIPPStandardTransportRuleTemplate { try { if ($Existing) { Write-Host 'Found existing' - $RequestParams | Add-Member -NotePropertyValue $RequestParams.name -NotePropertyName Identity - $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true - Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set transport rule for $tenant" -sev 'Info' + if ($Settings.overwrite) { + $RequestParams | Add-Member -NotePropertyValue $RequestParams.name -NotePropertyName Identity + $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set transport rule for $tenant" -sev 'Info' + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Skipping transport rule for $tenant as it already exists" -sev 'Info' + } } else { Write-Host 'Creating new' $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 index 802271b5502f..748567ac2da1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 @@ -36,15 +36,14 @@ function Invoke-CIPPStandardallowOAuthTokens { try { $CurrentState = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/softwareOath' -tenantid $Tenant - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the allowOTPTokens state for $Tenant. Error: $ErrorMessage" -Sev Error return } $StateIsCorrect = ($CurrentState.state -eq 'enabled') - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Software OTP/oAuth tokens is already enabled.' -sev Info } else { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 index 23fddb4356c2..a8a7037a8b84 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 @@ -35,14 +35,13 @@ function Invoke-CIPPStandardallowOTPTokens { try { $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -tenantid $Tenant - } - catch { + } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the allowOTPTokens state for $Tenant. Error: $ErrorMessage" -Sev Error return } - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { if ($CurrentInfo.isSoftwareOathEnabled) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'MS authenticator OTP/oAuth tokens is already enabled.' -sev Info } else { diff --git a/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 b/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 new file mode 100644 index 000000000000..eee3fcdabf45 --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 @@ -0,0 +1,77 @@ +function Get-CIPPTenantVariables { + <# + .SYNOPSIS + Retrieves custom variables for a specific tenant + .DESCRIPTION + This function retrieves custom variables from the CippReplacemap table for a specific tenant, + including both tenant-specific and global (AllTenants) variables. Tenant-specific variables + take precedence over global variables. + .PARAMETER TenantFilter + The tenant filter (customerId or defaultDomainName) + .PARAMETER IncludeGlobal + Include global variables (AllTenants) in the results + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPTenantVariables -TenantFilter 'contoso.com' + .EXAMPLE + Get-CIPPTenantVariables -TenantFilter 'eda053f2-4add-41dc-9feb-78a5fc0934c9' -IncludeGlobal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [switch]$IncludeGlobal + ) + + try { + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + $Variables = @{} + + # Get tenant information to resolve both customerId and defaultDomainName + $Tenant = Get-Tenants -TenantFilter $TenantFilter + if (!$Tenant) { + Write-Warning "Tenant not found: $TenantFilter" + return $Variables + } + + # Load global variables first if requested (lower priority) + if ($IncludeGlobal) { + $GlobalMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + if ($GlobalMap) { + foreach ($Var in $GlobalMap) { + $Variables[$Var.RowKey] = @{ + Value = $Var.Value + Description = $Var.Description + Scope = 'Global' + } + } + } + } + + # Load tenant-specific variables (higher priority - will overwrite global) + # Try by customerId first + $TenantMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.customerId)'" + + # If no results found by customerId, try by defaultDomainName + if (!$TenantMap) { + $TenantMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.defaultDomainName)'" + } + + if ($TenantMap) { + foreach ($Var in $TenantMap) { + $Variables[$Var.RowKey] = @{ + Value = $Var.Value + Description = $Var.Description + Scope = 'Tenant' + } + } + } + + return $Variables + + } catch { + Write-LogMessage -API 'TenantGroups' -message "Failed to retrieve tenant variables for $TenantFilter : $($_.Exception.Message)" -sev Error + return @{} + } +} diff --git a/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 index bb53c0e9e0b3..76db653fa17f 100644 --- a/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 +++ b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 @@ -1,24 +1,82 @@ +if (-not $script:TenantGroupsCache) { + $script:TenantGroupsCache = @{ + Groups = $null + Members = $null + LastRefresh = $null + MembersByGroup = $null # Dictionary: GroupId -> members array + } +} + +# Result cache: keyed by "GroupId|TenantFilter|Dynamic" +if (-not $script:TenantGroupsResultCache) { + $script:TenantGroupsResultCache = @{} +} + function Get-TenantGroups { <# .SYNOPSIS Get tenant groups .DESCRIPTION - Get tenant groups from Azure Table Storage + Get tenant groups from Azure Table Storage with performance optimizations + using script-scoped caches and in-memory indexing .PARAMETER GroupId The group id to filter on .PARAMETER TenantFilter The tenant filter to apply to get the groups for a specific tenant + .PARAMETER Dynamic + Filter to only dynamic groups #> [CmdletBinding()] param( [string]$GroupId, [string]$TenantFilter, - [switch]$Dynamic + [switch]$Dynamic, + [switch]$SkipCache ) + $CacheKey = "$GroupId|$TenantFilter|$($Dynamic.IsPresent)" + + if ($SkipCache) { + Write-Verbose "Skipping cache for: $CacheKey" + } elseif ($script:TenantGroupsResultCache.ContainsKey($CacheKey)) { + Write-Verbose "Returning cached result for: $CacheKey" + return $script:TenantGroupsResultCache[$CacheKey] + } + + # Early exit if specific GroupId requested but not allowed + if ($GroupId -and $script:CippAllowedGroupsStorage -and $script:CippAllowedGroupsStorage.Value) { + if ($script:CippAllowedGroupsStorage.Value -notcontains $GroupId) { + return @() + } + } - $GroupTable = Get-CippTable -tablename 'TenantGroups' - $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + # Load table data into cache if not already loaded + if (-not $script:TenantGroupsCache.Groups -or -not $script:TenantGroupsCache.Members -or $SkipCache) { + Write-Verbose 'Loading TenantGroups and TenantGroupMembers tables into cache' + $GroupTable = Get-CippTable -tablename 'TenantGroups' + $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + + $GroupTable.Filter = "PartitionKey eq 'TenantGroup'" + + # Load all groups and members once + $script:TenantGroupsCache.Groups = @(Get-CIPPAzDataTableEntity @GroupTable) + $script:TenantGroupsCache.Members = @(Get-CIPPAzDataTableEntity @MembersTable) + $script:TenantGroupsCache.LastRefresh = Get-Date + + # Build MembersByGroup index: GroupId -> array of member objects + $script:TenantGroupsCache.MembersByGroup = @{} + foreach ($Member in $script:TenantGroupsCache.Members) { + $GId = $Member.GroupId + if (-not $script:TenantGroupsCache.MembersByGroup.ContainsKey($GId)) { + $script:TenantGroupsCache.MembersByGroup[$GId] = [System.Collections.Generic.List[object]]::new() + } + $script:TenantGroupsCache.MembersByGroup[$GId].Add($Member) + } + + Write-Verbose "Cache loaded: $($script:TenantGroupsCache.Groups.Count) groups, $($script:TenantGroupsCache.Members.Count) members" + } + + # Get tenants (already cached and fast per requirements) if ($TenantFilter -and $TenantFilter -ne 'allTenants') { $TenantParams = @{ TenantFilter = $TenantFilter @@ -31,46 +89,74 @@ function Get-TenantGroups { } $Tenants = Get-Tenants @TenantParams + $TenantByCustomerId = @{} + foreach ($Tenant in $Tenants) { + $TenantByCustomerId[$Tenant.customerId] = $Tenant + } + + $Groups = $script:TenantGroupsCache.Groups + if ($Dynamic.IsPresent) { - $GroupTable.Filter = "PartitionKey eq 'TenantGroup' and GroupType eq 'dynamic'" - } else { - $GroupTable.Filter = "PartitionKey eq 'TenantGroup'" + $Groups = $Groups | Where-Object { $_.GroupType -eq 'dynamic' } } if ($GroupId) { - $Groups = Get-CIPPAzDataTableEntity @GroupTable -Filter "RowKey eq '$GroupId'" - $AllMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "GroupId eq '$GroupId'" - } else { - $Groups = Get-CIPPAzDataTableEntity @GroupTable - $AllMembers = Get-CIPPAzDataTableEntity @MembersTable + $Groups = $Groups | Where-Object { $_.RowKey -eq $GroupId } } - if (!$Groups) { + if ($script:CippAllowedGroupsStorage -and $script:CippAllowedGroupsStorage.Value) { + $Groups = $Groups | Where-Object { $script:CippAllowedGroupsStorage.Value -contains $_.RowKey } + } + + if (!$Groups -or $Groups.Count -eq 0) { + $script:TenantGroupsResultCache[$CacheKey] = @() return @() } + # Process results based on TenantFilter if ($TenantFilter -and $TenantFilter -ne 'allTenants') { + # Return simplified group list for specific tenant $Results = [System.Collections.Generic.List[PSCustomObject]]::new() - $Memberships = $AllMembers | Where-Object { $_.customerId -eq $Tenants.customerId } - foreach ($Group in $Memberships) { - $Group = $Groups | Where-Object { $_.RowKey -eq $Group.GroupId } - if ($Group) { - $Results.Add([PSCustomObject]@{ - Id = $Group.RowKey - Name = $Group.Name - Description = $Group.Description - }) + $TargetCustomerId = $Tenants.customerId + + foreach ($Group in $Groups) { + $GroupMembers = $script:TenantGroupsCache.MembersByGroup[$Group.RowKey] + + if ($GroupMembers) { + # Check if this group has the target tenant as a member + $HasTenant = $false + foreach ($Member in $GroupMembers) { + if ($Member.customerId -eq $TargetCustomerId) { + $HasTenant = $true + break + } + } + + if ($HasTenant) { + $Results.Add([PSCustomObject]@{ + Id = $Group.RowKey + Name = $Group.Name + Description = $Group.Description + }) + } } } - return $Results | Sort-Object Name + + $FinalResults = $Results | Sort-Object Name + $script:TenantGroupsResultCache[$CacheKey] = $FinalResults + return $FinalResults } else { + # Return full group details with members $Results = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Group in $Groups) { - $Members = $AllMembers | Where-Object { $_.GroupId -eq $Group.RowKey } + $GroupMembers = $script:TenantGroupsCache.MembersByGroup[$Group.RowKey] $MembersList = [System.Collections.Generic.List[hashtable]]::new() - if ($Members) { - foreach ($Member in $Members) { - $Tenant = $Tenants | Where-Object { $Member.customerId -eq $_.customerId } + + if ($GroupMembers) { + foreach ($Member in $GroupMembers) { + # Use indexed lookup instead of Where-Object + $Tenant = $TenantByCustomerId[$Member.customerId] if ($Tenant) { $MembersList.Add(@{ customerId = $Tenant.customerId @@ -83,6 +169,7 @@ function Get-TenantGroups { } else { $SortedMembers = @() } + $Results.Add([PSCustomObject]@{ Id = $Group.RowKey Name = $Group.Name @@ -93,6 +180,9 @@ function Get-TenantGroups { Members = @($SortedMembers) }) } - return $Results | Sort-Object Name + + $FinalResults = $Results | Sort-Object Name + $script:TenantGroupsResultCache[$CacheKey] = $FinalResults + return $FinalResults } } diff --git a/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 index 8738313f79e1..9cbc794e05fd 100644 --- a/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 +++ b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 @@ -44,6 +44,17 @@ function Update-CIPPDynamicTenantGroups { $TotalMembersRemoved = 0 $GroupsProcessed = 0 + # Pre-load tenant group memberships for tenantGroupMember rules + # This creates a cache to avoid repeated table queries during rule evaluation + $script:TenantGroupMembersCache = @{} + $AllGroupMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "PartitionKey eq 'Member'" + foreach ($Member in $AllGroupMembers) { + if (-not $script:TenantGroupMembersCache.ContainsKey($Member.GroupId)) { + $script:TenantGroupMembersCache[$Member.GroupId] = [system.collections.generic.list[string]]::new() + } + $script:TenantGroupMembersCache[$Member.GroupId].Add($Member.customerId) + } + foreach ($Group in $DynamicGroups) { try { Write-LogMessage -API 'TenantGroups' -message "Processing dynamic group: $($Group.Name)" -sev Info @@ -86,6 +97,66 @@ function Update-CIPPDynamicTenantGroups { "`$_.servicePlans -$Operator '$($Value.value)'" } } + 'tenantGroupMember' { + # Get members of the referenced tenant group(s) + if ($Operator -in @('in', 'notin')) { + # Handle array of group IDs + $ReferencedGroupIds = @($Value.value) + + # Collect all unique member customerIds from all referenced groups + $AllMembers = [System.Collections.Generic.HashSet[string]]::new() + foreach ($GroupId in $ReferencedGroupIds) { + if ($script:TenantGroupMembersCache.ContainsKey($GroupId)) { + foreach ($MemberId in $script:TenantGroupMembersCache[$GroupId]) { + [void]$AllMembers.Add($MemberId) + } + } + } + + # Convert to array string for condition + $MemberArray = $AllMembers | ForEach-Object { "'$_'" } + $MemberArrayString = $MemberArray -join ', ' + + if ($Operator -eq 'in') { + "`$_.customerId -in @($MemberArrayString)" + } else { + "`$_.customerId -notin @($MemberArrayString)" + } + } else { + # Single value with other operators + $ReferencedGroupId = $Value.value + "`$_.customerId -$Operator `$script:TenantGroupMembersCache['$ReferencedGroupId']" + } + } + 'customVariable' { + # Custom variable matching - value contains variable name and expected value + # Handle case where variableName might be an object (autocomplete option) or a string + $VariableName = if ($Value.variableName -is [string]) { + $Value.variableName + } elseif ($Value.variableName.value) { + $Value.variableName.value + } else { + $Value.variableName + } + $ExpectedValue = $Value.value + # Escape single quotes in expected value for the condition string + $EscapedExpectedValue = $ExpectedValue -replace "'", "''" + + switch ($Operator) { + 'eq' { + "(`$_.customVariables.ContainsKey('$VariableName') -and `$_.customVariables['$VariableName'].Value -eq '$EscapedExpectedValue')" + } + 'ne' { + "(-not `$_.customVariables.ContainsKey('$VariableName') -or `$_.customVariables['$VariableName'].Value -ne '$EscapedExpectedValue')" + } + 'like' { + "(`$_.customVariables.ContainsKey('$VariableName') -and `$_.customVariables['$VariableName'].Value -like '*$EscapedExpectedValue*')" + } + 'notlike' { + "(-not `$_.customVariables.ContainsKey('$VariableName') -or `$_.customVariables['$VariableName'].Value -notlike '*$EscapedExpectedValue*')" + } + } + } default { Write-LogMessage -API 'TenantGroups' -message "Unknown property type: $Property" -sev Warning $null @@ -96,6 +167,7 @@ function Update-CIPPDynamicTenantGroups { if (!$WhereConditions) { throw 'Generating the conditions failed. The conditions seem to be empty.' } + Write-Information "Generated where conditions: $($WhereConditions | ConvertTo-Json )" $TenantObj = $AllTenants | ForEach-Object { if ($Rules.property -contains 'availableLicense') { if ($SkuHashtable.ContainsKey($_.customerId)) { @@ -103,18 +175,39 @@ function Update-CIPPDynamicTenantGroups { $LicenseInfo = $SkuHashtable[$_.customerId] } else { Write-Information "Fetching licenses for tenant $($_.defaultDomainName)" - $LicenseInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/subscribedSkus' -TenantId $_.defaultDomainName - # Cache the result - $CacheEntity = @{ - PartitionKey = 'sku' - RowKey = [string]$_.customerId - JSON = [string]($LicenseInfo | ConvertTo-Json -Depth 5 -Compress) + try { + $LicenseInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/subscribedSkus' -TenantId $_.defaultDomainName + # Cache the result + $CacheEntity = @{ + PartitionKey = 'sku' + RowKey = [string]$_.customerId + JSON = [string]($LicenseInfo | ConvertTo-Json -Depth 5 -Compress) + } + Add-CIPPAzDataTableEntity @LicenseCacheTable -Entity $CacheEntity -Force + } catch { + Write-LogMessage -API 'TenantGroups' -message 'Error getting licenses' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) } - Add-CIPPAzDataTableEntity @LicenseCacheTable -Entity $CacheEntity -Force } } - $SKUId = $LicenseInfo.SKUId ?? @() - $ServicePlans = (Get-CIPPTenantCapabilities -TenantFilter $_.defaultDomainName).psobject.properties.name + + # Fetch custom variables for this tenant if any rules use customVariable + $TenantVariables = @{} + if ($Rules.property -contains 'customVariable') { + try { + $TenantVariables = Get-CIPPTenantVariables -TenantFilter $_.customerId -IncludeGlobal + } catch { + Write-Information "Error fetching custom variables for tenant $($_.defaultDomainName): $($_.Exception.Message)" + Write-LogMessage -API 'TenantGroups' -message 'Error getting tenant variables' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } + } + + try { + $SKUId = $LicenseInfo.SKUId ?? @() + $ServicePlans = (Get-CIPPTenantCapabilities -TenantFilter $_.defaultDomainName).psobject.properties.name + } catch { + Write-Information "Error fetching capabilities for tenant $($_.defaultDomainName): $($_.Exception.Message)" + Write-LogMessage -API 'TenantGroups' -message 'Error getting tenant capabilities' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } [pscustomobject]@{ customerId = $_.customerId defaultDomainName = $_.defaultDomainName @@ -122,12 +215,14 @@ function Update-CIPPDynamicTenantGroups { skuId = $SKUId servicePlans = $ServicePlans delegatedPrivilegeStatus = $_.delegatedPrivilegeStatus + customVariables = $TenantVariables } } # Combine all conditions with the specified logic (AND or OR) $LogicOperator = if ($Group.RuleLogic -eq 'or') { ' -or ' } else { ' -and ' } $WhereString = $WhereConditions -join $LogicOperator Write-Information "Evaluating tenants with condition: $WhereString" + Write-LogMessage -API 'TenantGroups' -message "Evaluating tenants for group '$($Group.Name)' with condition: $WhereString" -sev Info $ScriptBlock = [ScriptBlock]::Create($WhereString) $MatchingTenants = $TenantObj | Where-Object $ScriptBlock diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 index f3cee2080ca4..e95cdb074f8d 100644 --- a/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 @@ -33,13 +33,8 @@ function Test-CIPPAccessPermissions { } if ($env:MSI_SECRET) { try { - Disable-AzContextAutosave -Scope Process | Out-Null - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - $KV = $env:WEBSITE_DEPLOYMENT_ID - $KeyVaultRefresh = Get-AzKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -AsPlainText + $KeyVaultRefresh = Get-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -AsPlainText if ($env:RefreshToken -ne $KeyVaultRefresh) { $Success = $false $ErrorMessages.Add('Your refresh token does not match key vault, wait 30 minutes for the function app to update.') | Out-Null diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 index 561568426189..4ca993cbc631 100644 --- a/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 @@ -114,8 +114,8 @@ function Test-CIPPAccessTenant { Write-Information "Found $($RoleDefinitions.Count) Exchange role definitions" $BasePath = Get-Module -Name 'CIPPCore' | Select-Object -ExpandProperty ModuleBase - $AllOrgManagementRoles = Get-Content -Path "$BasePath\Public\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json - Write-Information "Loaded all Organization Management roles from $BasePath\Public\OrganizationManagementRoles.json" + $AllOrgManagementRoles = Get-Content -Path "$BasePath\lib\data\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json + Write-Information "Loaded all Organization Management roles from $BasePath\lib\data\OrganizationManagementRoles.json" $AvailableRoles = $RoleDefinitions | Where-Object -Property displayName -In $AllOrgManagementRoles | Select-Object -Property displayName, id, description Write-Information "Found $($AvailableRoles.Count) available Organization Management roles in Exchange" diff --git a/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 index 021678392573..87caf6fc8950 100644 --- a/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 @@ -7,22 +7,33 @@ function Test-CIPPRerun { $Settings, $Headers, [switch]$Clear, - [switch]$ClearAll + [switch]$ClearAll, + [int64]$Interval = 0, # Custom interval in seconds (for scheduled tasks) + [int64]$BaseTime = 0 # Base time to calculate from (defaults to current time) ) $RerunTable = Get-CIPPTable -tablename 'RerunCache' - $EstimatedDifference = switch ($Type) { - 'Standard' { 9800 } # 2 hours 45 minutes ish. - 'BPA' { 85000 } # 24 hours ish. - default { throw "Unknown type: $Type" } + + # Use custom interval if provided, otherwise use type-based defaults + if ($Interval -gt 0) { + $EstimatedDifference = $Interval + } else { + $EstimatedDifference = switch ($Type) { + 'Standard' { 9800 } # 2 hours 45 minutes ish. + 'BPA' { 85000 } # 24 hours ish. + default { throw "Unknown type: $Type" } + } } - $CurrentUnixTime = [int][double]::Parse((Get-Date -UFormat %s)) + + # Use BaseTime if provided, otherwise use current time + $CurrentUnixTime = if ($BaseTime -gt 0) { $BaseTime } else { [int][double]::Parse((Get-Date -UFormat %s)) } $EstimatedNextRun = $CurrentUnixTime + $EstimatedDifference try { - $RerunData = Get-CIPPAzDataTableEntity @RerunTable -filter "PartitionKey eq '$($TenantFilter)' and RowKey eq '$($Type)_$($API)'" + $RerunData = Get-CIPPAzDataTableEntity @RerunTable -filter "PartitionKey eq '$($TenantFilter)'" | Where-Object { $_.RowKey -match "^$($Type)_$($API)" } if ($ClearAll.IsPresent) { $AllRerunData = Get-CIPPAzDataTableEntity @RerunTable if ($AllRerunData) { + Write-Information "Clearing all rerun cache entries for $($Type)_$($API)" Remove-AzDataTableEntity @RerunTable -Entity $AllRerunData -Force } return $false diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md new file mode 100644 index 000000000000..99c5096fc32b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md @@ -0,0 +1,9 @@ +Without owners, enterprise applications become orphaned assets that threat actors can exploit through credential harvesting and privilege escalation techniques, as these applications often retain elevated permissions and access to sensitive resources while lacking proper oversight and security governance. The elevation of privilege to owners can raise a security concern in some cases depending on the application's permissions, but more critically, applications without owner create a blind spot in security monitoring where threat actors can establish persistence by leveraging existing application permissions to access data or create backdoor accounts without triggering ownership-based detection mechanisms. When applications lack owners, security teams cannot effectively conduct application lifecycle management, leaving applications with potentially excessive permissions, outdated configurations, or compromised credentials that threat actors can discover through enumeration techniques and exploit to move laterally within the environment. The absence of ownership also prevents proper access reviews and permission audits, allowing threat actors to maintain long-term access through applications that should have been decommissioned or had their permissions reduced, ultimately providing persistent access vectors that can be leveraged for data exfiltration or further compromise of the environment. + + +**Remediation action** + +- [Assign owners to the application](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-app-owners?pivots=portal) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md new file mode 100644 index 000000000000..ac6dfafe2063 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md @@ -0,0 +1,18 @@ +If policies for Windows Firewall aren't configured and assigned, threat actors can exploit unprotected endpoints to gain unauthorized access, move laterally, and escalate privileges within the environment. Without enforced firewall rules, attackers can bypass network segmentation, exfiltrate data, or deploy malware, increasing the risk of widespread compromise. + +Enforcing Windows Firewall policies ensures consistent application of inbound and outbound traffic controls, reducing exposure to unauthorized access and supporting Zero Trust through network segmentation and device-level protection. + +**Remediation action** + +Configure and assign firewall policies for Windows in Intune to block unauthorized traffic and enforce consistent network protections across all managed devices: + +- [Configure firewall policies for Windows devices](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). Intune uses two complementary profiles to manage firewall settings: + - **Windows Firewall** - Use this profile to configure overall firewall behavior based on network type. + - **Windows Firewall rules** - Use this profile to define traffic rules for apps, ports, or IPs, tailored to specific groups or workloads. This Intune profile also supports use of [reusable settings groups](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#add-reusable-settings-groups-to-profiles-for-firewall-rules) to help simplify management of common settings you use for different profile instances. +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Available Windows Firewall settings](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-profile-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#windows-firewall-profile) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 new file mode 100644 index 000000000000..40e130efdae4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 @@ -0,0 +1,72 @@ +function Invoke-CippTestZTNA24540 { + <# + .SYNOPSIS + Windows Firewall policies protect against unauthorized network access + #> + param($Tenant) + #Tested - Device + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $FirewallPolicies = $ConfigurationPolicies | Where-Object { + $_.templateReference -and $_.templateReference.templateFamily -eq 'endpointSecurityFirewall' + } + + if ($FirewallPolicies.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Firewall configuration policies found' -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $FirewallPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one Windows Firewall policy is created and assigned to a group.' + '' + '**Windows Firewall Configuration Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $FirewallPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + $ResultLines = @( + 'There are no firewall policies assigned to any groups.' + '' + '**Windows Firewall Configuration Policies (Unassigned):**' + '' + ) + + foreach ($Policy in $FirewallPolicies) { + $ResultLines += "- $($Policy.name)" + } + + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md new file mode 100644 index 000000000000..38309e2747a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md @@ -0,0 +1,11 @@ +If compliance policies for Windows devices aren't configured and assigned, threat actors can exploit unmanaged or noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist within the environment. Without enforced compliance, devices can lack critical security configurations like BitLocker encryption, password requirements, firewall settings, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures Windows devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to Windows devices to enforce organizational standards for secure access and management: +- [Create and assign Intune compliance policies](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Windows compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-windows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 new file mode 100644 index 000000000000..acf03ea73a68 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestZTNA24541 { + <# + .SYNOPSIS + Compliance policies protect Windows devices + #> + param($Tenant) + + $TestId = 'ZTNA24541' + #Tested - Device + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $WindowsPolicies = @($IntunePolicies | Where-Object { + $_.'@odata.type' -in @('#microsoft.graph.windows10CompliancePolicy', '#microsoft.graph.windows11CompliancePolicy') + }) + + $AssignedPolicies = @($WindowsPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Windows compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Windows compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Windows Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $WindowsPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md new file mode 100644 index 000000000000..9f2fc9e48eb8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md @@ -0,0 +1,12 @@ +If compliance policies for macOS devices aren't configured and assigned, threat actors can exploit unmanaged or noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist within the environment. Without enforced compliance, macOS devices can lack critical security configurations like data storage encryption, password requirements, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures macOS devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured endpoints. + +**Remediation actions** + +Create and assign Intune compliance policies to macOS devices to enforce organizational standards for secure access and management: +- [Create and assign Intune compliance policies](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the macOS compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-mac-os?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 new file mode 100644 index 000000000000..81215ce30efa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24542 { + <# + .SYNOPSIS + Compliance policies protect macOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24542' + #Tested - Device + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $MacOSPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.macOSCompliancePolicy' }) + $AssignedPolicies = @($MacOSPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one macOS compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No macOS compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## macOS Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $MacOSPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md new file mode 100644 index 000000000000..cc5957a9245a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md @@ -0,0 +1,12 @@ +If compliance policies aren't assigned to iOS/iPadOS devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist in the environment. Without enforced compliance, devices can lack critical security configurations like passcode requirements and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures iOS/iPadOS devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to iOS/iPadOS devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the iOS/iPadOS compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 new file mode 100644 index 000000000000..3130d6e531fa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA24543 { + <# + .SYNOPSIS + Compliance policies protect iOS/iPadOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24543' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $iOSPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.iosCompliancePolicy' }) + $AssignedPolicies = @($iOSPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one iOS/iPadOS compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No iOS/iPadOS compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## iOS/iPadOS Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $iOSPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md new file mode 100644 index 000000000000..7f319eaf0e79 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md @@ -0,0 +1,11 @@ +If compliance policies aren't assigned to fully managed Android Enterprise devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist in the environment. Without enforced compliance, devices can lack critical security configurations such as passcode requirements, data storage encryption, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures Android Enterprise devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to fully managed and corporate-owned Android Enterprise devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Android Enterprise compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-android-for-work?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 new file mode 100644 index 000000000000..c40f080a415b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestZTNA24545 { + <# + .SYNOPSIS + Compliance policies protect fully managed and corporate-owned Android devices + #> + param($Tenant) + + $TestId = 'ZTNA24545' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AndroidPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidDeviceOwnerCompliancePolicy' }) + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one compliance policy for Android Enterprise Fully managed devices exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No compliance policy for Android Enterprise exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android Device Owner Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md new file mode 100644 index 000000000000..6f28c5111ac9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md @@ -0,0 +1,14 @@ +If Windows automatic enrollment isn't enabled, unmanaged devices can become an entry point for attackers. Threat actors might use these devices to access corporate data, bypass compliance policies, and introduce vulnerabilities into the environment. Devices joined to Microsoft Entra without Intune enrollment create gaps in visibility and control. These unmanaged endpoints can expose weaknesses in the operating system or misconfigured applications that attackers can exploit. + +Enforcing automatic enrollment ensures Windows devices are managed from the start, enabling consistent policy enforcement and visibility into compliance. This supports Zero Trust by ensuring all devices are verified, monitored, and governed by security controls. + +**Remediation action** + +Enable automatic enrollment for Windows devices using Intune and Microsoft Entra to ensure all domain-joined or Entra-joined devices are managed: +- [Enable Windows automatic enrollment](https://learn.microsoft.com/intune/intune-service/enrollment/windows-enroll?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-windows-automatic-enrollment) + +For more information, see: +- [Deployment guide - Enrollment for Windows](https://learn.microsoft.com/intune/intune-service/fundamentals/deployment-guide-enroll?tabs=work-profile%2Ccorporate-owned-apple%2Cautomatic-enrollment&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enrollment-for-windows) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md new file mode 100644 index 000000000000..3aaa5280e921 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md @@ -0,0 +1,12 @@ +If compliance policies aren't assigned to Android Enterprise personally owned devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and introduce vulnerabilities. Without enforced compliance, devices can lack critical security configurations like passcode requirements, data storage encryption, and OS version controls. These gaps increase the risk of data leakage and unauthorized access. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures that personally owned Android devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to Android Enterprise personally owned devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Android Enterprise compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-android-for-work?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 new file mode 100644 index 000000000000..e1ede894c0c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestZTNA24547 { + <# + .SYNOPSIS + Compliance policies protect personally owned Android devices + #> + param($Tenant) + + $TestId = 'ZTNA24547' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AndroidPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidWorkProfileCompliancePolicy' }) + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one compliance policy for Android Work Profile devices exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No compliance policy for Android Work Profile exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android Work Profile Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md new file mode 100644 index 000000000000..dae6ea117f95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md @@ -0,0 +1,14 @@ +Without app protection policies, corporate data accessed on iOS/iPadOS devices is vulnerable to leakage through unmanaged or personal apps. Users can unintentionally copy sensitive information into unsecured apps, store data outside corporate boundaries, or bypass authentication controls. This risk is especially high on BYOD devices, where personal and work contexts coexist, increasing the likelihood of data exfiltration or unauthorized access. + +App protection policies ensure corporate data remains secure within approved apps, even on personal devices. These policies enforce encryption, restrict data sharing, and require authentication, reducing the risk of data leakage and aligning with Zero Trust principles of data protection and conditional access. + +**Remediation action** + +Deploy Intune app protection policies that encrypt corporate data, restrict sharing, and require authentication in approved iOS/iPadOS apps: +- [Deploy Intune app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policies?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-an-iosipados-or-android-app-protection-policy) +- [Review the iOS app protection settings reference](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy-settings-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [Learn about using app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 new file mode 100644 index 000000000000..35d55fc52c15 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24548 { + <# + .SYNOPSIS + Data on iOS/iPadOS is protected by app protection policies + #> + param($Tenant) + + $TestId = 'ZTNA24548' + #Tested - Device + + try { + $IosPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneIosAppProtectionPolicies' + + if (-not $IosPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AssignedPolicies = @($IosPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one iOS app protection policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No iOS app protection policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## iOS App Protection Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $IosPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md new file mode 100644 index 000000000000..2c0db7f420e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md @@ -0,0 +1,16 @@ +Without app protection policies, corporate data accessed on Android devices is vulnerable to leakage through unmanaged or malicious apps. Users can unintentionally copy sensitive information into personal apps, store data insecurely, or bypass authentication controls. This risk is amplified on devices that aren't fully managed, where corporate and personal contexts coexist, increasing the likelihood of data exfiltration or unauthorized access. + +Enforcing app protection policies ensures that corporate data is only accessible through trusted apps and remains protected even on personal or BYOD Android devices. + +These policies enforce encryption, restrict data sharing, and require authentication, reducing the risk of data leakage and aligning with Zero Trust principles of data protection and Conditional Access. + +**Remediation action** + +Deploy Intune app protection policies that encrypt data, restrict sharing, and require authentication in approved Android apps: +- [Deploy Intune app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policies?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-an-iosipados-or-android-app-protection-policy) +- [Review the Android app protection settings reference](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy-settings-android?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [Learn about using app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 new file mode 100644 index 000000000000..93ec5e0072d1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24549 { + <# + .SYNOPSIS + Data on Android is protected by app protection policies + #> + param($Tenant) + + $TestId = 'ZTNA24549' + #Tested - Device + + try { + $AndroidPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneAndroidAppProtectionPolicies' + + if (-not $AndroidPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Android app protection policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Android app protection policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android App Protection Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md new file mode 100644 index 000000000000..69fd867841a0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md @@ -0,0 +1,12 @@ +Without a properly configured and assigned BitLocker policy in Intune, threat actors can exploit unencrypted Windows devices to gain unauthorized access to sensitive corporate data. Devices that lack enforced encryption are vulnerable to physical attacks, like disk removal or booting from external media, allowing attackers to bypass operating system security controls. These attacks can result in data exfiltration, credential theft, and further lateral movement within the environment. + +Enforcing BitLocker across managed Windows devices is critical for compliance with data protection regulations and for reducing the risk of data breaches. + +**Remediation action** + +Use Intune to enforce BitLocker encryption and monitor compliance across all managed Windows devices: +- [Create a BitLocker policy for Windows devices in Intune](https://learn.microsoft.com/intune/intune-service/protect/encrypt-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-and-deploy-policy) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +- [Monitor device encryption with Intune](https://learn.microsoft.com/intune/intune-service/protect/encryption-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 new file mode 100644 index 000000000000..46c285740cb6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA24550 { + <# + .SYNOPSIS + Data on Windows is protected by BitLocker encryption + #> + param($Tenant) + #Tested - Device + + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigurationPolicies | Where-Object { + $_.platforms -match 'windows10' + } + + $WindowsBitLockerPolicies = @() + foreach ($WindowsPolicy in $WindowsPolicies) { + $ValidSettingValues = @('device_vendor_msft_bitlocker_requiredeviceencryption_1') + + if ($WindowsPolicy.settings.settinginstance.choicesettingvalue.value) { + $PolicySettingValues = $WindowsPolicy.settings.settinginstance.choicesettingvalue.value + if ($PolicySettingValues -isnot [array]) { + $PolicySettingValues = @($PolicySettingValues) + } + + $HasValidSetting = $false + foreach ($SettingValue in $PolicySettingValues) { + if ($ValidSettingValues -contains $SettingValue) { + $HasValidSetting = $true + break + } + } + + if ($HasValidSetting) { + $WindowsBitLockerPolicies += $WindowsPolicy + } + } + } + + $AssignedPolicies = $WindowsBitLockerPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one Windows BitLocker policy is configured and assigned.' + '' + '**Windows BitLocker Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $WindowsBitLockerPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + if ($WindowsBitLockerPolicies.Count -gt 0) { + $ResultLines = @( + 'Windows BitLocker policies exist but none are assigned.' + '' + '**Unassigned BitLocker Policies:**' + '' + ) + foreach ($Policy in $WindowsBitLockerPolicies) { + $ResultLines += "- $($Policy.name)" + } + } else { + $ResultLines = @('No Windows BitLocker policy is configured or assigned.') + } + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md new file mode 100644 index 000000000000..441a4d65d1a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md @@ -0,0 +1,11 @@ +If policies for Windows Hello for Business (WHfB) aren't configured and assigned to all users and devices, threat actors can exploit weak authentication mechanisms—like passwords—to gain unauthorized access. This can lead to credential theft, privilege escalation, and lateral movement within the environment. Without strong, policy-driven authentication like WHfB, attackers can compromise devices and accounts, increasing the risk of widespread impact. + +Enforcing WHfB disrupts this attack chain by requiring strong, multifactor authentication, which helps reduce the risk of credential-based attacks and unauthorized access. + +**Remediation action** + +Deploy Windows Hello for Business in Intune to enforce strong, multifactor authentication: +- [Configure a tenant-wide Windows Hello for Business policy](https://learn.microsoft.com/intune/intune-service/protect/windows-hello?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-windows-hello-for-business-policy-for-device-enrollment) that applies at the time a device enrolls with Intune. +- After enrollment, [configure Account protection profiles](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-account-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#account-protection-profiles) and [assign](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) different configurations for Windows Hello for Business to different groups of users and devices. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md new file mode 100644 index 000000000000..47161b346847 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md @@ -0,0 +1,15 @@ +Without a centrally managed firewall policy, macOS devices might rely on default or user-modified settings, which often fail to meet corporate security standards. This exposes devices to unsolicited inbound connections, enabling threat actors to exploit vulnerabilities, establish outbound command-and-control (C2) traffic for data exfiltration, and move laterally within the network—significantly escalating the scope and impact of a breach. + +Enforcing macOS Firewall policies ensures consistent control over inbound and outbound traffic, reducing exposure to unauthorized access and supporting Zero Trust through device-level protection and network segmentation. + +**Remediation action** + +Configure and assign **macOS Firewall** profiles in Intune to block unauthorized traffic and enforce consistent network protections across all managed macOS devices: + +- [Configure the built-in firewall on macOS devices](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Available macOS firewall settings](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-profile-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#macos-firewall-profile) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 new file mode 100644 index 000000000000..2d87afc2142b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA24552 { + <# + .SYNOPSIS + Data on macOS is protected by firewall + #> + param($Tenant) + #Tested - Device + + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MacOSPolicies = $ConfigurationPolicies | Where-Object { + $_.platforms -match 'macOS' + } + + $MacOSFirewallPolicies = @() + foreach ($MacOSPolicy in $MacOSPolicies) { + $ValidSettingValues = @('com.apple.security.firewall_enablefirewall_true') + + if ($MacOSPolicy.settings.settinginstance.choicesettingvalue.value) { + $PolicySettingValues = $MacOSPolicy.settings.settinginstance.choicesettingvalue.value + if ($PolicySettingValues -isnot [array]) { + $PolicySettingValues = @($PolicySettingValues) + } + + $HasValidSetting = $false + foreach ($SettingValue in $PolicySettingValues) { + if ($ValidSettingValues -contains $SettingValue) { + $HasValidSetting = $true + break + } + } + + if ($HasValidSetting) { + $MacOSFirewallPolicies += $MacOSPolicy + } + } + } + + $AssignedPolicies = $MacOSFirewallPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one macOS Firewall policy is configured and assigned.' + '' + '**macOS Firewall Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $MacOSFirewallPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + if ($MacOSFirewallPolicies.Count -gt 0) { + $ResultLines = @( + 'macOS Firewall policies exist but none are assigned.' + '' + '**Unassigned Firewall Policies:**' + '' + ) + foreach ($Policy in $MacOSFirewallPolicies) { + $ResultLines += "- $($Policy.name)" + } + } else { + $ResultLines = @('No macOS Firewall policy is configured or assigned.') + } + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md new file mode 100644 index 000000000000..23dcce5aa180 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md @@ -0,0 +1,16 @@ +If Windows Update policies aren't enforced across all corporate Windows devices, threat actors can exploit unpatched vulnerabilities to gain unauthorized access, escalate privileges, and move laterally within the environment. The attack chain often begins with device compromise via phishing, malware, or exploitation of known vulnerabilities, and is followed by attempts to bypass security controls. Without enforced update policies, attackers leverage outdated software to persist in the environment, increasing the risk of privilege escalation and domain-wide compromise. + +Enforcing Windows Update policies ensures timely patching of security flaws, disrupting attacker persistence, and reducing the risk of widespread compromise. + +**Remediation action** + +Start with [Manage Windows software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/windows-update-for-business-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) to understand the available Windows Update policy types and how to configure them. + +Intune includes the following Windows update policy type: +- [Windows quality updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-quality-update-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to install the regular monthly updates for Windows.* +- [Expedite updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-expedite-updates?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to quickly install critical security patches.* +- [Feature updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-feature-updates?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Update rings policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-update-rings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to manage how and when devices install feature and quality updates.* +- [Windows driver updates](https://learn.microsoft.com/intune/intune-service/protect/windows-driver-updates-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to update hardware components.* + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 new file mode 100644 index 000000000000..befe29a27e39 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24553 { + <# + .SYNOPSIS + Windows Update policies are enforced to reduce risk from unpatched vulnerabilities + #> + param($Tenant) + #Tested - Device + + $TestId = 'ZTNA24553' + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $UpdatePolicies = @($IntunePolicies | Where-Object { + $_.'@odata.type' -in @( + '#microsoft.graph.windowsUpdateForBusinessConfiguration', + '#microsoft.graph.windows10CompliancePolicy' + ) + }) + + $AssignedPolicies = @($UpdatePolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ Windows Update policies are configured and assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Windows Update policies are configured or assigned.`n`n" + } + + $ResultMarkdown += "## Windows Update Policies`n`n" + $ResultMarkdown += "| Policy Name | Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :--- | :------- |`n" + + foreach ($policy in $UpdatePolicies) { + $type = if ($policy.'@odata.type' -eq '#microsoft.graph.windowsUpdateForBusinessConfiguration') { 'Update' } else { 'Compliance' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $type | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md new file mode 100644 index 000000000000..780d3db02237 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md @@ -0,0 +1,11 @@ +If iOS update policies aren’t configured and assigned, threat actors can exploit unpatched vulnerabilities in outdated operating systems on managed devices. The absence of enforced update policies allows attackers to use known exploits to gain initial access, escalate privileges, and move laterally within the environment. Without timely updates, devices remain susceptible to exploits that have already been addressed by Apple, enabling threat actors to bypass security controls, deploy malware, or exfiltrate sensitive data. This attack chain begins with device compromise through an unpatched vulnerability, followed by persistence and potential data breach that impacts both organizational security and compliance posture. + +Enforcing update policies disrupts this chain by ensuring devices are consistently protected against known threats. + +**Remediation action** + +Configure and assign iOS/iPadOS update policies in Intune to enforce timely patching and reduce risk from unpatched vulnerabilities: +- [Manage iOS/iPadOS software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/software-updates-guide-ios-ipados?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md new file mode 100644 index 000000000000..9419a8e0b59d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md @@ -0,0 +1,12 @@ +If Intune scope tags aren't properly configured for delegated administration, attackers who gain privileged access to Intune or Microsoft Entra ID can escalate privileges and access sensitive device configurations across the tenant. Without granular scope tags, administrative boundaries are unclear, allowing attackers to move laterally, manipulate device policies, exfiltrate configuration data, or deploy malicious settings to all users and devices. A single compromised admin account can impact the entire environment. The absence of delegated administration also undermines least-privileged access, making it difficult to contain breaches and enforce accountability. Attackers might exploit global administrator roles or misconfigured role-based access control (RBAC) assignments to bypass compliance policies and gain broad control over device management. + +Enforcing scope tags segments administrative access and aligns it with organizational boundaries. This limits the blast radius of compromised accounts, supports least-privilege access, and aligns with Zero Trust principles of segmentation, role-based control, and containment. + +**Remediation action** + +Use Intune scope tags and RBAC roles to limit admin access based on role, geography, or business unit: +- [Learn how to create and deploy scope tags for distributed IT](https://learn.microsoft.com/intune/intune-service/fundamentals/scope-tags?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Implement role-based access control with Microsoft Intune](https://learn.microsoft.com/intune/intune-service/fundamentals/role-based-access-control?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md new file mode 100644 index 000000000000..2e5273c0032d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md @@ -0,0 +1,14 @@ +Without enforcing Local Administrator Password Solution (LAPS) policies, threat actors who gain access to endpoints can exploit static or weak local administrator passwords to escalate privileges, move laterally, and establish persistence. The attack chain typically begins with device compromise—via phishing, malware, or physical access—followed by attempts to harvest local admin credentials. Without LAPS, attackers can reuse compromised credentials across multiple devices, increasing the risk of privilege escalation and domain-wide compromise. + +Enforcing Windows LAPS on all corporate Windows devices ensures unique, regularly rotated local administrator passwords. This disrupts the attack chain at the credential access and lateral movement stages, significantly reducing the risk of widespread compromise. + +**Remediation action** + +Use Intune to enforce Windows LAPS policies that rotate strong and unique local admin passwords, and that back them up securely: +- [Deploy Windows LAPS policy with Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/windows-laps-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-laps-policy) + +For more information, see: +- [Windows LAPS policy settings reference](https://learn.microsoft.com/windows-server/identity/laps/laps-management-policy-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn about Intune support for Windows LAPS](https://learn.microsoft.com/intune/intune-service/protect/windows-laps-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 new file mode 100644 index 000000000000..0df6b175853d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 @@ -0,0 +1,71 @@ +function Invoke-CippTestZTNA24560 { + <# + .SYNOPSIS + Local administrator credentials on Windows are protected by Windows LAPS + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigPolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAccountProtection' -and + $_.platforms -like '*windows10*' + } + + if (-not $WindowsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows LAPS policies found' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $LapsPolicies = $WindowsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $settingIds -contains 'device_vendor_msft_laps_policies_backupdirectory' -or + $settingIds -contains 'device_vendor_msft_laps_policies_automaticaccountmanagementenabled' + } + + if (-not $LapsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No LAPS policies configured' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $CompliantPolicies = $LapsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $choiceValues = $_.settings.settingInstance.choiceSettingValue.value + + $hasBackupDir = $settingIds -contains 'device_vendor_msft_laps_policies_backupdirectory' + $hasEntraBackup = $choiceValues -contains 'device_vendor_msft_laps_policies_backupdirectory_1' + $hasAdBackup = $choiceValues -contains 'device_vendor_msft_laps_policies_backupdirectory_2' + $hasAutoMgmt = $choiceValues -contains 'device_vendor_msft_laps_policies_automaticaccountmanagementenabled_true' + + ($hasBackupDir -and ($hasEntraBackup -or $hasAdBackup) -and $hasAutoMgmt) + } + + $AssignedCompliantPolicies = $CompliantPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedCompliantPolicies) { + $Status = 'Passed' + $Result = "Cloud LAPS policy is assigned and enforced. Found $($AssignedCompliantPolicies.Count) compliant and assigned policy/policies" + } else { + $Status = 'Failed' + if ($CompliantPolicies) { + $Result = "Cloud LAPS policy exists but is not assigned. Found $($CompliantPolicies.Count) compliant but unassigned policy/policies" + } else { + $Result = 'Cloud LAPS policy is not configured correctly or not enforced' + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md new file mode 100644 index 000000000000..0ab82d59bffc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md @@ -0,0 +1,9 @@ +If a macOS cloud LAPS (Local Administrator Password Solution) policy is not configured and assigned in Intune, local admin accounts on enrolled macOS devices may remain unmanaged, increasing the risk of unauthorized access, privilege escalation, and lateral movement by threat actors. Without enforced LAPS policies, organizations cannot ensure that admin account credentials are rotated, unique, and securely managed, exposing sensitive systems to potential compromise. + +**Remediation Resources** + +- [Configure macOS LAPS in Microsoft Intune](https://learn.microsoft.com/en-us/intune/intune-service/enrollment/macos-laps) +- [depOnboardingSetting resource type - Microsoft Graph beta](https://learn.microsoft.com/en-us/graph/api/resources/intune-enrollment-deponboardingsetting?view=graph-rest-beta) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md new file mode 100644 index 000000000000..e3746624d5b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md @@ -0,0 +1,13 @@ +Without a properly configured and assigned Local Users and Groups policy in Intune, threat actors can exploit unmanaged or misconfigured local accounts on Windows devices. This can lead to unauthorized privilege escalation, persistence, and lateral movement within the environment. If local administrator accounts aren't controlled, attackers can create hidden accounts or elevate privileges, bypassing compliance and security controls. This gap increases the risk of data exfiltration, ransomware deployment, and regulatory noncompliance. + +Ensuring that Local Users and Groups policies are enforced on managed Windows devices, by using account protection profiles, is critical to maintaining a secure and compliant device fleet. + + +**Remediation action** + +Configure and deploy a **Local user group membership** profile from Intune account protection policy to restrict and manage local account usage on Windows devices: +- Create an [Account protection policy for endpoint security in Intune](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-account-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#account-protection-profiles) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 new file mode 100644 index 000000000000..8d969033aab5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestZTNA24564 { + <# + .SYNOPSIS + Local account usage on Windows is restricted to reduce unauthorized access + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' + } + + if (-not $WindowsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows policies found' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $LocalUsersGroupsPolicies = $WindowsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + if ($settingIds -is [string]) { + $settingIds -eq 'device_vendor_msft_policy_config_localusersandgroups_configure' + } else { + $settingIds -contains 'device_vendor_msft_policy_config_localusersandgroups_configure' + } + } + + if (-not $LocalUsersGroupsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Local Users and Groups policy configured' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $LocalUsersGroupsPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "At least one Local Users and Groups policy is configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Local Users and Groups policy exists but is not assigned. Found $($LocalUsersGroupsPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md new file mode 100644 index 000000000000..f1363b0e0739 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md @@ -0,0 +1,12 @@ +If Platform SSO policies aren't enforced on macOS devices, endpoints might rely on insecure or inconsistent authentication mechanisms, allowing attackers to bypass Conditional Access and compliance policies. This opens the door to lateral movement across cloud services and on-premises resources, especially when federated identities are used. Threat actors can persist by leveraging stolen tokens or cached credentials and exfiltrate sensitive data through unmanaged apps or browser sessions. The absence of SSO enforcement also undermines app protection policies and device posture assessments, making it difficult to detect and contain breaches. Ultimately, failure to configure and assign macOS Platform SSO policies compromises identity security and weakens the organization's Zero Trust posture. + +Enforcing Platform SSO policies on macOS devices ensures consistent, secure authentication across apps and services. This strengthens identity protection, supports Conditional Access enforcement, and aligns with Zero Trust by reducing reliance on local credentials and improving posture assessments. + +**Remediation action** + +Use Intune to configure and assign Platform SSO policies for macOS devices to enforce secure authentication and strengthen identity protection, see: + +- [Configure Platform SSO for macOS in Intune](https://learn.microsoft.com/intune/intune-service/configuration/platform-sso-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) – *Step-by-step guidance for enabling Platform SSO on macOS devices.* +- [Single sign-on (SSO) overview and options for Apple devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/use-enterprise-sso-plug-in-ios-ipados-macos?pivots=macos&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) – *Overview of SSO options available for Apple platforms.* +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 new file mode 100644 index 000000000000..7f2b58180c5b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA24568 { + <# + .SYNOPSIS + Platform SSO is configured to strengthen authentication on macOS devices + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $MacOSPolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*macOS*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*appleRemoteManagement*' + } + + if (-not $MacOSPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS policies found' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $SSOPolicies = $MacOSPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $extensionIdSetting = $children | Where-Object { + $_.settingDefinitionId -eq 'com.apple.extensiblesso_extensionidentifier' + } + $extensionValue = $extensionIdSetting.simpleSettingValue.value + $extensionValue -eq 'com.microsoft.CompanyPortalMac.ssoextension' + } + + if (-not $SSOPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS SSO policies configured with Microsoft Company Portal extension' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $AssignedSSOPolicies = $SSOPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedSSOPolicies) { + $Status = 'Passed' + $Result = "macOS SSO policies are configured and assigned. Found $($AssignedSSOPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "macOS SSO policy exists but is not assigned. Found $($SSOPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md new file mode 100644 index 000000000000..b83531c58838 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md @@ -0,0 +1,12 @@ +Without properly configured and assigned FileVault encryption policies in Intune, threat actors can exploit physical access to unmanaged or misconfigured macOS devices to extract sensitive corporate data. Unencrypted devices allow attackers to bypass operating system-level security by booting from external media or removing the storage drive. These attacks can expose credentials, certificates, and cached authentication tokens, enabling privilege escalation and lateral movement. Additionally, unencrypted devices undermine compliance with data protection regulations and increase the risk of reputational damage and financial penalties in the event of a breach. + +Enforcing FileVault encryption protects data at rest on macOS devices, even if lost or stolen. It disrupts credential harvesting and lateral movement, supports regulatory compliance, and aligns with Zero Trust principles of device trust. + +**Remediation action** + +Use Intune to enforce FileVault encryption and monitor compliance on all managed macOS devices: +- [Create a FileVault disk encryption policy for macOS in Intune](https://learn.microsoft.com/intune/intune-service/protect/encrypt-devices-filevault?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-endpoint-security-policy-for-filevault) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +- [Monitor device encryption with Intune](https://learn.microsoft.com/intune/intune-service/protect/encryption-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 new file mode 100644 index 000000000000..821983deda18 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA24569 { + <# + .SYNOPSIS + FileVault encryption protects data on macOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24569' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MacOSEndpointProtectionPolicies = @($DeviceConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.macOSEndpointProtectionConfiguration' + }) + + $FileVaultEnabledPolicies = @($MacOSEndpointProtectionPolicies | Where-Object { $_.fileVaultEnabled -eq $true }) + $AssignedFileVaultPolicies = @($FileVaultEnabledPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedFileVaultPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ macOS FileVault encryption policies are configured and assigned in Intune.`n`n" + } else { + $ResultMarkdown = "❌ No relevant macOS FileVault encryption policies are configured or assigned.`n`n" + } + + if ($FileVaultEnabledPolicies.Count -gt 0) { + $ResultMarkdown += "## macOS FileVault Policies`n`n" + $ResultMarkdown += "| Policy Name | FileVault Enabled | Assigned |`n" + $ResultMarkdown += "| :---------- | :---------------- | :------- |`n" + + foreach ($policy in $FileVaultEnabledPolicies) { + $fileVault = if ($policy.fileVaultEnabled -eq $true) { '✅ Yes' } else { '❌ No' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $fileVault | $assigned |`n" + } + } else { + $ResultMarkdown += "No macOS Endpoint Protection policies with FileVault settings found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md new file mode 100644 index 000000000000..d25a00389cea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md @@ -0,0 +1,9 @@ +Microsoft Entra Connect Sync using user accounts instead of service principals creates security vulnerabilities. Legacy user account authentication with passwords is more susceptible to credential theft and password attacks than service principal authentication with certificates. Compromised connector accounts allow threat actors to manipulate identity synchronization, create backdoor accounts, escalate privileges, or disrupt hybrid identity infrastructure. + +**Remediation action** + +- [Configure service principal authentication for Entra Connect](https://learn.microsoft.com/entra/identity/hybrid/connect/authenticate-application-id?tabs=default&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#onboard-to-application-based-authentication) +- [Remove legacy Directory Synchronization Accounts](https://learn.microsoft.com/entra/identity/hybrid/connect/authenticate-application-id?tabs=default&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#remove-a-legacy-service-account) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md new file mode 100644 index 000000000000..a16520f6611d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md @@ -0,0 +1,16 @@ +Without device enrollment notifications, users might be unaware that their device has been enrolled in Intune—particularly in cases of unauthorized or unexpected enrollment. This lack of visibility can delay user reporting of suspicious activity and increase the risk of unmanaged or compromised devices gaining access to corporate resources. Attackers who obtain user credentials or exploit self-enrollment flows can silently onboard devices, bypassing user scrutiny and enabling data exposure or lateral movement. + +Enrollment notifications provide users with improved visibility into device onboarding activity. They help detect unauthorized enrollment, reinforce secure provisioning practices, and support Zero Trust principles of visibility, verification, and user engagement. + +**Remediation action** + +Configure Intune enrollment notifications to alert users when their device is enrolled and reinforce secure onboarding practices: +- [Set up enrollment notifications in Intune](https://learn.microsoft.com/intune/intune-service/enrollment/enrollment-notifications?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + + + + + + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md new file mode 100644 index 000000000000..d769655b0fae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md @@ -0,0 +1,11 @@ +Without properly configured and assigned Intune security baselines for Windows, devices remain vulnerable to a wide array of attack vectors that threat actors exploit to gain persistence and escalate privileges. Adversaries leverage default Windows configurations that lack hardened security settings to perform lateral movement using techniques like credential dumping, privilege escalation via unpatched vulnerabilities, and exploitation of weak authentication mechanisms. In the absence of enforced security baselines, threat actors can bypass critical security controls, maintain persistence through registry modifications, and exfiltrate sensitive data through unmonitored channels. Failing to implement a defense-in-depth strategy makes devices easier to exploit as attackers progress through the attack chain—from initial access to data exfiltration—ultimately compromising the organization’s security posture and increasing the risk of compliance violations. + +Applying security baselines ensures Windows devices are configured with hardened settings, reducing attack surface, enforcing defense-in-depth, and supporting Zero Trust by standardizing security controls across the environment. + +**Remediation action** + +Configure and assign Intune security baselines to Windows devices to enforce standardized security settings and monitor compliance: +- [Deploy security baselines to help secure Windows devices](https://learn.microsoft.com/intune/intune-service/protect/security-baselines-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-profile-for-a-security-baseline) +- [Monitor security baseline compliance](https://learn.microsoft.com/intune/intune-service/protect/security-baselines-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md new file mode 100644 index 000000000000..4f43396f391a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md @@ -0,0 +1,14 @@ +If Intune profiles for Attack Surface Reduction (ASR) rules aren't properly configured and assigned to Windows devices, threat actors can exploit unprotected endpoints to execute obfuscated scripts and invoke Win32 API calls from Office macros. These techniques are commonly used in phishing campaigns and malware delivery, allowing attackers to bypass traditional antivirus defenses and gain initial access. Once inside, attackers escalate privileges, establish persistence, and move laterally across the network. Without ASR enforcement, devices remain vulnerable to script-based attacks and macro abuse, undermining the effectiveness of Microsoft Defender and exposing sensitive data to exfiltration. This gap in endpoint protection increases the likelihood of successful compromise and reduces the organization’s ability to contain and respond to threats. + +Enforcing ASR rules helps block common attack techniques such as script-based execution and macro abuse, reducing the risk of initial compromise and supporting Zero Trust by hardening endpoint defenses. + +**Remediation action** + +Use Intune to deploy **Attack Surface Reduction Rules** profiles for Windows devices to block high-risk behaviors and strengthen endpoint protection: +- [Configure Intune profiles for Attack Surface Reduction Rules](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-asr-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#devices-managed-by-intune) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Attack surface reduction rules reference](https://learn.microsoft.com/defender-endpoint/attack-surface-reduction-rules-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in the Microsoft Defender documentation. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 new file mode 100644 index 000000000000..50a4ff1efbf2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA24574 { + <# + .SYNOPSIS + Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $Win10MdmSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $Win10MdmSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows ASR policies found' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $ASRPolicies = $Win10MdmSensePolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $settingIds -contains 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' + } + + if (-not $ASRPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Attack Surface Reduction policies found' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $ObfuscatedScriptPolicies = $ASRPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $settingId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts' + $matchingSetting = $children | Where-Object { $_.settingDefinitionId -eq $settingId } + $value = $matchingSetting.choiceSettingValue.value + $value -like '*_block' -or $value -like '*_warn' + } + + $Win32MacroPolicies = $ASRPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $settingId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros' + $matchingSetting = $children | Where-Object { $_.settingDefinitionId -eq $settingId } + $value = $matchingSetting.choiceSettingValue.value + $value -like '*_block' -or $value -like '*_warn' + } + + $AssignedObfuscated = $ObfuscatedScriptPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + $AssignedWin32Macro = $Win32MacroPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + + if ($AssignedObfuscated -and $AssignedWin32Macro) { + $Status = 'Passed' + $Result = 'ASR policies are configured and assigned with required rules (obfuscated scripts and Win32 API calls from macros)' + } elseif ($AssignedObfuscated -or $AssignedWin32Macro) { + $Status = 'Failed' + $Result = "ASR policies partially configured. Missing: $(if (-not $AssignedObfuscated) { 'obfuscated scripts rule ' })$(if (-not $AssignedWin32Macro) { 'Win32 API calls rule' })" + } else { + $Status = 'Failed' + $Result = 'ASR policies found but not properly configured or assigned for required rules' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md new file mode 100644 index 000000000000..05f917a22a85 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md @@ -0,0 +1,13 @@ +If policies for Microsoft Defender Antivirus aren't properly configured and assigned in Intune, threat actors can exploit unprotected endpoints to execute malware, disable antivirus protections, and persist within the environment. Without enforced antivirus policies, devices operate with outdated definitions, disabled real-time protection, or misconfigured scan schedules. These gaps allow attackers to bypass detection, escalate privileges, and move laterally across the network. The absence of antivirus enforcement undermines device compliance, increases exposure to zero-day threats, and can result in regulatory noncompliance. Attackers leverage these weaknesses to maintain persistence and evade detection, especially in environments lacking centralized policy enforcement. + +Enforcing Defender Antivirus policies ensures consistent protection against malware, supports real-time threat detection, and aligns with Zero Trust by maintaining a secure and compliant endpoint posture. + +**Remediation action** + +Configure and assign Intune policies for Microsoft Defender Antivirus to enforce real-time protection, maintain up-to-date definitions, and reduce exposure to malware: + +- [Configure Intune policies to manage Microsoft Defender Antivirus](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-antivirus-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#windows) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 new file mode 100644 index 000000000000..a86aafd31fb9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestZTNA24575 { + <# + .SYNOPSIS + Defender Antivirus policies protect Windows devices from malware + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $MdmSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $MdmSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Defender policies found' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $AVPolicies = $MdmSensePolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAntivirus' + } + + if (-not $AVPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Defender Antivirus policies found' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $AssignedPolicies = $AVPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "Windows Defender Antivirus policies are configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Windows Defender Antivirus policies exist but are not assigned. Found $($AVPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md new file mode 100644 index 000000000000..a9852ccab073 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md @@ -0,0 +1,14 @@ +If endpoint analytics isn't enabled, threat actors can exploit gaps in device health, performance, and security posture. Without the visibility Endpoint analytics brings, it can be difficult for an organization to detect indicators such as anomalous device behavior, delayed patching, or configuration drift. These gaps allow attackers to establish persistence, escalate privileges, and move laterally across the environment. An absence of analytics data can impede rapid detection and response, allowing attackers to exploit unmonitored endpoints for command and control, data exfiltration, or further compromise. + +Enabling Endpoint Analytics provides visibility into device health and behavior, helping organizations detect risks, respond quickly to threats, and maintain a strong Zero Trust posture. + +**Remediation action** + +Enroll Windows devices into Endpoint Analytics in Intune to monitor device health and identify risks: +- [Enroll Intune devices into Endpoint analytics](https://learn.microsoft.com/intune/analytics/enroll-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Endpoint analytics?](https://learn.microsoft.com/intune/analytics?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 new file mode 100644 index 000000000000..eac9abcb2266 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24576 { + <# + .SYNOPSIS + Endpoint Analytics is enabled to help identify risks on Windows devices + #> + param($Tenant) + + $TestId = 'ZTNA24576' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $WindowsHealthMonitoringPolicies = @($DeviceConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.windowsHealthMonitoringConfiguration' + }) + + $AssignedPolicies = @($WindowsHealthMonitoringPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ An Endpoint analytics policy is created and assigned.`n`n" + } else { + $ResultMarkdown = "❌ Endpoint analytics policy is not created or not assigned.`n`n" + } + + if ($WindowsHealthMonitoringPolicies.Count -gt 0) { + $ResultMarkdown += "## Endpoint Analytics Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $WindowsHealthMonitoringPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + } else { + $ResultMarkdown += "No Endpoint Analytics policies found in this tenant.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md new file mode 100644 index 000000000000..1503d4f1d531 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md @@ -0,0 +1,11 @@ +If macOS update policies aren’t properly configured and assigned, threat actors can exploit unpatched vulnerabilities in macOS devices within the organization. Without enforced update policies, devices remain on outdated software versions, increasing the attack surface for privilege escalation, remote code execution, or persistence techniques. Threat actors can leverage these weaknesses to gain initial access, escalate privileges, and move laterally within the environment. If policies exist but aren’t assigned to device groups, endpoints remain unprotected, and compliance gaps go undetected. This can result in widespread compromise, data exfiltration, and operational disruption. + +Enforcing macOS update policies ensures devices receive timely patches, reducing the risk of exploitation and supporting Zero Trust by maintaining a secure, compliant device fleet. + +**Remediation action** + +Configure and assign macOS update policies in Intune to enforce timely patching and reduce risk from unpatched vulnerabilities: +- [Manage macOS software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/software-updates-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md new file mode 100644 index 000000000000..8bb2009ede0f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md @@ -0,0 +1,11 @@ +If Microsoft Defender Antivirus policies aren't properly configured and assigned to macOS devices in Intune, attackers can exploit unprotected endpoints to execute malware, disable antivirus protections, and persist in the environment. Without enforced policies, devices run outdated definitions, lack real-time protection, or have misconfigured scan schedules, increasing the risk of undetected threats and privilege escalation. This enables lateral movement across the network, credential harvesting, and data exfiltration. The absence of antivirus enforcement undermines device compliance, increases exposure of endpoints to zero-day threats, and can result in regulatory noncompliance. Attackers use these gaps to maintain persistence and evade detection, especially in environments without centralized policy enforcement. + +Enforcing Defender Antivirus policies ensures that macOS devices are consistently protected against malware, supports real-time threat detection, and aligns with Zero Trust by maintaining a secure and compliant endpoint posture. + +**Remediation action** + +Use Intune to configure and assign Microsoft Defender Antivirus policies for macOS devices to enforce real-time protection, maintain up-to-date definitions, and reduce exposure to malware: +- [Configure Intune policies to manage Microsoft Defender Antivirus](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-antivirus-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#macos) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 new file mode 100644 index 000000000000..75a6b173b5ae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestZTNA24784 { + <# + .SYNOPSIS + Defender Antivirus policies protect macOS devices from malware + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MdmMacOSSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*macOS*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $MdmMacOSSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS Defender policies found' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AVPolicies = $MdmMacOSSensePolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAntivirus' + } + + if (-not $AVPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Defender Antivirus policies for macOS found' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $AVPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "Defender Antivirus policies for macOS are configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Defender Antivirus policies for macOS exist but are not assigned. Found $($AVPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md new file mode 100644 index 000000000000..36309a2e234e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md @@ -0,0 +1,10 @@ +If Terms and Conditions policies aren't configured and assigned in Intune, users can access corporate resources without agreeing to required legal, security, or usage terms. This omission exposes the organization to compliance risks, legal liabilities, and potential misuse of resources. + +Enforcing Terms and Conditions ensures users acknowledge and accept company policies before accessing sensitive data or systems, supporting regulatory compliance and responsible resource use. + +**Remediation action** + +Create and assign Terms and Conditions policies in Intune to require user acceptance before granting access to corporate resources: +- [Create terms and conditions policy](https://learn.microsoft.com/intune/intune-service/enrollment/terms-and-conditions-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md new file mode 100644 index 000000000000..33d8505d0aa4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md @@ -0,0 +1,15 @@ +If device cleanup rules aren't configured in Intune, stale or inactive devices can remain visible in the tenant indefinitely. This leads to cluttered device lists, inaccurate reporting, and reduced visibility into the active device landscape. Unused devices might retain access credentials or tokens, increasing the risk of unauthorized access or misinformed policy decisions. + +Device cleanup rules automatically hide inactive devices from admin views and reports, improving tenant hygiene and reducing administrative burden. This supports Zero Trust by maintaining an accurate and trustworthy device inventory while preserving historical data for audit or investigation. + +**Remediation action** + +Configure Intune device cleanup rules to automatically hide inactive devices from the tenant: +- [Create a device cleanup rule](https://learn.microsoft.com/intune/intune-service/fundamentals/device-cleanup-rules?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-to-create-a-device-cleanup-rule) + +For more information, see: +- [Using Intune device cleanup rules](https://techcommunity.microsoft.com/blog/devicemanagementmicrosoft/using-intune-device-cleanup-rules-updated-version/3760854) *on the Microsoft Tech Community blog* + + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md new file mode 100644 index 000000000000..846bef7a09b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md @@ -0,0 +1,12 @@ +If the Intune Company Portal branding isn't configured to represent your organization’s details, users can encounter a generic interface and lack direct support information. This reduces user trust, increases support overhead, and can lead to confusion or delays in resolving issues. + +Customizing the Company Portal with your organization’s branding and support contact details improves user trust, streamlines support, and reinforces the legitimacy of device management communications. + + +**Remediation action** + +Configure the Intune Company Portal with your organization’s branding and support contact information to enhance user experience and reduce support overhead: +- [Configure the Intune Company Portal](https://learn.microsoft.com/intune/intune-service/apps/company-portal-app?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md new file mode 100644 index 000000000000..355aaf0621c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md @@ -0,0 +1,15 @@ +If Microsoft Entra Conditional Access policies don't enforce device compliance, users can connect to corporate resources from devices that don't meet security standards. This exposes sensitive data to risks like malware, unauthorized access, and regulatory noncompliance. Without controls like encryption enforcement, device health checks, and access restrictions, threat actors can exploit noncompliant devices to bypass security measures and maintain persistence. + + +Requiring device compliance in Conditional Access policies ensures only trusted and secure devices can access corporate resources. This supports Zero Trust by enforcing access decisions based on device health and compliance posture. + +**Remediation action** + +Configure Conditional Access policies in Microsoft Entra to require device compliance before granting access to corporate resources: +- [Create a device compliance-based Conditional Access policy](https://learn.microsoft.com/intune/intune-service/protect/create-conditional-access-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Conditional Access?](https://learn.microsoft.com/entra/identity/conditional-access/overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Integrate device compliance results with Conditional Access](https://learn.microsoft.com/intune/intune-service/protect/device-compliance-get-started?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#integrate-with-conditional-access) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md new file mode 100644 index 000000000000..a13c08cc8982 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md @@ -0,0 +1,15 @@ +If Microsoft Entra Conditional Access policies aren't combined with app protection controls, users can connect to corporate resources through unmanaged or unsecured applications. This exposes sensitive data to risks such as data leakage, unauthorized access, and regulatory noncompliance. Without safeguards like app-level data protection, access restrictions, and data loss prevention, threat actors can exploit unprotected apps to bypass security controls and compromise organizational data. + +Enforcing Intune app protection policies within Conditional Access ensures only trusted apps can access corporate data. This supports Zero Trust by enforcing access decisions based on app trust, data containment, and usage restrictions. + +**Remediation action** + +Configure app-based Conditional Access policies in Microsoft Entra and Intune to require app protection for access to corporate resources: +- [Set up app-based Conditional Access policies with Intune](https://learn.microsoft.com/intune/intune-service/protect/app-based-conditional-access-intune-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Conditional Access?](https://learn.microsoft.com/entra/identity/conditional-access/overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn about app-based Conditional Access policies with Intune](https://learn.microsoft.com/intune/intune-service/protect/app-based-conditional-access-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md new file mode 100644 index 000000000000..be254bba4f88 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md @@ -0,0 +1,15 @@ +If Wi-Fi profiles aren't properly configured and assigned, users can connect insecurely or fail to connect to trusted networks, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. + +Centrally managing Wi-Fi profiles for iOS devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for iOS/iPadOS devices to enforce authentication and encryption standards: + +- [Deploy Wi-Fi profiles to devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: +- [Review the available Wi-Fi settings for iOS and iPadOS devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 new file mode 100644 index 000000000000..0ea86eb3dcef --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA24839 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect iOS devices from unauthorized network access + #> + param($Tenant) + #Tested - Device + + $TestId = 'ZTNA24839' + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + return + } + + $iOSWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.iosWiFiConfiguration' }) + $CompliantIosWifiConfProfiles = @($iOSWifiConfProfiles | Where-Object { $_.wiFiSecurityType -in @('wpa2Enterprise', 'wpaEnterprise') }) + $AssignedCompliantProfiles = @($CompliantIosWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for iOS exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for iOS exists or none are assigned.`n`n" + } + + if ($iOSWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## iOS WiFi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $iOSWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No iOS WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md new file mode 100644 index 000000000000..fbfac84b107a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md @@ -0,0 +1,18 @@ +If Wi-Fi profiles aren't properly configured and assigned, Android devices can fail to connect to secure networks or connect insecurely, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. + +Centrally managing Wi-Fi profiles for Android devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + + + +Use Intune to configure secure Wi-Fi profiles that enforce authentication and encryption standards. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for Android devices to enforce authentication and encryption standards: +- [Deploy Wi-Fi profiles to devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: +- [Review the available Wi-Fi settings for Android devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-android-enterprise?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 new file mode 100644 index 000000000000..1468e4345741 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24840 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect Android devices from unauthorized network access + #> + param($Tenant) + + $TestId = 'ZTNA24840' + + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + return + } + + $AndroidWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidDeviceOwnerEnterpriseWiFiConfiguration' }) + $CompliantAndroidWifiConfProfiles = @($AndroidWifiConfProfiles | Where-Object { $_.wiFiSecurityType -eq 'wpaEnterprise' }) + $AssignedCompliantProfiles = @($CompliantAndroidWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for android exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for android exists or none are assigned.`n`n" + } + + if ($CompliantAndroidWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## Android Wi-Fi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $CompliantAndroidWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No compliant Android Enterprise WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md new file mode 100644 index 000000000000..d0b2121a7e67 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md @@ -0,0 +1,15 @@ +If Wi-Fi profiles aren't properly configured and assigned, macOS devices can fail to connect to secure networks or connect insecurely, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. These gaps can lead to data interception, unauthorized network access, and compliance violations. + +Centrally managing Wi-Fi profiles for macOS devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for macOS devices to enforce authentication and encryption standards: + +- [Configure Wi-Fi settings for macOS devices in Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: + +- [Review the available Wi-Fi settings for macOS devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 new file mode 100644 index 000000000000..5e2183226768 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA24870 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect macOS devices from unauthorized network access + #> + param($Tenant) + + $TestId = 'ZTNA24870' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + return + } + + $MacOSWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.macOSWiFiConfiguration' }) + $CompliantMacOSWifiConfProfiles = @($MacOSWifiConfProfiles | Where-Object { $_.wiFiSecurityType -eq 'wpaEnterprise' }) + $AssignedCompliantProfiles = @($CompliantMacOSWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for macOS exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for macOS exists or none are assigned.`n`n" + } + + if ($CompliantMacOSWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## macOS WiFi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $CompliantMacOSWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No compliant macOS Enterprise WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md new file mode 100644 index 000000000000..a326a1b7c66d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md @@ -0,0 +1,12 @@ +If automatic enrollment into Microsoft Defender for Endpoint isn't configured for Android devices in Intune, managed endpoints might remain unprotected against mobile threats. Without Defender onboarding, devices lack advanced threat detection and response capabilities, increasing the risk of malware, phishing, and other mobile-based attacks. Unprotected devices can bypass security policies, access corporate resources, and expose sensitive data to compromise. This gap in mobile threat defense weakens the organization's Zero Trust posture and reduces visibility into endpoint health. + +Enabling automatic Defender enrollment ensures Android devices are protected by advanced threat detection and response capabilities. This supports Zero Trust by enforcing mobile threat protection, improving visibility, and reducing exposure to unmanaged or compromised endpoints. + +**Remediation action** + +Use Intune to configure automatic enrollment into Microsoft Defender for Endpoint for Android devices to enforce mobile threat protection: + +- [Integrate Microsoft Defender for Endpoint with Intune and Onboard Devices](https://learn.microsoft.com/intune/intune-service/protect/advanced-threat-protection-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md new file mode 100644 index 000000000000..7292aeb5fa36 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md @@ -0,0 +1,8 @@ +When organizations deploy Global Secure Access as their cloud-based network proxy, user traffic is routed through Microsoft's Secure Service Edge infrastructure. Without source IP restoration enabled, all authentication requests and resource access appear to originate from the proxy's IP address rather than the user's actual public egress IP. This creates a significant security gap: threat actors who compromise user credentials can authenticate from any location, and the organization's Conditional Access policies that rely on IP-based location controls become ineffective since all traffic appears to come from the same proxy addresses. Microsoft Entra ID Protection risk detections lose visibility into the original user IP address, degrading the accuracy of risk scoring algorithms that depend on geographic and network anomaly detection. Sign-in logs and audit trails no longer reflect the true source of authentication attempts, hampering incident investigation and forensic analysis. A threat actor exploiting this gap could perform credential stuffing or phishing attacks and subsequently authenticate to tenant resources while bypassing named location policies, trusted IP controls, and IP-based continuous access evaluation enforcement. The attacker's activity would blend with legitimate proxy traffic, delaying detection and extending dwell time. Enabling Global Secure Access signalling in Conditional Access restores the original user source IP to Microsoft Entra ID, Microsoft Graph, sign-in logs, and audit logs, preserving the integrity of IP-based security controls and risk assessments. + +**Remediation action** +- [Enable Global Secure Access signaling in Conditional Access](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-source-ip-restoration) + +- [Use Microsoft Graph API to enable signaling](https://learn.microsoft.com/en-us/graph/api/networkaccess-conditionalaccesssettings-update ) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md new file mode 100644 index 000000000000..4926d8187932 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md @@ -0,0 +1,20 @@ +Traffic forwarding profiles are the foundational mechanism through which Global Secure Access captures and routes network traffic to Microsoft's Security Service Edge (SSE) infrastructure. Without enabling the appropriate traffic forwarding profiles, network traffic bypasses the Global Secure Access service entirely, leaving users without zero trust network access protections. + +There are three distinct profiles: the **Microsoft traffic profile** captures Microsoft Entra ID, Microsoft Graph, SharePoint Online, Exchange Online, and other Microsoft 365 workloads; the **Private Access profile** captures traffic destined for internal corporate resources configured through Quick Access or per-app access; and the **Internet Access profile** captures traffic to the public internet including non-Microsoft SaaS applications. + +When these profiles are disabled, corresponding network traffic is not tunneled through Global Secure Access, meaning security policies, web content filtering, threat protection, and Universal Continuous Access Evaluation cannot be enforced. A threat actor who compromises user credentials can access corporate resources without the security controls that Global Secure Access would otherwise apply. + +For **Private Access**, disabled profiles mean remote users cannot securely connect to internal applications, file servers, or Remote Desktop sessions through the zero-trust model—potentially forcing fallback to legacy VPN solutions with broader network access. + +For **Internet Access**, disabled profiles mean users accessing external SaaS applications, collaboration tools, or web resources are not protected by security policies, and data exfiltration to unauthorized internet destinations cannot be prevented. + +**Remediation action** + +Enable all traffic forwarding profiles to ensure comprehensive protection: + +- [Enable the Microsoft 365 traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-microsoft-profile) +- [Enable the Private Access traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-private-access-profile) +- [Enable the Internet Access traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-internet-access-profile) +- [Understand traffic forwarding profile concepts](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-traffic-forwarding) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md new file mode 100644 index 000000000000..91d0f532b3ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md @@ -0,0 +1,12 @@ +When Entra Private Network Connectors are inactive or unhealthy, threat actors operating under assume breach conditions can exploit the lack of secure remote access control. Connectors create outbound connections to the Private Access services to reach internal resources, and when these connectors fail, organizations may resort to alternatives such as exposing applications directly or using less secure access methods. This creates initial access opportunities where threat actors can target externally exposed services or leverage compromised VPN credentials. Following successful authentication through weakened access controls, threat actors can establish persistence by maintaining access to internal resources that would otherwise require connector-based authentication and authorization checks. + +The absence of functional connectors eliminates the token-based authentication and authorization performed for all Private Access scenarios, enabling lateral movement as threat actors traverse the network without the granular access controls enforced by connector groups. The service routes new requests to an available connector, and if a connector is temporarily unavailable, it does not receive traffic meaning connector failures directly disrupt zero trust network access controls. Organizations may then implement workarounds that bypass intended security boundaries, facilitating privilege escalation as threat actors exploit the degraded security posture to access resources beyond their authorization scope. + +**Remediation action** + +- [Troubleshoot connector installation and connectivity issues](https://learn.microsoft.com/en-us/entra/global-secure-access/troubleshoot-connectors) +- [Configure connectors for high availability](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-configure-connectors) +- [Monitor connector health and performance](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-connectors) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md new file mode 100644 index 000000000000..2093de19c302 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md @@ -0,0 +1,10 @@ +The Private Network Connector is a key component of Entra Private Access and Entra Application Proxy. To maintain security, stability, and performance, it's essential that all connector machines run the latest software version. This check reviews every private network connector in your environment, compares the installed version with the most recent release, and flags any connectors that are not up to date. If any connector is outdated, the check will fail and provide a detailed list of current versions. + +**Remediation action** + +Please check this article which shows the release notes and latest version of the private network connector. +- [Microsoft Entra private network connector version release notes - Global Secure Access](https://learn.microsoft.com/entra/global-secure-access/reference-version-history) + +**Note**: Please be aware that not every connector update is an auto-update and some need to be applied manually. Auto-update will only work if the connector updater process on your machine is running. + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md new file mode 100644 index 000000000000..e62759175a00 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md @@ -0,0 +1,8 @@ +Without Private DNS configuration, remote users cannot resolve internal domain names through Entra Private Access, forcing them to rely on public DNS servers or manually configure DNS settings. Threat actors can exploit this gap through DNS spoofing attacks, where corrupt DNS data is introduced into resolver caches, causing name servers to return incorrect IP addresses. When users attempt to access internal resources by FQDN without proper DNS resolution through the secure tunnel, threat actors can redirect users from legitimate websites to sites of the attacker's choosing. This enables credential harvesting as users authenticate to what appears to be the correct internal resource but is actually controlled by the threat actor. Through this redirection, threat actors can steal sensitive data from users who believe they are accessing legitimate internal systems. The compromised credentials can then be used to establish persistence within the environment by creating additional access paths or escalating privileges. Without centralized DNS resolution through Private Access, organizations lose visibility into DNS queries and cannot apply consistent security policies, making it harder to detect when threat actors are performing reconnaissance or establishing command and control channels through DNS tunneling. + +**Remediation action** + +- [Enable Private DNS and configure DNS suffix segments for internal domains](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-private-name-resolution) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md new file mode 100644 index 000000000000..40ef6074e0d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md @@ -0,0 +1,11 @@ +Intelligent Local Access (ILA) is a key capability that merges ZTNA policy enforcement with the efficiency of routing Private Access traffic locally—instead of sending all data through the cloud backend, as is typical with standard Private Access. Using ILA is crucial; otherwise, users may turn off Private Access in the GSA client to boost performance, which would bypass all ZTNA policy controls such as user assignment or Entra ID conditional access. + +This verification ensures that private networks are set up within the Entra ID tenant. If private networks exist, the check is successful, indicating that Intelligent Local Access is being used. + +**Remediation action** + +You should consider configuring one or multiple private networks for your user sites and assigning the appropriate applications to it. This will ensure that private access traffic is routed locally when the user is located at these sites to improve performance while maintaining ZTNA policy enforcement. + +- [Enable Intelligent Local Network - Global Secure Access](https://learn.microsoft.com/en-us/entra/global-secure-access/enable-intelligent-local-access?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md new file mode 100644 index 000000000000..6c579aa18ae3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md @@ -0,0 +1,8 @@ +When the Internet Access forwarding profile remains disabled, users access internet resources without routing traffic through the Secure Web Gateway, bypassing security controls that block threats, malicious content, and unsafe destinations. Threat actors exploit this gap by delivering malware, establishing command and control connections, or exfiltrating data through unmonitored internet channels. Without sufficient controls to prevent unauthorized access, threat actors leverage compromised credentials or social engineering to establish initial access, then use unfiltered internet connectivity to download tools, establish persistence mechanisms, or communicate with external infrastructure. Organizations lose visibility into internet traffic patterns through Traffic Logs, preventing detection of data exfiltration attempts, connections to known malicious domains, or unauthorized access to external resources. The absence of identity-based access controls for internet traffic enables threat actors operating from compromised accounts to blend with normal user behavior, accessing external resources to stage attacks, download exploitation frameworks, or communicate with adversary infrastructure without triggering security alerts based on user context, device compliance, or location. + +**Remediation action** + +- [Enable Internet Access forwarding profile to route traffic through the Secure Web Gateway](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-internet-access-profile) +- [Assign users and groups to the Internet Access profile to scope traffic forwarding to specific users](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-traffic-forwarding) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md new file mode 100644 index 000000000000..63936bdc8ea5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md @@ -0,0 +1,10 @@ +Attackers might exploit valid but inactive applications that still have elevated privileges. These applications can be used to gain initial access without raising alarm because they’re legitimate applications. From there, attackers can use the application privileges to plan or execute other attacks. Attackers might also maintain access by manipulating the inactive application, such as by adding credentials. This persistence ensures that even if their primary access method is detected, they can regain access later. + +**Remediation action** + +- [Disable privileged service principals](https://learn.microsoft.com/graph/api/serviceprincipal-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- Investigate if the application has legitimate use cases +- [If service principal doesn't have legitimate use cases, delete it](https://learn.microsoft.com/graph/api/serviceprincipal-delete?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md new file mode 100644 index 000000000000..198c587988cc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md @@ -0,0 +1,10 @@ +Attackers might exploit valid but inactive applications that still have elevated privileges. These applications can be used to gain initial access without raising alarm because they're legitimate applications. From there, attackers can use the application privileges to plan or execute other attacks. Attackers might also maintain access by manipulating the inactive application, such as by adding credentials. This persistence ensures that even if their primary access method is detected, they can regain access later. + +**Remediation action** + +- [Disable inactive privileged service principals](https://learn.microsoft.com/graph/api/serviceprincipal-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- Investigate if the application has legitimate use cases. If so, [analyze if a OAuth2 permission is a better fit](https://learn.microsoft.com/entra/identity-platform/v2-app-types?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [If service principal doesn't have legitimate use cases, delete it](https://learn.microsoft.com/graph/api/serviceprincipal-delete?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md new file mode 100644 index 000000000000..ef04040bf051 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md @@ -0,0 +1,16 @@ +Applications that use client secrets might store them in configuration files, hardcode them in scripts, or risk their exposure in other ways. The complexities of secret management make client secrets susceptible to leaks and attractive to attackers. Client secrets, when exposed, provide attackers with the ability to blend their activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application's client secret, they can escalate their privileges within the system, leading to broader access and control, depending on the permissions of the application. + +Applications and service principals that have permissions for Microsoft Graph APIs or other APIs have a higher risk because an attacker can potentially exploit these additional permissions. + +**Remediation action** + +- [Move applications away from shared secrets to managed identities and adopt more secure practices](https://learn.microsoft.com/entra/identity/enterprise-apps/migrate-applications-from-secrets?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + - Use managed identities for Azure resources + - Deploy Conditional Access policies for workload identities + - Implement secret scanning + - Deploy application authentication policies to enforce secure authentication practices + - Create a least-privileged custom role to rotate application credentials + - Ensure you have a process to triage and monitor applications + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 new file mode 100644 index 000000000000..8f874c1799bf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestZTNA21772 { + <# + .SYNOPSIS + Applications do not have client secrets configured + #> + param($Tenant) + #tested + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $AppsWithSecrets = @() + $SPsWithSecrets = @() + + if ($Apps) { + $AppsWithSecrets = $Apps | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + } + + if ($ServicePrincipals) { + $SPsWithSecrets = $ServicePrincipals | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + } + + $TotalWithSecrets = $AppsWithSecrets.Count + $SPsWithSecrets.Count + + if ($TotalWithSecrets -eq 0) { + $Status = 'Passed' + $Result = 'Applications in your tenant do not use client secrets' + } else { + $Status = 'Failed' + $Result = @" +Found $($AppsWithSecrets.Count) applications and $($SPsWithSecrets.Count) service principals with client secrets configured +## Apps with client secrets: +$(($AppsWithSecrets | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +## Service principals with client secrets: +$(($SPsWithSecrets | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md new file mode 100644 index 000000000000..7e776cd485e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md @@ -0,0 +1,12 @@ +Certificates, if not securely stored, can be extracted and exploited by attackers, leading to unauthorized access. Long-lived certificates are more likely to be exposed over time. Credentials, when exposed, provide attackers with the ability to blend their activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application's certificate, they can escalate their privileges within the system, leading to broader access and control, depending on the privileges of the application. + +**Remediation action** + +- [Define certificate based application configuration](https://devblogs.microsoft.com/identity/app-management-policy/) +- [Define trusted certificate authorities for apps and service principals in the tenant](https://learn.microsoft.com/graph/api/resources/certificatebasedapplicationconfiguration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Define application management policies](https://learn.microsoft.com/graph/api/resources/applicationauthenticationmethodpolicy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Enforce secret and certificate standards](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/tutorial-enforce-secret-standards?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create a least-privileged custom role to rotate application credentials](https://learn.microsoft.com/entra/identity/role-based-access-control/custom-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 new file mode 100644 index 000000000000..6ce664830428 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 @@ -0,0 +1,88 @@ +function Invoke-CippTestZTNA21773 { + <# + .SYNOPSIS + Applications do not have certificates with expiration longer than 180 days + #> + param($Tenant) + #tested + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $MaxDate = (Get-Date).AddDays(180) + $AppsWithLongCerts = @() + $SPsWithLongCerts = @() + + if ($Apps) { + $AppsWithLongCerts = $Apps | Where-Object { + if ($_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.keyCredentials -ne '[]') { + $HasLongCert = $false + foreach ($Cred in $_.keyCredentials) { + if ($Cred.endDateTime) { + $EndDate = [datetime]$Cred.endDateTime + if ($EndDate -gt $MaxDate) { + $HasLongCert = $true + break + } + } + } + $HasLongCert + } else { + $false + } + } + } + + if ($ServicePrincipals) { + $SPsWithLongCerts = $ServicePrincipals | Where-Object { + if ($_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.keyCredentials -ne '[]') { + $HasLongCert = $false + foreach ($Cred in $_.keyCredentials) { + if ($Cred.endDateTime) { + $EndDate = [datetime]$Cred.endDateTime + if ($EndDate -gt $MaxDate) { + $HasLongCert = $true + break + } + } + } + $HasLongCert + } else { + $false + } + } + } + + $TotalWithLongCerts = $AppsWithLongCerts.Count + $SPsWithLongCerts.Count + + if ($TotalWithLongCerts -eq 0) { + $Status = 'Passed' + $Result = 'Applications in your tenant do not have certificates valid for more than 180 days' + } else { + $Status = 'Failed' + $Result = "Found $($AppsWithLongCerts.Count) applications and $($SPsWithLongCerts.Count) service principals with certificates longer than 180 days`n`n" + + if ($AppsWithLongCerts.Count -gt 0) { + $Result += "## Apps with long-lived certificates:`n`n" + $Result += ($AppsWithLongCerts | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n" + $Result += "`n`n" + } + + if ($SPsWithLongCerts.Count -gt 0) { + $Result += "## Service principals with long-lived certificates:`n`n" + $Result += ($SPsWithLongCerts | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md new file mode 100644 index 000000000000..71fed1768f8a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md @@ -0,0 +1,13 @@ +Microsoft services applications that operate in your tenant are identified as service principals with the owner organization ID "f8cdef31-a31e-4b4a-93e4-5f571e91255a." When these service principals have credentials configured in your tenant, they might create potential attack vectors that threat actors can exploit. If an administrator added the credentials and they're no longer needed, they can become a target for attackers. Although less likely when proper preventive and detective controls are in place on privileged activities, threat actors can also maliciously add credentials. In either case, threat actors can use these credentials to authenticate as the service principal, gaining the same permissions and access rights as the Microsoft service application. This initial access can lead to privilege escalation if the application has high-level permissions, allowing lateral movement across the tenant. Attackers can then proceed to data exfiltration or persistence establishment through creating other backdoor credentials. + +When credentials (like client secrets or certificates) are configured for these service principals in your tenant, it means someone - either an administrator or a malicious actor - enabled them to authenticate independently within your environment. These credentials should be investigated to determine their legitimacy and necessity. If they're no longer needed, they should be removed to reduce the risk. + +If this check doesn't pass, the recommendation is to "investigate" because you need to identify and review any applications with unused credentials configured. + +**Remediation action** + +- Confirm if the credentials added are still valid use cases. If not, remove credentials from Microsoft service applications to reduce security risk. + - In the Microsoft Entra admin center, browse to **Entra ID** > **App registrations** and select the affected application. + - Go to the **Certificates & secrets** section and remove any credentials that are no longer needed. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 new file mode 100644 index 000000000000..659e9c4656b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21774 { + <# + .SYNOPSIS + Microsoft services applications do not have credentials configured + #> + param($Tenant) + + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + #tested + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $MicrosoftTenantId = 'f8cdef31-a31e-4b4a-93e4-5f571e91255a' + + $MicrosoftSPs = $ServicePrincipals | Where-Object { + $_.appOwnerOrganizationId -eq $MicrosoftTenantId + } + + $SPsWithPasswordCreds = @() + $SPsWithKeyCreds = @() + + if ($MicrosoftSPs) { + $SPsWithPasswordCreds = $MicrosoftSPs | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + + $SPsWithKeyCreds = $MicrosoftSPs | Where-Object { + $_.keyCredentials -and + $_.keyCredentials.Count -gt 0 -and + $_.keyCredentials -ne '[]' + } + } + + $TotalWithCreds = $SPsWithPasswordCreds.Count + $SPsWithKeyCreds.Count + + if ($TotalWithCreds -eq 0) { + $Status = 'Passed' + $Result = 'No Microsoft services applications have credentials configured in the tenant' + } else { + $Status = 'Investigate' + $Result = @" +Found Microsoft services applications with credentials configured: $($SPsWithPasswordCreds.Count) with password credentials, $($SPsWithKeyCreds.Count) with key credentials +## Service principals with password credentials: +$(($SPsWithPasswordCreds | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +## Service principals with key credentials: +$(($SPsWithKeyCreds | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md new file mode 100644 index 000000000000..b2245df4e438 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md @@ -0,0 +1,10 @@ +Without proper application management policies, threat actors can exploit weak or misconfigured application credentials to get unauthorized access to organizational resources. Applications using long-lived password secrets or certificates create extended attack windows where compromised credentials stay valid for extended periods. If an application uses client secrets that are hardcoded in configuration files or have weak password requirements, threat actors can extract these credentials through different means, including source code repositories, configuration dumps, or memory analysis. If threat actors get these credentials, they can perform lateral movement within the environment, escalate privileges if the application has elevated permissions, establish persistence by creating more backdoor credentials, modify application configuration, or exfiltrate data. The lack of credential lifecycle management lets compromised credentials remain active indefinitely, giving threat actors sustained access to organizational assets and the ability to conduct data exfiltration, system manipulation, or deploy more malicious tools without detection. + +Configuring appropriate app management policies helps organizations stay ahead of these threats. + +**Remediation action** + +- [Learn how to enforce secret and certificate standards using application management policies](https://learn.microsoft.com/entra/identity/enterprise-apps/tutorial-enforce-secret-standards?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md new file mode 100644 index 000000000000..9dbaf31c5b70 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md @@ -0,0 +1,14 @@ +Without restricted user consent settings, threat actors can exploit permissive application consent configurations to gain unauthorized access to sensitive organizational data. When user consent is unrestricted, attackers can: + +- Use social engineering and illicit consent grant attacks to trick users into approving malicious applications. +- Impersonate legitimate services to request broad permissions, such as access to email, files, calendars, and other critical business data. +- Obtain legitimate OAuth tokens that bypass perimeter security controls, making access appear normal to security monitoring systems. +- Establish persistent access to organizational resources, conduct reconnaissance across Microsoft 365 services, move laterally through connected systems, and potentially escalate privileges. + +Unrestricted user consent also limits an organization's ability to enforce centralized governance over application access, making it difficult to maintain visibility into which non-Microsoft applications have access to sensitive data. This gap creates compliance risks where unauthorized applications might violate data protection regulations or organizational security policies. + +**Remediation action** + +- [Configure restricted user consent settings](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/configure-user-consent?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) to prevent illicit consent grants by disabling user consent or limiting it to verified publishers with low-risk permissions only. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 new file mode 100644 index 000000000000..88752ce98bd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestZTNA21776 { + <# + .SYNOPSIS + User consent settings are restricted + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $Matched = $AuthPolicy | Where-Object { $_.defaultUserRolePermissions.permissionGrantPoliciesAssigned -match '^ManagePermissionGrantsForSelf' } + $NoMatch = $Matched.Count -eq 0 + $LowImpact = $Matched.defaultUserRolePermissions.permissionGrantPoliciesAssigned -contains 'managePermissionGrantsForSelf.microsoft-user-default-low' + + if ($NoMatch -or $LowImpact) { + $Status = 'Passed' + $Result = if ($NoMatch) { 'User consent is disabled' } else { 'User consent restricted to verified publishers and low-impact permissions' } + } else { + $Status = 'Failed' + $Result = 'Users can consent to any application' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md new file mode 100644 index 000000000000..7f418136d2ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md @@ -0,0 +1,8 @@ +App instance property lock prevents changes to sensitive properties of a multitenant application after the application is provisioned in another tenant. Without a lock, critical properties such as application credentials can be maliciously or unintentionally modified, causing disruptions, increased risk, unauthorized access, or privilege escalations. + +**Remediation action** +Enable the app instance property lock for all multitenant applications and specify the properties to lock. +- [Configure an app instance lock](https://learn.microsoft.com/en-us/entra/identity-platform/howto-configure-app-instance-property-locks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-an-app-instance-lock) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md new file mode 100644 index 000000000000..f3911fd1bf14 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md @@ -0,0 +1,8 @@ +Microsoft ended support and security fixes for ADAL on June 30, 2023. Continued ADAL usage bypasses modern security protections available only in MSAL, including Conditional Access enforcement, Continuous Access Evaluation (CAE), and advanced token protection. ADAL applications create security vulnerabilities by using weaker legacy authentication patterns, often calling deprecated Azure AD Graph endpoints, and preventing adoption of hardened authentication flows that could mitigate future security advisories. + +**Remediation action** + +- [Migrate applications to the Microsoft Authentication Library (MSAL)](https://learn.microsoft.com/entra/identity-platform/msal-migration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 new file mode 100644 index 000000000000..cb4567b0b95f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestZTNA21780 { + <# + .SYNOPSIS + No usage of ADAL in the tenant + #> + param($Tenant) + #tested + try { + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + return + } + + $AdalRecommendations = $Recommendations | Where-Object { + $_.recommendationType -eq 'adalToMsalMigration' + } + + if ($AdalRecommendations.Count -eq 0) { + $Status = 'Passed' + $Result = 'No ADAL applications found in the tenant' + } else { + $Status = 'Failed' + $Result = @" + Found $($AdalRecommendations.Count) ADAL applications in the tenant that need migration to MSAL. + ADAL Applications: + $(($AdalRecommendations | ForEach-Object { "- $($_.applicationDisplayName) (AppId: $($_.applicationId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 new file mode 100644 index 000000000000..40441197b262 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA21782 { + <# + .SYNOPSIS + Privileged accounts have phishing-resistant methods registered + #> + param($Tenant) + + try { + $UserRegistrationDetails = New-CIPPDbRequest -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $RoleAssignments = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignments' + + if (-not $UserRegistrationDetails -or -not $RoleAssignments) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + return + } + + $PhishResistantMethods = @('passKeyDeviceBound', 'passKeyDeviceBoundAuthenticator', 'windowsHelloForBusiness') + + # Join user registration details with role assignments + $results = $UserRegistrationDetails | Where-Object { + $userId = $_.id + $RoleAssignments | Where-Object { $_.principalId -eq $userId } + } | ForEach-Object { + $user = $_ + $userRoles = $RoleAssignments | Where-Object { $_.principalId -eq $user.id } + $hasPhishResistant = $false + + if ($user.methodsRegistered) { + foreach ($method in $PhishResistantMethods) { + if ($user.methodsRegistered -contains $method) { + $hasPhishResistant = $true + break + } + } + } + + [PSCustomObject]@{ + id = $user.id + userDisplayName = $user.userDisplayName + roleDisplayName = ($userRoles.roleDefinitionName -join ', ') + methodsRegistered = $user.methodsRegistered + phishResistantAuthMethod = $hasPhishResistant + } + } + + $totalUserCount = $results.Length + $phishResistantPrivUsers = $results | Where-Object { $_.phishResistantAuthMethod } + $phishablePrivUsers = $results | Where-Object { !$_.phishResistantAuthMethod } + + $phishResistantPrivUserCount = $phishResistantPrivUsers.Length + + $passed = $totalUserCount -eq $phishResistantPrivUserCount + + $testResultMarkdown = if ($passed) { + "Validated that all privileged users have registered phishing resistant authentication methods.`n`n%TestResult%" + } else { + "Found privileged users that have not yet registered phishing resistant authentication methods`n`n%TestResult%" + } + + $mdInfo = "## Privileged users`n`n" + + if ($passed) { + $mdInfo = "All privileged users have registered phishing resistant authentication methods.`n`n" + } else { + $mdInfo = "Found privileged users that have not registered phishing resistant authentication methods.`n`n" + } + + $mdInfo = $mdInfo + "| User | Role Name | Phishing resistant method registered |`n" + $mdInfo = $mdInfo + "| :--- | :--- | :---: |`n" + + $userLinkFormat = 'https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/UserAuthMethods/userId/{0}/hidePreviewBanner~/true' + + $mdLines = @($phishablePrivUsers | Sort-Object userDisplayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + "|[$($_.userDisplayName)]($userLink)| $($_.roleDisplayName) | ❌ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $mdLines = @($phishResistantPrivUsers | Sort-Object userDisplayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + "|[$($_.userDisplayName)]($userLink)| $($_.roleDisplayName) | ✅ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 new file mode 100644 index 000000000000..1749977c6dee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestZTNA21783 { + <# + .SYNOPSIS + Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + + if (-not $CAPolicies -or -not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $PrivilegedRoles = $Roles | Where-Object { $_.isPrivileged -and $_.isBuiltIn } + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No privileged built-in roles found in tenant' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $PhishResistantMethods = @('windowsHelloForBusiness', 'fido2', 'x509CertificateMultiFactor') + + $PhishResistantPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.grantControls.authenticationStrength -and + $_.conditions.users.includeRoles + } + + $CoveredRoleIds = $PhishResistantPolicies.conditions.users.includeRoles | Select-Object -Unique + + $UnprotectedRoles = $PrivilegedRoles | Where-Object { $_.id -notin $CoveredRoleIds } + + if ($UnprotectedRoles.Count -eq 0) { + $Status = 'Passed' + $Result = "All $($PrivilegedRoles.Count) privileged built-in roles are protected by Conditional Access policies enforcing phishing-resistant authentication" + } else { + $Status = 'Failed' + $UnprotectedCount = $UnprotectedRoles.Count + $ProtectedCount = $PrivilegedRoles.Count - $UnprotectedCount + $Result = @" +Found $UnprotectedCount unprotected privileged roles out of $($PrivilegedRoles.Count) total ($ProtectedCount protected) +## Unprotected privileged roles: +$(($UnprotectedRoles | ForEach-Object { "- $($_.displayName)" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md new file mode 100644 index 000000000000..49b91b174bf7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md @@ -0,0 +1,12 @@ +## Description + +Verifies that all user sign-ins are protected by Conditional Access policies requiring phishing-resistant authentication methods (Windows Hello for Business, FIDO2 security keys, or certificate-based authentication). + +**Remediation action** + +- [Configure Conditional Access policies to enforce phishing-resistant authentication](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-all-users-mfa-strength) + +- [Deploy phishing-resistant authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-deploy-phishing-resistant-passwordless-authentication) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 new file mode 100644 index 000000000000..3df5ac94ee3b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA21784 { + <# + .SYNOPSIS + All user sign in activity uses phishing-resistant authentication methods + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + # Get authentication strength policies from cache + $AuthStrengthPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationStrengths' + + # Define phishing-resistant methods + $PhishingResistantMethods = @( + 'windowsHelloForBusiness', + 'fido2', + 'x509CertificateMultiFactor', + 'certificateBasedAuthenticationPki' + ) + + # Find authentication strength policies with phishing-resistant methods + $PhishingResistantPolicies = $AuthStrengthPolicies | Where-Object { + $_.allowedCombinations | Where-Object { $PhishingResistantMethods -contains $_ } + } + + if (-not $PhishingResistantPolicies) { + $Status = 'Failed' + $Result = 'No phishing-resistant authentication strength policies found in tenant' + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $EnabledPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + # Find policies that apply to all users with phishing-resistant auth strength + $RelevantPolicies = $EnabledPolicies | Where-Object { + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.authenticationStrength.id -in $PhishingResistantPolicies.id) + } + + if (-not $RelevantPolicies) { + $Status = 'Failed' + $Result = 'No Conditional Access policies found requiring phishing-resistant authentication for all users' + } else { + # Check for user exclusions that create coverage gaps + $PoliciesWithExclusions = $RelevantPolicies | Where-Object { + $_.conditions.users.excludeUsers.Count -gt 0 + } + + if ($PoliciesWithExclusions.Count -gt 0) { + $Status = 'Failed' + $Result = "Found $($RelevantPolicies.Count) policies requiring phishing-resistant authentication, but $($PoliciesWithExclusions.Count) have user exclusions creating coverage gaps:`n`n" + $Result += ($PoliciesWithExclusions | ForEach-Object { "- $($_.displayName) (Excludes $($_.conditions.users.excludeUsers.Count) users)" }) -join "`n" + } else { + $Status = 'Passed' + $Result = "All users are protected by $($RelevantPolicies.Count) Conditional Access policies requiring phishing-resistant authentication:`n`n" + $Result += ($RelevantPolicies | ForEach-Object { "- $($_.displayName)" }) -join "`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md new file mode 100644 index 000000000000..9687b064b0dc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md @@ -0,0 +1,10 @@ +A threat actor can intercept or extract authentication tokens from memory, local storage on a legitimate device, or by inspecting network traffic. The attacker might replay those tokens to bypass authentication controls on users and devices, get unauthorized access to sensitive data, or run further attacks. Because these tokens are valid and time bound, traditional anomaly detection often fails to flag the activity, which might allow sustained access until the token expires or is revoked. + +Token protection, also called token binding, helps prevent token theft by making sure a token is usable only from the intended device. Token protection uses cryptography so that without the client device key, no one can use the token. + +**Remediation action** + +- [Deploy a Conditional Access policy to require token protection](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 new file mode 100644 index 000000000000..f44d613a07e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 @@ -0,0 +1,41 @@ +function Invoke-CippTestZTNA21786 { + <# + .SYNOPSIS + User sign-in activity uses token protection + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $TokenProtectionPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.clientAppTypes.Count -eq 1 -and + $_.conditions.clientAppTypes[0] -eq 'mobileAppsAndDesktopClients' -and + $_.conditions.applications.includeApplications -contains '00000002-0000-0ff1-ce00-000000000000' -and + $_.conditions.applications.includeApplications -contains '00000003-0000-0ff1-ce00-000000000000' -and + $_.conditions.platforms.includePlatforms.Count -eq 1 -and + $_.conditions.platforms.includePlatforms -eq 'windows' -and + $_.sessionControls.secureSignInSession.isEnabled -eq $true + } + + if ($TokenProtectionPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "Found $($TokenProtectionPolicies.Count) token protection policies properly configured" + } else { + $Status = 'Failed' + $Result = 'No properly configured token protection policies found' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md new file mode 100644 index 000000000000..b6a91771ec1e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md @@ -0,0 +1,12 @@ +A threat actor or a well-intentioned but uninformed employee can create a new Microsoft Entra tenant if there are no restrictions in place. By default, the user who creates a tenant is automatically assigned the Global Administrator role. Without proper controls, this action fractures the identity perimeter by creating a tenant outside the organization's governance and visibility. It introduces risk though a shadow identity platform that can be exploited for token issuance, brand impersonation, consent phishing, or persistent staging infrastructure. Since the rogue tenant might not be tethered to the enterprise’s administrative or monitoring planes, traditional defenses are blind to its creation, activity, and potential misuse. + +**Remediation action** + +Enable the **Restrict non-admin users from creating tenants** setting. For users that need the ability to create tenants, assign them the Tenant Creator role. You can also review tenant creation events in the Microsoft Entra audit logs. + +- [Restrict member users' default permissions](https://learn.microsoft.com/entra/fundamentals/users-default-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#restrict-member-users-default-permissions) +- [Assign the Tenant Creator role](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#tenant-creator) +- [Review tenant creation events](https://learn.microsoft.com/entra/identity/monitoring-health/reference-audit-activities?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#core-directory). Look for OperationName=="Create Company", Category == "DirectoryManagement". + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 new file mode 100644 index 000000000000..0e0a9223dc11 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21787 { + <# + .SYNOPSIS + Permissions to create new tenants are limited to the Tenant Creator role + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + return + } + + $CanCreateTenants = $AuthPolicy.defaultUserRolePermissions.allowedToCreateTenants + + if ($CanCreateTenants -eq $false) { + $Status = 'Passed' + $Result = 'Non-privileged users are restricted from creating tenants' + } else { + $Status = 'Failed' + $Result = 'Non-privileged users are allowed to create tenants' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md new file mode 100644 index 000000000000..1c232fd4b0fe --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md @@ -0,0 +1,13 @@ +Global Administrators with persistent access to Azure subscriptions expand the attack surface for threat actors. If a Global Administrator account is compromised, attackers can immediately enumerate resources, modify configurations, assign roles, and exfiltrate sensitive data across all subscriptions. Requiring just-in-time elevation for subscription access introduces detectable signals, slows attacker velocity, and routes high-impact operations through observable control points. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths.md) + +- [Deploy Conditional Access policy to target privileged accounts and require phishing resistant credentials using authentication strengths](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity.md) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md new file mode 100644 index 000000000000..d434ab123c6f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md @@ -0,0 +1,11 @@ +Allowing unrestricted external collaboration with unverified organizations can increase the risk surface area of the tenant because it allows guest accounts that might not have proper security controls. Threat actors can attempt to gain access by compromising identities in these loosely governed external tenants. Once granted guest access, they can then use legitimate collaboration pathways to infiltrate resources in your tenant and attempt to gain sensitive information. Threat actors can also exploit misconfigured permissions to escalate privileges and try different types of attacks. + +Without vetting the security of organizations you collaborate with, malicious external accounts can persist undetected, exfiltrate confidential data, and inject malicious payloads. This type of exposure can weaken organizational control and enable cross-tenant attacks that bypass traditional perimeter defenses and undermine both data integrity and operational resilience. Cross-tenant settings for outbound access in Microsoft Entra provide the ability to block collaboration with unknown organizations by default, reducing the attack surface. + +**Remediation action** + +- [Cross-tenant access overview](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure cross-tenant access settings](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-default-settings) +- [Modify outbound access settings](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 new file mode 100644 index 000000000000..d9aa7a95f316 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestZTNA21790 { + <# + .SYNOPSIS + Outbound cross-tenant access settings are configured + #> + param($Tenant) + #tested + try { + $CrossTenantPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CrossTenantAccessPolicy' + + if (-not $CrossTenantPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + return + } + + $B2BCollabOutbound = $CrossTenantPolicy.b2bCollaborationOutbound.usersAndGroups.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bCollaborationOutbound.usersAndGroups.targets[0].target -eq 'AllUsers' -and + $CrossTenantPolicy.b2bCollaborationOutbound.applications.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bCollaborationOutbound.applications.targets[0].target -eq 'AllApplications' + + $B2BDirectOutbound = $CrossTenantPolicy.b2bDirectConnectOutbound.usersAndGroups.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.usersAndGroups.targets[0].target -eq 'AllUsers' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.applications.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.applications.targets[0].target -eq 'AllApplications' + + if ($B2BCollabOutbound -and $B2BDirectOutbound) { + $Status = 'Passed' + $Result = 'Default cross-tenant access outbound policy blocks all access' + } else { + $Status = 'Failed' + $Result = 'Default cross-tenant access outbound policy has unrestricted access' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md new file mode 100644 index 000000000000..7e85d896cdfa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md @@ -0,0 +1,10 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your enterprise. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +Allowing external users to onboard other external users increases the risk of unauthorized access. If an attacker compromises an external user's account, they can use it to create more external accounts, multiplying their access points and making it harder to detect the intrusion. + +**Remediation action** + +- [Restrict who can invite guests to only users assigned to specific admin roles](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-invite-settings) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 new file mode 100644 index 000000000000..870346bf350b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21791 { + <# + .SYNOPSIS + Guests cannot invite other guests + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + return + } + + $AllowInvitesFrom = $AuthPolicy.allowInvitesFrom + + if ($AllowInvitesFrom -ne 'everyone') { + $Status = 'Passed' + $Result = "Tenant restricts who can invite guests (Set to: $AllowInvitesFrom)" + } else { + $Status = 'Failed' + $Result = 'Tenant allows any user including guests to invite other guests' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md new file mode 100644 index 000000000000..e3d4505e32c7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md @@ -0,0 +1,10 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your enterprise. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +External accounts with permissions to read directory object permissions provide attackers with broader initial access if compromised. These accounts allow attackers to gather additional information from the directory for reconnaissance. + +**Remediation action** + +- [Restrict guest access to their own directory objects](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-user-access) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 new file mode 100644 index 000000000000..037e94fe2a3b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestZTNA21792 { + <# + .SYNOPSIS + Guests have restricted access to directory objects + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + return + } + + $GuestRestrictedRoleId = '2af84b1e-32c8-42b7-82bc-daa82404023b' + $GuestRoleId = $AuthPolicy.guestUserRoleId + + if ($GuestRoleId -eq $GuestRestrictedRoleId) { + $Status = 'Passed' + $Result = 'Guest user access is properly restricted' + } else { + $Status = 'Failed' + $Result = 'Guest user access is not restricted' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md new file mode 100644 index 000000000000..fe4e0f3ea03f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md @@ -0,0 +1,10 @@ +Tenant Restrictions v2 (TRv2) allows organizations to enforce policies that restrict access to specified Microsoft Entra tenants, preventing unauthorized exfiltration of corporate data to external tenants using local accounts. Without TRv2, threat actors can exploit this vulnerability, which leads to potential data exfiltration and compliance violations, followed by credential harvesting if those external tenants have weaker controls. Once credentials are obtained, threat actors can gain initial access to these external tenants. TRv2 provides the mechanism to prevent users from authenticating to unauthorized tenants. Otherwise, threat actors can move laterally, escalate privileges, and potentially exfiltrate sensitive data, all while appearing as legitimate user activity that bypasses traditional data loss prevention controls focused on internal tenant monitoring. + +Implementing TRv2 enforces policies that restrict access to specified tenants, mitigating these risks by ensuring that authentication and data access are confined to authorized tenants only. + +If this check passes, your tenant has a TRv2 policy configured but more steps are required to validate the scenario end-to-end. + +**Remediation action** +- [Set up Tenant Restrictions v2](https://learn.microsoft.com/en-us/entra/external-id/tenant-restrictions-v2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 new file mode 100644 index 000000000000..3c21654fbc66 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestZTNA21793 { + <# + .SYNOPSIS + Tenant restrictions v2 policy is configured + #> + param($Tenant) + #tested + try { + $CrossTenantPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CrossTenantAccessPolicy' + + if (-not $CrossTenantPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $TenantRestrictions = $CrossTenantPolicy.tenantRestrictions + + if (-not $TenantRestrictions) { + $Status = 'Failed' + $Result = 'Tenant Restrictions v2 policy is not configured' + } else { + $UsersBlocked = $TenantRestrictions.usersAndGroups.accessType -eq 'blocked' -and + $TenantRestrictions.usersAndGroups.targets[0].target -eq 'AllUsers' + + $AppsBlocked = $TenantRestrictions.applications.accessType -eq 'blocked' -and + $TenantRestrictions.applications.targets[0].target -eq 'AllApplications' + + if ($UsersBlocked -and $AppsBlocked) { + $Status = 'Passed' + $Result = 'Tenant Restrictions v2 policy is properly configured' + } else { + $Status = 'Failed' + $Result = 'Tenant Restrictions v2 policy is configured but not properly restricting all users and applications' + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md new file mode 100644 index 000000000000..7e00a1e3cb84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md @@ -0,0 +1,16 @@ +Legacy authentication protocols such as basic authentication for SMTP and IMAP don't support modern security features like multifactor authentication (MFA), which is crucial for protecting against unauthorized access. This lack of protection makes accounts using these protocols vulnerable to password-based attacks, and provides attackers with a means to gain initial access using stolen or guessed credentials. + +When an attacker successfully gains unauthorized access to credentials, they can use them to access linked services, using the weak authentication method as an entry point. Attackers who gain access through legacy authentication might make changes to Microsoft Exchange, such as configuring mail forwarding rules or changing other settings, allowing them to maintain continued access to sensitive communications. + +Legacy authentication also provides attackers with a consistent method to reenter a system using compromised credentials without triggering security alerts or requiring reauthentication. + +From there, attackers can use legacy protocols to access other systems that are accessible via the compromised account, facilitating lateral movement. Attackers using legacy protocols can blend in with legitimate user activities, making it difficult for security teams to distinguish between normal usage and malicious behavior. + +**Remediation action** + +- [Exchange protocols can be deactivated in Exchange](https://learn.microsoft.com/exchange/clients-and-mobile-in-exchange-online/disable-basic-authentication-in-exchange-online?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Legacy authentication protocols can be blocked with Conditional Access](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Sign-ins using legacy authentication workbook to help determine whether it's safe to turn off legacy authentication](https://learn.microsoft.com/entra/identity/monitoring-health/workbook-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md new file mode 100644 index 000000000000..cef984099328 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md @@ -0,0 +1,14 @@ +Legacy authentication protocols such as basic authentication for SMTP and IMAP don't support modern security features like multifactor authentication (MFA), which is crucial for protecting against unauthorized access. This lack of protection makes accounts using these protocols vulnerable to password-based attacks, and provides attackers with a means to gain initial access using stolen or guessed credentials. + +When an attacker successfully gains unauthorized access to credentials, they can use them to access linked services, using the weak authentication method as an entry point. Attackers who gain access through legacy authentication might make changes to Microsoft Exchange, such as configuring mail forwarding rules or changing other settings, allowing them to maintain continued access to sensitive communications. + +Legacy authentication also provides attackers with a consistent method to reenter a system using compromised credentials without triggering security alerts or requiring reauthentication. + +From there, attackers can use legacy protocols to access other systems that are accessible via the compromised account, facilitating lateral movement. Attackers using legacy protocols can blend in with legitimate user activities, making it difficult for security teams to distinguish between normal usage and malicious behavior. + +**Remediation action** + +- [Deploy a Conditional Access policy to Block legacy authentication](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 new file mode 100644 index 000000000000..88695f31b7c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21796 { + <# + .SYNOPSIS + Block legacy authentication policy is configured + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $BlockPolicies = $CAPolicies | Where-Object { + $_.grantControls.builtInControls -contains 'block' -and + $_.conditions.clientAppTypes -contains 'exchangeActiveSync' -and + $_.conditions.clientAppTypes -contains 'other' + } + + $EnabledBlockPolicies = $BlockPolicies | Where-Object { + $_.conditions.users.includeUsers -contains 'All' -and + $_.state -eq 'enabled' + } + + if ($EnabledBlockPolicies.Count -ge 1) { + $Status = 'Passed' + $Result = "Found $($EnabledBlockPolicies.Count) properly configured policies blocking legacy authentication:`n $($EnabledBlockPolicies | ForEach-Object { "- $($_.displayName)" } | Out-String) " + } elseif ($BlockPolicies.Count -ge 1) { + $Status = 'Failed' + $Result = "Policies to block legacy authentication found but not properly configured or enabled: `n $($BlockPolicies | ForEach-Object { "- $($_.displayName)" } | Out-String) " + } else { + $Status = 'Failed' + $Result = 'No conditional access policies to block legacy authentication found' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md new file mode 100644 index 000000000000..5f34835602c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md @@ -0,0 +1,13 @@ +Assume high risk users are compromised by threat actors. Without investigation and remediation, threat actors can execute scripts, deploy malicious applications, or manipulate API calls to establish persistence, based on the potentially compromised user's permissions. Threat actors can then exploit misconfigurations or abuse OAuth tokens to move laterally across workloads like documents, SaaS applications, or Azure resources. Threat actors can gain access to sensitive files, customer records, or proprietary code and exfiltrate it to external repositories while maintaining stealth through legitimate cloud services. Finally, threat actors might disrupt operations by modifying configurations, encrypting data for ransom, or using the stolen information for further attacks, resulting in financial, reputational, and regulatory consequences. + +Organizations using passwords can rely on password reset to automatically remediate risky users. + +Organizations using passwordless credentials already mitigate most risk events that accrue to user risk levels, thus the volume of risky users should be considerably lower. Risky users in an organization that uses passwordless credentials must be blocked from access until the user risk is investigated and remediated. + +**Remediation action** + +- [Deploy a Conditional Access policy to require a secure password change for elevated user risk](https://learn.microsoft.com/entra/identity/conditional-access/policy-risk-based-user?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Use Microsoft Entra ID Protection to [investigate risk further](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 new file mode 100644 index 000000000000..b35dd6b651c5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 @@ -0,0 +1,150 @@ +function Invoke-CippTestZTNA21797 { + <# + .SYNOPSIS + Restrict access to high risk users + #> + param($Tenant) + #tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $authMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $allCAPolicies -or -not $authMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $caPasswordChangePolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + $_.grantControls.builtInControls -contains 'passwordChange' -and + $_.state -eq 'enabled' + } + + $caBlockPolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + $_.grantControls.builtInControls -contains 'block' -and + $_.state -eq 'enabled' + } + + $inactiveCAPolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + ($_.grantControls.builtInControls -contains 'passwordChange' -or $_.grantControls.builtInControls -contains 'block') -and + $_.state -ne 'enabled' + } + + $passwordlessEnabled = $false + $passwordlessAuthMethods = @() + + if ($authMethodsPolicy.authenticationMethodConfigurations) { + foreach ($method in $authMethodsPolicy.authenticationMethodConfigurations) { + $isPasswordless = $false + $methodName = $method.id + $methodState = $method.state + $additionalInfo = '' + + if ($method.id -in @('fido2')) { + $isPasswordless = ($method.state -eq 'enabled') + } + + if ($method.id -eq 'x509Certificate') { + if ($method.state -eq 'enabled' -and $method.x509CertificateAuthenticationDefaultMode -eq 'x509CertificateMultiFactor') { + $isPasswordless = $true + $additionalInfo = ' (Mode: x509CertificateMultiFactor)' + } + } + + if ($isPasswordless) { + $passwordlessEnabled = $true + $passwordlessAuthMethods += [PSCustomObject]@{ + Name = $methodName + State = $methodState + AdditionalInfo = $additionalInfo + } + } + } + } + + $result = $false + if ((-not $passwordlessEnabled -and ($caPasswordChangePolicies.Count + $caBlockPolicies.Count -gt 0)) -or + ($passwordlessEnabled -and $caBlockPolicies.Count -gt 0)) { + $result = $true + } + + $testResultMarkdown = '' + + if ($result) { + $testResultMarkdown = 'Policies to restrict access for high risk users are properly implemented.' + } else { + if ($passwordlessEnabled -and $caBlockPolicies.Count -eq 0) { + $testResultMarkdown = 'Passwordless authentication is enabled, but no policies to block high risk users are configured.' + } else { + $testResultMarkdown = 'No policies found to protect against high risk users.' + } + } + + $mdInfo = "`n## Passwordless Authentication Methods allowed in tenant`n`n" + + if ($passwordlessAuthMethods.Count -gt 0) { + $mdInfo += "| Authentication Method Name | State | Additional Info |`n" + $mdInfo += "| :------------------------ | :---- | :-------------- |`n" + foreach ($method in $passwordlessAuthMethods) { + $mdInfo += "| $($method.Name) | $($method.State) | $($method.AdditionalInfo) |`n" + } + } else { + $mdInfo += "No passwordless authentication methods are enabled.`n" + } + + $mdInfo += "`n## Conditional Access Policies targeting high risk users`n`n" + + $allEnabledHighRiskPolicies = @($caPasswordChangePolicies) + @($caBlockPolicies) + + if ($allEnabledHighRiskPolicies.Count -gt 0) { + $mdInfo += "| Conditional Access Policy Name | Status | Conditions |`n" + $mdInfo += "| :--------------------- | :----- | :--------- |`n" + + foreach ($policy in $allEnabledHighRiskPolicies) { + $conditions = 'User Risk Level: High' + if ($policy.grantControls.builtInControls -contains 'passwordChange') { + $conditions += ', Control: Password Change' + } + if ($policy.grantControls.builtInControls -contains 'block') { + $conditions += ', Control: Block' + } + $mdInfo += "| $($policy.displayName) | Enabled | $conditions |`n" + } + } + + if ($inactiveCAPolicies.Count -gt 0) { + if ($allEnabledHighRiskPolicies.Count -eq 0) { + $mdInfo += "No conditional access policies targeting high risk users found.`n`n" + $mdInfo += "### Inactive policies targeting high risk users (not contributing to security posture):`n`n" + $mdInfo += "| Conditional Access Policy Name | Status | Conditions |`n" + $mdInfo += "| :--------------------- | :----- | :--------- |`n" + } + + foreach ($policy in $inactiveCAPolicies) { + $conditions = 'User Risk Level: High' + if ($policy.grantControls.builtInControls -contains 'passwordChange') { + $conditions += ', Control: Password Change' + } + if ($policy.grantControls.builtInControls -contains 'block') { + $conditions += ', Control: Block' + } + $status = if ($policy.state -eq 'enabledForReportingButNotEnforced') { 'Report-only' } else { 'Disabled' } + $mdInfo += "| $($policy.displayName) | $status | $conditions |`n" + } + } elseif ($allEnabledHighRiskPolicies.Count -eq 0) { + $mdInfo += "No conditional access policies targeting high risk users found.`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + $Status = if ($result) { 'Passed' } else { 'Failed' } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status $Status -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md new file mode 100644 index 000000000000..3c34e31de3ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md @@ -0,0 +1,8 @@ +If you don't enable ID Protection notifications, your organization loses critical real-time alerts when threat actors compromise user accounts or conduct reconnaissance activities. When Microsoft Entra ID Protection detects accounts at risk, it sends email alerts with **Users at risk detected** as the subject and links to the **Users flagged for risk** report. Without these notifications, security teams remain unaware of active threats, allowing threat actors to maintain persistence in compromised accounts without being detected. You can feed these risks into tools like Conditional Access to make access decisions or send them to a security information and event management (SIEM) tool for investigation and correlation. Threat actors can use this detection gap to conduct lateral movement activities, privilege escalation attempts, or data exfiltration operations while administrators remain unaware of the ongoing compromise. The delayed response enables threat actors to establish more persistence mechanisms, change user permissions, or access sensitive resources before you can fix the issue. Without proactive notification of risk detections, organizations must rely solely on manual monitoring of risk reports, which significantly increases the time it takes to detect and respond to identity-based attacks. + +**Remediation action** + +- [Configure users at risk detected alerts](https://learn.microsoft.com/en-us/entra/id-protection/howto-identity-protection-configure-notifications?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-users-at-risk-detected-alerts) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md new file mode 100644 index 000000000000..68af01ead6db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md @@ -0,0 +1,8 @@ +When high-risk sign-ins are not properly restricted through Conditional Access policies, organizations expose themselves to security vulnerabilities. Threat actors can exploit these gaps for initial access through compromised credentials, credential stuffing attacks, or anomalous sign-in patterns that Microsoft Entra ID Protection identifies as risky behaviors. Without appropriate restrictions, threat actors who successfully authenticate during high-risk scenarios can perform privilege escalation by misusing the authenticated session to access sensitive resources, modify security configurations, or conduct reconnaissance activities within the environment. Once threat actors establish access through uncontrolled high-risk sign-ins, they can achieve persistence by creating additional accounts, installing backdoors, or modifying authentication policies to maintain long-term access to the organization's resources. The unrestricted access enables threat actors to conduct lateral movement across systems and applications using the authenticated session, potentially accessing sensitive data stores, administrative interfaces, or critical business applications. Finally, threat actors achieve impact through data exfiltration, or compromise business-critical systems while maintaining plausible deniability by exploiting the fact that their risky authentication was not properly challenged or blocked. + +**Remediation action** + +- [Deploy a Conditional Access policy to require MFA for elevated sign-in risk](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-risk-based-sign-in?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 new file mode 100644 index 000000000000..0fd5396bd764 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21799 { + <# + .SYNOPSIS + Restrict high risk sign-ins + #> + param($Tenant) + #tested + try { + $authMethodPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies -or -not $authMethodPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $matchedPolicies = $null + + if (($authMethodPolicy.authenticationMethodConfigurations.state -eq 'enabled').count -gt 0) { + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.signInRiskLevels -eq 'high' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.builtInControls -contains 'block' -or $_.grantControls.builtInControls -contains 'mfa' -or $null -ne $_.grantControls.authenticationStrength) -and + ($_.state -eq 'enabled') + } + } else { + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.signInRiskLevels -eq 'high' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.builtInControls -contains 'block') -and + ($_.state -eq 'enabled') + } + } + + $testResultMarkdown = '' + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'All high-risk sign-in attempts are mitigated by Conditional Access policies enforcing appropriate controls.' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Some high-risk sign-in attempts are not adequately mitigated by Conditional Access policies.' + } + + $reportTitle = 'Conditional Access Policies targeting high-risk sign-in attempts' + $tableRows = '' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Grant Controls | Target Users |`n" + $mdInfo += "| :---------- | :------------- | :----------- |`n" + + foreach ($policy in $matchedPolicies) { + $grantControls = switch ($policy.grantControls) { + { $_.builtInControls -contains 'block' } { + 'Block Access' + } + { $_.builtInControls -contains 'mfa' } { + 'Require Multi-Factor Authentication' + } + { $null -ne $_.authenticationStrength } { + 'Require Authentication Strength' + } + } + + $targetUsers = if ($policy.conditions.users.includeUsers -contains 'All') { + 'All Users' + } else { + $policy.conditions.users.includeUsers -join ', ' + } + + $mdInfo += "| $($policy.displayName) | $grantControls | $targetUsers |`n" + } + } + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Block high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md new file mode 100644 index 000000000000..a010c4484edc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md @@ -0,0 +1,13 @@ +Attackers might gain access if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. Attackers might gain access by exploiting vulnerabilities of weaker MFA methods like SMS and phone calls through social engineering techniques. These techniques might include SIM swapping or phishing, to intercept authentication codes. + +Attackers might use these accounts as entry points into the tenant. By using intercepted user sessions, attackers can disguise their activities as legitimate user actions, evade detection, and continue their attack without raising suspicion. From there, they might attempt to manipulate MFA settings to establish persistence, plan, and execute further attacks based on the privileges of compromised accounts. + +**Remediation action** + +- [Deploy multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-getstarted?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy a Conditional Access policy to require phishing-resistant MFA for all users](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Review authentication methods activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?tabs=microsoft-entra-admin-center&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md new file mode 100644 index 000000000000..a010c4484edc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md @@ -0,0 +1,13 @@ +Attackers might gain access if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. Attackers might gain access by exploiting vulnerabilities of weaker MFA methods like SMS and phone calls through social engineering techniques. These techniques might include SIM swapping or phishing, to intercept authentication codes. + +Attackers might use these accounts as entry points into the tenant. By using intercepted user sessions, attackers can disguise their activities as legitimate user actions, evade detection, and continue their attack without raising suspicion. From there, they might attempt to manipulate MFA settings to establish persistence, plan, and execute further attacks based on the privileges of compromised accounts. + +**Remediation action** + +- [Deploy multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-getstarted?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy a Conditional Access policy to require phishing-resistant MFA for all users](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Review authentication methods activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?tabs=microsoft-entra-admin-center&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 new file mode 100644 index 000000000000..1b3783d09304 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 @@ -0,0 +1,95 @@ +function Invoke-CippTestZTNA21801 { + <# + .SYNOPSIS + Users have strong authentication methods configured + #> + param($Tenant) + + try { + $UserRegistrationDetails = New-CIPPDbRequest -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + if (-not $UserRegistrationDetails -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $PhishResistantMethods = @('passKeyDeviceBound', 'passKeyDeviceBoundAuthenticator', 'windowsHelloForBusiness') + + $results = $UserRegistrationDetails | Where-Object { + $userId = $_.id + $matchingUser = $Users | Where-Object { $_.id -eq $userId -and $_.accountEnabled } + $matchingUser + } | ForEach-Object { + $regDetail = $_ + $matchingUser = $Users | Where-Object { $_.id -eq $regDetail.id } + $hasPhishResistant = $false + + if ($regDetail.methodsRegistered) { + foreach ($method in $PhishResistantMethods) { + if ($regDetail.methodsRegistered -contains $method) { + $hasPhishResistant = $true + break + } + } + } + + [PSCustomObject]@{ + id = $regDetail.id + displayName = $regDetail.userDisplayName + phishResistantAuthMethod = $hasPhishResistant + lastSuccessfulSignInDateTime = $matchingUser.signInActivity.lastSuccessfulSignInDateTime + } + } + + $totalUserCount = $results.Length + $phishResistantUsers = $results | Where-Object { $_.phishResistantAuthMethod } + $phishableUsers = $results | Where-Object { !$_.phishResistantAuthMethod } + + $phishResistantUserCount = $phishResistantUsers.Length + + $passed = $totalUserCount -eq $phishResistantUserCount + + $testResultMarkdown = if ($passed) { + "Validated that all users have registered phishing resistant authentication methods.`n`n%TestResult%" + } else { + "Found users that have not yet registered phishing resistant authentication methods`n`n%TestResult%" + } + + $mdInfo = "## Users strong authentication methods`n`n" + + if ($passed) { + $mdInfo = "All users have registered phishing resistant authentication methods.`n`n" + } else { + $mdInfo = "Found users that have not registered phishing resistant authentication methods.`n`n" + } + + $mdInfo = $mdInfo + "| User | Last sign in | Phishing resistant method registered |`n" + $mdInfo = $mdInfo + "| :--- | :--- | :---: |`n" + + $userLinkFormat = 'https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/UserAuthMethods/userId/{0}/hidePreviewBanner~/true' + + $mdLines = @($phishableUsers | Sort-Object displayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + $lastSignInDate = if ($_.lastSuccessfulSignInDateTime) { (Get-Date $_.lastSuccessfulSignInDateTime -Format 'yyyy-MM-dd') } else { 'Never' } + "|[$($_.displayName)]($userLink)| $lastSignInDate | ❌ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $mdLines = @($phishResistantUsers | Sort-Object displayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + $lastSignInDate = if ($_.lastSuccessfulSignInDateTime) { (Get-Date $_.lastSuccessfulSignInDateTime -Format 'yyyy-MM-dd') } else { 'Never' } + "|[$($_.displayName)]($userLink)| $lastSignInDate | ✅ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md new file mode 100644 index 000000000000..61cf321650cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md @@ -0,0 +1,8 @@ +Without sign-in context, threat actors can exploit authentication fatigue by flooding users with push notifications, increasing the chance that a user accidentally approves a malicious request. When users get generic push notifications without the application name or geographic location, they don't have the information they need to make informed approval decisions. This lack of context makes users vulnerable to social engineering attacks, especially when threat actors time their requests during periods of legitimate user activity. This vulnerability is especially dangerous when threat actors gain initial access through credential harvesting or password spraying attacks and then try to establish persistence by approving multifactor authentication (MFA) requests from unexpected applications or locations. Without contextual information, users can't detect unusual sign-in attempts, allowing threat actors to maintain access and escalate privileges by moving laterally through systems after bypassing the initial authentication barrier. Without application and location context, security teams also lose valuable telemetry for detecting suspicious authentication patterns that can indicate ongoing compromise or reconnaissance activities. + +**Remediation action** +Give users the context they need to make informed approval decisions. Configure Microsoft Authenticator notifications by setting the Authentication methods policy to include the application name and geographic location. +- [Use additional context in Authenticator notifications - Authentication methods policy](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-mfa-additional-context?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 new file mode 100644 index 000000000000..24956ef8276c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestZTNA21802 { + <# + .SYNOPSIS + Microsoft Authenticator app shows sign-in context + #> + param($Tenant) + #tested + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $AuthenticatorConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if (-not $AuthenticatorConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Microsoft Authenticator configuration not found in authentication methods policy' -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $AppInfoEnabled = $AuthenticatorConfig.featureSettings.displayAppInformationRequiredState.state -eq 'enabled' + $LocationInfoEnabled = $AuthenticatorConfig.featureSettings.displayLocationInformationRequiredState.state -eq 'enabled' + + if ($AppInfoEnabled -and $LocationInfoEnabled) { + $Status = 'Passed' + $Result = 'Microsoft Authenticator shows application name and geographic location in push notifications' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator sign-in context incomplete - App info: $AppInfoEnabled, Location info: $LocationInfoEnabled" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md new file mode 100644 index 000000000000..6f99cf455fac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md @@ -0,0 +1,13 @@ +Legacy multifactor authentication (MFA) and self-service password reset (SSPR) policies in Microsoft Entra ID manage authentication methods separately, leading to fragmented configurations and suboptimal user experience. Moreover, managing these policies independently increases administrative overhead and the risk of misconfiguration. + +Migrating to the combined Authentication Methods policy consolidates the management of MFA, SSPR, and passwordless authentication methods into a single policy framework. This unification allows for more granular control, enabling administrators to target specific authentication methods to user groups and enforce consistent security measures across the organization. Additionally, the unified policy supports modern authentication methods, such as FIDO2 security keys and Windows Hello for Business, enhancing the organization's security posture. + +Microsoft announced the deprecation of legacy MFA and SSPR policies, with a retirement date set for September 30, 2025. Organizations are advised to complete the migration to the Authentication Methods policy before this date to avoid potential disruptions and to benefit from the enhanced security and management capabilities of the unified policy. + +**Remediation action** + +- [Enable combined security information registration](https://learn.microsoft.com/entra/identity/authentication/howto-registration-mfa-sspr-combined?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [How to migrate MFA and SSPR policy settings to the Authentication methods policy for Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/how-to-authentication-methods-manage?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 new file mode 100644 index 000000000000..38cfc0f542a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestZTNA21803 { + <# + .SYNOPSIS + Migrate from legacy MFA and SSPR policies + #> + param($Tenant) + #Tested + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $PolicyMigrationState = $AuthMethodsPolicy.policyMigrationState + + if ($PolicyMigrationState -eq 'migrationComplete') { + $Status = 'Passed' + $Result = 'Tenant has migrated from legacy MFA and SSPR policies to authentication methods policy' + } elseif ($PolicyMigrationState -eq 'migrationInProgress') { + $Status = 'Investigate' + $Result = 'Tenant migration from legacy MFA and SSPR policies is in progress' + } else { + $Status = 'Failed' + $Result = "Tenant has not migrated from legacy MFA and SSPR policies (state: $PolicyMigrationState)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md new file mode 100644 index 000000000000..c4a3d5bd3265 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md @@ -0,0 +1,12 @@ +When weak authentication methods like SMS and voice calls remain enabled in Microsoft Entra ID, threat actors can exploit these vulnerabilities through multiple attack vectors. Initially, attackers often conduct reconnaissance to identify organizations using these weaker authentication methods through social engineering or technical scanning. Then they can execute initial access through credential stuffing attacks, password spraying, or phishing campaigns targeting user credentials. + +Once basic credentials are compromised, threat actors use these weaknesses in SMS and voice-based authentication. SMS messages can be intercepted through SIM swapping attacks, SS7 network vulnerabilities, or malware on mobile devices, while voice calls are susceptible to voice phishing (vishing) and call forwarding manipulation. With these weak second factors bypassed, attackers achieve persistence by registering their own authentication methods. Compromised accounts can be used to target higher-privileged users through internal phishing or social engineering, allowing attackers to escalate privileges within the organization. Finally, threat actors achieve their objectives through data exfiltration, lateral movement to critical systems, or deployment of other malicious tools, all while maintaining stealth by using legitimate authentication pathways that appear normal in security logs. + +**Remediation action** + +- [Deploy authentication method registration campaigns to encourage stronger methods](https://learn.microsoft.com/graph/api/authenticationmethodspolicy-update?view=graph-rest-beta&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable phone-based methods in legacy MFA settings](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-mfa-mfasettings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy Conditional Access policies using authentication strength](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-strength-how-it-works?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 new file mode 100644 index 000000000000..9882b9e0713c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA21804 { + <# + .SYNOPSIS + SMS and Voice Call authentication methods are disabled + #> + param($Tenant) + #Tested + try { + $authMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $authMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'SMS and Voice Call authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $matchedMethods = $authMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Sms' -or $_.id -eq 'Voice' } + + $testResultMarkdown = '' + + if ($matchedMethods.state -contains 'enabled') { + $passed = 'Failed' + $testResultMarkdown = 'Found weak authentication methods that are still enabled.' + } else { + $passed = 'Passed' + $testResultMarkdown = 'SMS and voice calls authentication methods are disabled in the tenant.' + } + + $reportTitle = 'Weak authentication methods' + + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Method ID | Is method weak? | State |`n" + $mdInfo += "| :-------- | :-------------- | :---- |`n" + + foreach ($method in $matchedMethods) { + $mdInfo += "| $($method.id) | Yes | $($method.state) |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Weak authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SMS and Voice Call authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md new file mode 100644 index 000000000000..f0b3ce89d4e6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md @@ -0,0 +1,10 @@ +Without Conditional Access policies protecting security information registration, threat actors can exploit unprotected registration flows to compromise authentication methods. When users register multifactor authentication and self-service password reset methods without proper controls, threat actors can intercept these registration sessions through adversary-in-the-middle attacks or exploit unmanaged devices accessing registration from untrusted locations. Once threat actors gain access to an unprotected registration flow, they can register their own authentication methods, effectively hijacking the target's authentication profile. The threat actors can bypass security controls and potentially escalate privileges throughout the environment because they can maintain persistent access by controlling the MFA methods. The compromised authentication methods then become the foundation for lateral movement as threat actors can authenticate as the legitimate user across multiple services and applications. + +**Remediation action** + +- [Deploy a Conditional Access policy for security info registration](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-all-users-security-info-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure known network locations](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Enable combined security info registration](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-registration-mfa-sspr-combined?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 new file mode 100644 index 000000000000..6a7864fb17c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA21806 { + <# + .SYNOPSIS + Secure the MFA registration (My Security Info) page + #> + param($Tenant) + #tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $matchedPolicies = $allCAPolicies | Where-Object { + ($_.conditions.applications.includeUserActions -contains 'urn:user:registersecurityinfo') -and + ($_.conditions.users.includeUsers -contains 'All') -and + $_.state -eq 'enabled' + } + + $testResultMarkdown = '' + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'Security information registration is protected by Conditional Access policies.' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Security information registration is not protected by Conditional Access policies.' + } + + $reportTitle = 'Conditional Access Policies targeting security information registration' + $tableRows = '' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | User Actions Targeted | Grant Controls Applied |`n" + $mdInfo += "| :---------- | :-------------------- | :--------------------- |`n" + + foreach ($policy in $matchedPolicies) { + $mdInfo += "| $($policy.displayName) | $($policy.conditions.applications.includeUserActions) | $($policy.grantControls.builtInControls -join ', ') |`n" + } + } else { + $mdInfo = 'No Conditional Access policies targeting security information registration.' + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md new file mode 100644 index 000000000000..f20e5690891a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md @@ -0,0 +1,12 @@ +If nonprivileged users can create applications and service principals, these accounts might be misconfigured or be granted more permissions than necessary, creating new vectors for attackers to gain initial access. Attackers can exploit these accounts to establish valid credentials in the environment and bypass some security controls. + +If these nonprivileged accounts are mistakenly granted elevated application owner permissions, attackers can use them to move from a lower level of access to a more privileged level of access. Attackers who compromise nonprivileged accounts might add their own credentials or change the permissions associated with the applications created by the nonprivileged users to ensure they can continue to access the environment undetected. + +Attackers can use service principals to blend in with legitimate system processes and activities. Because service principals often perform automated tasks, malicious activities carried out under these accounts might not be flagged as suspicious. + +**Remediation action** + +- [Block nonprivileged users from creating apps](https://learn.microsoft.com/entra/identity/role-based-access-control/delegate-app-roles?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 new file mode 100644 index 000000000000..2e5f195f5c94 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21807 { + <# + .SYNOPSIS + Creating new applications and service principals is restricted to privileged users + #> + param($Tenant) + #Tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $CanCreateApps = $AuthPolicy.defaultUserRolePermissions.allowedToCreateApps + + if ($CanCreateApps -eq $false) { + $Status = 'Passed' + $Result = 'Tenant is configured to prevent users from registering applications' + } else { + $Status = 'Failed' + $Result = 'Tenant allows all non-privileged users to register applications' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md new file mode 100644 index 000000000000..de6e6b429a7d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md @@ -0,0 +1,8 @@ +Device code flow is a cross-device authentication flow designed for input-constrained devices. It can be exploited in phishing attacks, where an attacker initiates the flow and tricks a user into completing it on their device, thereby sending the user's tokens to the attacker. Given the security risks and the infrequent legitimate use of device code flow, you should enable a Conditional Access policy to block this flow by default. + +**Remediation action** + +- [Deploy a Conditional Access policy to block device code flow](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-authentication-flows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#device-code-flow-policies). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 new file mode 100644 index 000000000000..289ae9e1f36d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA21808 { + <# + .SYNOPSIS + Restrict device code flow + #> + param($Tenant) + #Tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $Enabled = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + $DeviceCodePolicies = $Enabled | Where-Object { + if ($_.conditions.authenticationFlows.transferMethods) { + $Methods = $_.conditions.authenticationFlows.transferMethods -split ',' + $Methods -contains 'deviceCodeFlow' + } else { + $false + } + } + + $BlockPolicies = $DeviceCodePolicies | Where-Object { $_.grantControls.builtInControls -contains 'block' } + + if ($BlockPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "Device code flow is properly restricted with $($BlockPolicies.Count) blocking policy/policies" + } elseif ($DeviceCodePolicies.Count -eq 0) { + $Status = 'Failed' + $Result = 'No Conditional Access policies found targeting device code flow' + #Add table with existing policies? + } else { + $Status = 'Failed' + $Result = 'Device code flow policies exist but none are configured to block' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md new file mode 100644 index 000000000000..3689a7af5877 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md @@ -0,0 +1,11 @@ +Enabling the Admin consent workflow in a Microsoft Entra tenant is a vital security measure that mitigates risks associated with unauthorized application access and privilege escalation. This check is important because it ensures that any application requesting elevated permission undergoes a review process by designated administrators before consent is granted. The admin consent workflow in Microsoft Entra ID notifies reviewers who evaluate and approve or deny consent requests based on the application's legitimacy and necessity. If this check doesn't pass, meaning the workflow is disabled, any application can request and potentially receive elevated permissions without administrative review. This poses a substantial security risk, as malicious actors could exploit this lack of oversight to gain unauthorized access to sensitive data, perform privilege escalation, or execute other malicious activities. + +**Remediation action** + +For admin consent requests, set the **Users can request admin consent to apps they are unable to consent to** setting to **Yes**. Specify other settings, such as who can review requests. + +- [Enable the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-admin-consent-workflow) +- Or use the [Update adminConsentRequestPolicy](https://learn.microsoft.com/graph/api/adminconsentrequestpolicy-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) API to set the `isEnabled` property to true and other settings + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 new file mode 100644 index 000000000000..f3422476b53c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 @@ -0,0 +1,30 @@ +function Invoke-CippTestZTNA21809 { + <# + .SYNOPSIS + Admin consent workflow is enabled + #> + param($Tenant) + #Tested + try { + $result = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $result) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $passed = if ($result.isEnabled) { 'Passed' } else { 'Failed' } + + if ($result.isEnabled) { + $testResultMarkdown = 'Admin consent workflow is enabled.' + } else { + $testResultMarkdown = "Admin consent workflow is disabled.`n`nThe adminConsentRequestPolicy.isEnabled property is set to false." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md new file mode 100644 index 000000000000..2ac799e81e92 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md @@ -0,0 +1,8 @@ +Letting group owners consent to applications in Microsoft Entra ID creates a lateral escalation path that lets threat actors persist and steal data without admin credentials. If an attacker compromises a group owner account, they can register or use a malicious application and consent to high-privilege Graph API permissions scoped to the group. Attackers can potentially read all Teams messages, access SharePoint files, or manage group membership. This consent action creates a long-lived application identity with delegated or application permissions. The attacker maintains persistence with OAuth tokens, steals sensitive data from team channels and files, and impersonates users through messaging or email permissions. Without centralized enforcement of app consent policies, security teams lose visibility, and malicious applications spread under the radar, enabling multi-stage attacks across collaboration platforms. + +**Remediation action** +Configure preapproval of Resource-Specific Consent (RSC) permissions. +- [Preapproval of RSC permissions](https://learn.microsoft.com/microsoftteams/platform/graph-api/rsc/preapproval-instruction-docs?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 new file mode 100644 index 000000000000..3f7d1d03f123 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 @@ -0,0 +1,39 @@ +function Invoke-CippTestZTNA21810 { + <# + .SYNOPSIS + Resource-specific consent is restricted + #> + param($Tenant) + #Tested + try { + $authPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $authPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $teamPermission = 'managepermissiongrantsforownedresource.microsoft-dynamically-managed-permissions-for-team' + $hasTeamPermission = $authPolicy.permissionGrantPolicyIdsAssignedToDefaultUserRole -contains $teamPermission + + if (-not $hasTeamPermission) { + $state = 'DisabledForAllApps' + } else { + $state = 'EnabledForAllApps' + } + + if ($state -eq 'DisabledForAllApps') { + $passed = 'Passed' + $testResultMarkdown = "Resource-Specific Consent is restricted.`n`nThe current state is $state." + } else { + $passed = 'Failed' + $testResultMarkdown = "Resource-Specific Consent is not restricted.`n`nThe current state is $state." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md new file mode 100644 index 000000000000..fc521a90eb64 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md @@ -0,0 +1,17 @@ +When password expiration policies remain enabled, threat actors can exploit the predictable password rotation patterns that users typically follow when forced to change passwords regularly. Users frequently create weaker passwords by making minimal modifications to existing ones, such as incrementing numbers or adding sequential characters. Threat actors can easily anticipate and exploit these types of changes through credential stuffing attacks or targeted password spraying campaigns. These predictable patterns enable threat actors to establish persistence through: + +- Compromised credentials +- Escalated privileges by targeting administrative accounts with weak rotated passwords +- Maintaining long-term access by predicting future password variations + +Research shows that users create weaker, more predictable passwords when they are forced to expire. These predictable passwords are easier for experienced attackers to crack, as they often make simple modifications to existing passwords rather than creating entirely new, strong passwords. Additionally, when users are required to frequently change passwords, they might resort to insecure practices such as writing down passwords or storing them in easily accessible locations, creating more attack vectors for threat actors to exploit during physical reconnaissance or social engineering campaigns. + +**Remediation action** + +- [Set the password expiration policy for your organization](https://learn.microsoft.com/microsoft-365/admin/manage/set-password-expiration-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + - Sign in to the [Microsoft 365 admin center](https://admin.microsoft.com/). Go to **Settings** > **Org Settings** >** Security & Privacy** > **Password expiration policy**. Ensure the **Set passwords to never expire** setting is checked. +- [Disable password expiration using Microsoft Graph](https://learn.microsoft.com/graph/api/domain-update?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- [Set individual user passwords to never expire using Microsoft Graph PowerShell](https://learn.microsoft.com/microsoft-365/admin/add-users/set-password-to-never-expire?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - `Update-MgUser -UserId -PasswordPolicies DisablePasswordExpiration` +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 new file mode 100644 index 000000000000..6315dc929433 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 @@ -0,0 +1,81 @@ +function Invoke-CippTestZTNA21811 { + <# + .SYNOPSIS + Password expiration is disabled + #> + param($Tenant) + #Tested + try { + $domains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Domains' + + if (-not $domains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + return + } + + $misconfiguredDomains = $domains | Where-Object { $_.passwordValidityPeriodInDays -ne 2147483647 } + + $users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $misconfiguredUsers = @() + if ($users) { + $misconfiguredUsers = foreach ($user in $users) { + $userDomain = $user.userPrincipalName.Split('@')[-1] + $domainPolicy = $misconfiguredDomains | Where-Object { $_.id -eq $userDomain } + if (($user.passwordPolicies -notlike '*DisablePasswordExpiration*') -and ($domainPolicy)) { + [PSCustomObject]@{ + id = $user.id + displayName = $user.displayName + userPrincipalName = $user.userPrincipalName + passwordPolicies = $user.passwordPolicies + DomainPasswordValidity = $domainPolicy.passwordValidityPeriodInDays + } + } + } + } + + if ($misconfiguredDomains -or $misconfiguredUsers) { + $passed = 'Failed' + $testResultMarkdown = 'Found domains or users with password expiration still enabled.' + } else { + $passed = 'Passed' + $testResultMarkdown = 'Password expiration is properly disabled across all domains and users.' + } + + if ($misconfiguredDomains) { + $reportTitle1 = 'Domains with password expiration enabled' + $mdInfo1 = "`n## $reportTitle1`n`n" + $mdInfo1 += "| Domain Name | Password Validity Interval |`n" + $mdInfo1 += "| :---------- | :------------------------- |`n" + + foreach ($domain in $misconfiguredDomains) { + $mdInfo1 += "| $($domain.id) | $($domain.passwordValidityPeriodInDays) |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo1 + } + + if ($misconfiguredUsers) { + $reportTitle2 = 'Users with password expiration enabled' + $mdInfo2 = "`n## $reportTitle2`n`n" + $mdInfo2 += "| Display Name | User Principal Name | User Password Expiration setting | Domain Password Expiration setting |`n" + $mdInfo2 += "| :----------- | :------------------ | :------------------------------- | :--------------------------------- |`n" + + foreach ($misconfiguredUser in $misconfiguredUsers) { + $displayName = $misconfiguredUser.displayName + $userPrincipalName = $misconfiguredUser.userPrincipalName + $userPasswordExpiration = $misconfiguredUser.passwordPolicies + $domainPasswordExpiration = $misconfiguredUser.DomainPasswordValidity + $mdInfo2 += "| $displayName | $userPrincipalName | $userPasswordExpiration | $domainPasswordExpiration |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo2 + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md new file mode 100644 index 000000000000..53d298d4756b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md @@ -0,0 +1,7 @@ +An excessive number of Global Administrator accounts creates an expanded attack surface that threat actors can exploit through various initial access vectors. Each extra privileged account represents a potential entry point for threat actors. An excess of Global Administrator accounts undermines the principle of least privilege. Microsoft recommends that organizations have no more than eight Global Administrators. + +**Remediation action** + +- [Follow best practices for Microsoft Entra roles](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 new file mode 100644 index 000000000000..5bd0291730a5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestZTNA21812 { + <# + .SYNOPSIS + Maximum number of Global Administrators doesn't exceed five users + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21812' + + try { + $AllGlobalAdmins = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId '62e90394-69f5-4237-9190-012177145e10' + + $GlobalAdmins = @($AllGlobalAdmins | Where-Object { $_.'@odata.type' -in @('#microsoft.graph.user', '#microsoft.graph.servicePrincipal') }) + + $Passed = $GlobalAdmins.Count -le 5 + + if ($Passed) { + $ResultMarkdown = "Maximum number of Global Administrators doesn't exceed five users/service principals.`n`n" + } else { + $ResultMarkdown = "Maximum number of Global Administrators exceeds five users/service principals.`n`n" + } + + if ($GlobalAdmins.Count -gt 0) { + $ResultMarkdown += "## Global Administrators`n`n" + $ResultMarkdown += "### Total number of Global Administrators: $($GlobalAdmins.Count)`n`n" + $ResultMarkdown += "| Display Name | Object Type | User Principal Name |`n" + $ResultMarkdown += "| :----------- | :---------- | :------------------ |`n" + + foreach ($GlobalAdmin in $GlobalAdmins) { + $DisplayName = $GlobalAdmin.displayName + $ObjectType = switch ($GlobalAdmin.'@odata.type') { + '#microsoft.graph.user' { 'User' } + '#microsoft.graph.servicePrincipal' { 'Service Principal' } + default { 'Unknown' } + } + $UserPrincipalName = if ($GlobalAdmin.userPrincipalName) { $GlobalAdmin.userPrincipalName } else { 'N/A' } + + $PortalLink = switch ($ObjectType) { + 'User' { "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($GlobalAdmin.id)" } + 'Service Principal' { "https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/~/Overview/appId/$($GlobalAdmin.id)" } + default { 'https://entra.microsoft.com' } + } + + $ResultMarkdown += "| [$DisplayName]($PortalLink) | $ObjectType | $UserPrincipalName |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name "Maximum number of Global Administrators doesn't exceed five users" -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name "Maximum number of Global Administrators doesn't exceed five users" -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md new file mode 100644 index 000000000000..4071a19bede4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md @@ -0,0 +1,8 @@ +When organizations maintain a disproportionately high ratio of Global Administrators relative to their total privileged user population, they expose themselves to significant security risks that threat actors might exploit through various attack vectors. Excessive Global Administrator assignments create multiple high-value targets for threat actors who might leverage initial access through credential compromise, phishing attacks, or insider threats to gain unrestricted access to the entire Microsoft Entra ID tenant and connected Microsoft 365 services. + +**Remediation action** + +- [Minimize the number of Global Administrator role assignments](https://learn.microsoft.com/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#5-limit-the-number-of-global-administrators-to-less-than-5) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 new file mode 100644 index 000000000000..84552c025074 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 @@ -0,0 +1,145 @@ +function Invoke-CippTestZTNA21813 { + <# + .SYNOPSIS + High Global Administrator to privileged user ratio + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21813' + + try { + $GlobalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $RoleEligibilitySchedules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleEligibilitySchedules' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $AllGAUsers = @{} + $AllPrivilegedUsers = @{} + $UserRoleMap = @{} + + foreach ($Role in $PrivilegedRoles) { + $ActiveAssignments = $RoleAssignmentScheduleInstances | Where-Object { + $_.roleDefinitionId -eq $Role.templateId -and $_.assignmentType -eq 'Assigned' + } + $EligibleAssignments = $RoleEligibilitySchedules | Where-Object { + $_.roleDefinitionId -eq $Role.templateId + } + + $AllAssignments = @($ActiveAssignments) + @($EligibleAssignments) + + foreach ($Assignment in $AllAssignments) { + $User = $Users | Where-Object { $_.id -eq $Assignment.principalId } | Select-Object -First 1 + if (-not $User) { continue } + + $UserId = $User.id + $IsGARole = $Role.templateId -eq $GlobalAdminRoleId + + if ($IsGARole) { + $AllGAUsers[$UserId] = $User + } + + if (-not $IsGARole) { + $AllPrivilegedUsers[$UserId] = $User + } + + if (-not $UserRoleMap.ContainsKey($UserId)) { + $UserRoleMap[$UserId] = @{ + User = $User + Roles = [System.Collections.ArrayList]@() + IsGA = $false + } + } + + if ($Role.displayName -notin $UserRoleMap[$UserId].Roles) { + [void]$UserRoleMap[$UserId].Roles.Add($Role.displayName) + } + + if ($IsGARole) { + $UserRoleMap[$UserId].IsGA = $true + } + } + } + + $GARoleAssignmentCount = $AllGAUsers.Count + $PrivilegedRoleAssignmentCount = $AllPrivilegedUsers.Count + $TotalPrivilegedRoleAssignmentCount = $GARoleAssignmentCount + $PrivilegedRoleAssignmentCount + + if ($TotalPrivilegedRoleAssignmentCount -gt 0) { + $GAPercentage = [math]::Round(($GARoleAssignmentCount / $TotalPrivilegedRoleAssignmentCount) * 100, 2) + $OtherPercentage = [math]::Round(($PrivilegedRoleAssignmentCount / $TotalPrivilegedRoleAssignmentCount) * 100, 2) + } else { + $GAPercentage = 0 + $OtherPercentage = 0 + } + + $HasHealthyRatio = $false + $HasModerateRatio = $false + $HasHighRatio = $false + $CustomStatus = $null + + if ($GAPercentage -lt 30) { + $StatusIndicator = '✅ Passed' + $HasHealthyRatio = $true + } elseif ($GAPercentage -ge 30 -and $GAPercentage -lt 50) { + $StatusIndicator = '⚠️ Investigate' + $HasModerateRatio = $true + } else { + $StatusIndicator = '❌ Failed' + $HasHighRatio = $true + } + + $MdInfo = "`n## Privileged role assignment summary`n`n" + $MdInfo += "**Global administrator role count:** $GARoleAssignmentCount ($GAPercentage%) - $StatusIndicator`n`n" + $MdInfo += "**Other privileged role count:** $PrivilegedRoleAssignmentCount ($OtherPercentage%)`n`n" + + $MdInfo += "## User privileged role assignments`n`n" + $MdInfo += "| User | Global administrator | Other Privileged Role(s) |`n" + $MdInfo += "| :--- | :------------------- | :------ |`n" + + $SortedUsers = $UserRoleMap.Values | Sort-Object @{Expression = { -not $_.IsGA } }, @{Expression = { $_.User.displayName } } + + foreach ($UserEntry in $SortedUsers) { + $User = $UserEntry.User + $IsGA = if ($UserEntry.IsGA) { 'Yes' } else { 'No' } + + $OtherRoles = $UserEntry.Roles | Where-Object { $_ -ne 'Global Administrator' } | Sort-Object + $RolesList = if ($OtherRoles.Count -gt 0) { ($OtherRoles -join ', ') } else { '-' } + + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $MdInfo += "| [$($User.displayName)]($UserLink) | $IsGA | $RolesList |`n" + } + + if ($UserRoleMap.Count -eq 0) { + $MdInfo += "| No privileged users found | - | - |`n" + } + + if ($TotalPrivilegedRoleAssignmentCount -eq 0) { + $Passed = $true + $ResultMarkdown = "No privileged role assignments found in the tenant.$MdInfo" + } elseif ($HasHealthyRatio) { + $Passed = $true + $ResultMarkdown = "Less than 30% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } elseif ($HasModerateRatio) { + $Passed = $false + $CustomStatus = 'Investigate' + $ResultMarkdown = "Between 30-50% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } else { + $Passed = $false + $ResultMarkdown = "More than 50% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'High Global Administrator to privileged user ratio' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High Global Administrator to privileged user ratio' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md new file mode 100644 index 000000000000..9892d3765a35 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md @@ -0,0 +1,15 @@ +If an on-premises account is compromised and is synchronized to Microsoft Entra, the attacker might gain access to the tenant as well. This risk increases because on-premises environments typically have more attack surfaces due to older infrastructure and limited security controls. Attackers might also target the infrastructure and tools used to enable connectivity between on-premises environments and Microsoft Entra. These targets might include tools like Microsoft Entra Connect or Active Directory Federation Services, where they could impersonate or otherwise manipulate other on-premises user accounts. + +If privileged cloud accounts are synchronized with on-premises accounts, an attacker who acquires credentials for on-premises can use those same credentials to access cloud resources and move laterally to the cloud environment. + +**Remediation action** + +- [Protecting Microsoft 365 from on-premises attacks](https://learn.microsoft.com/entra/architecture/protect-m365-from-on-premises-attacks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#specific-security-recommendations) + +For each role with high privileges (assigned permanently or eligible through Microsoft Entra Privileged Identity Management), you should do the following actions: + +- Review the users that have onPremisesImmutableId and onPremisesSyncEnabled set. See [Microsoft Graph API user resource type](https://learn.microsoft.com/graph/api/resources/user?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Create cloud-only user accounts for those individuals and remove their hybrid identity from privileged roles. + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 new file mode 100644 index 000000000000..6a4324dc6302 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 @@ -0,0 +1,75 @@ +function Invoke-CippTestZTNA21814 { + <# + .SYNOPSIS + Privileged accounts are cloud native identities + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + $TestId = 'ZTNA21814' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $RoleData = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.RoletemplateId + $RoleUsers = $RoleMembers | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.user' } + + foreach ($RoleMember in $RoleUsers) { + $UserDetail = $Users | Where-Object { $_.id -eq $RoleMember.id } | Select-Object -First 1 + + if ($UserDetail) { + $RoleData.Add([PSCustomObject]@{ + RoleName = $Role.displayName + UserId = $UserDetail.id + UserDisplayName = $UserDetail.displayName + UserPrincipalName = $UserDetail.userPrincipalName + OnPremisesSyncEnabled = $UserDetail.onPremisesSyncEnabled + }) + } + } + } + + $SyncedUsers = $RoleData | Where-Object { $_.OnPremisesSyncEnabled -eq $true } + $Passed = $SyncedUsers.Count -eq 0 + + if ($Passed) { + $ResultMarkdown = "Validated that standing or eligible privileged accounts are cloud only accounts.`n`n" + } else { + $ResultMarkdown = "This tenant has $($SyncedUsers.Count) privileged users that are synced from on-premise.`n`n" + } + + if ($RoleData.Count -gt 0) { + $ResultMarkdown += "## Privileged Roles`n`n" + $ResultMarkdown += "| Role Name | User | Source | Status |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :---: |`n" + + foreach ($RoleUser in ($RoleData | Sort-Object RoleName, UserDisplayName)) { + if ($RoleUser.OnPremisesSyncEnabled) { + $Type = 'Synced from on-premise' + $Status = '❌' + } else { + $Type = 'Cloud native identity' + $Status = '✅' + } + + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($RoleUser.UserId)" + $ResultMarkdown += "| $($RoleUser.RoleName) | [$($RoleUser.UserDisplayName)]($UserLink) | $Type | $Status |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Privileged accounts are cloud native identities' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged accounts are cloud native identities' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md new file mode 100644 index 000000000000..a2b1ef6e0a15 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md @@ -0,0 +1,10 @@ +Threat actors target privileged accounts because they have access to the data and resources they want. This might include more access to your Microsoft Entra tenant, data in Microsoft SharePoint, or the ability to establish long-term persistence. Without a just-in-time (JIT) activation model, administrative privileges remain continuously exposed, providing attackers with an extended window to operate undetected. Just-in-time access mitigates risk by enforcing time-limited privilege activation with extra controls such as approvals, justification, and Conditional Access policy, ensuring that high-risk permissions are granted only when needed and for a limited duration. This restriction minimizes the attack surface, disrupts lateral movement, and forces adversaries to trigger actions that can be specially monitored and denied when not expected. Without just-in-time access, compromised admin accounts grant indefinite control, letting attackers disable security controls, erase logs, and maintain stealth, amplifying the impact of a compromise. + +Use Microsoft Entra Privileged Identity Management (PIM) to provide time-bound just-in-time access to privileged role assignments. Use access reviews in Microsoft Entra ID Governance to regularly review privileged access to ensure continued need. + +**Remediation action** + +- [Start using Privileged Identity Management](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-getting-started?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create an access review of Azure resource and Microsoft Entra roles in PIM](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-create-roles-and-resource-roles-review?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 new file mode 100644 index 000000000000..cb7eeca9b2f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 @@ -0,0 +1,66 @@ +function Invoke-CippTestZTNA21815 { + <# + .SYNOPSIS + All privileged role assignments are activated just in time and not permanently active + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + $TestId = 'ZTNA21815' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $PermanentAssignments = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $ActiveAssignments = $RoleAssignmentScheduleInstances | Where-Object { + $_.roleDefinitionId -eq $Role.RoletemplateId -and + $_.assignmentType -eq 'Assigned' -and + $null -eq $_.endDateTime + } + + foreach ($Assignment in $ActiveAssignments) { + $User = $Users | Where-Object { $_.id -eq $Assignment.principalId } | Select-Object -First 1 + if (-not $User) { continue } + + $PermanentAssignments.Add([PSCustomObject]@{ + PrincipalDisplayName = $User.displayName + UserPrincipalName = $User.userPrincipalName + PrincipalId = $User.id + RoleDisplayName = $Role.displayName + PrivilegeType = 'Permanent' + }) + } + } + + if ($PermanentAssignments.Count -eq 0) { + $Passed = $true + $ResultMarkdown = 'No privileged users have permanent role assignments.' + } else { + $Passed = $false + $ResultMarkdown = "Privileged users with permanent role assignments were found.`n`n" + $ResultMarkdown += "## Privileged users with permanent role assignments`n`n" + $ResultMarkdown += "| User | UPN | Role Name | Assignment Type |`n" + $ResultMarkdown += "| :--- | :-- | :-------- | :-------------- |`n" + + foreach ($Result in $PermanentAssignments) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($Result.PrincipalId)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($Result.PrincipalDisplayName)]($PortalLink) | $($Result.UserPrincipalName) | $($Result.RoleDisplayName) | $($Result.PrivilegeType) |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All privileged role assignments are activated just in time and not permanently active' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All privileged role assignments are activated just in time and not permanently active' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md new file mode 100644 index 000000000000..0a29cd021f6a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md @@ -0,0 +1,8 @@ +Threat actors who compromise a permanently assigned privileged account (e.g., Global Administrator or Privileged Role Administrator) gain continuous, uninterrupted access to high-impact directory operations. This extended dwell time enables attackers to more easily establish persistent backdoors, delete critical data and security configurations, disable monitoring systems, and register malicious applications for data exfiltration and lateral movement. These actions can result in full organizational disruption, widespread data compromise, and total loss of operational control over the tenant. Microsoft Entra PIM’s eligible role assignment model narrows escalation pathways, constrains attacker dwell time and provides the option of role elevation approval workflows. + +**Remediation action** +- [Use Privileged Identity Management to manage privileged Microsoft Entra roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-getting-started) +- [Manage emergency access admin accounts](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/security-emergency-access) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 new file mode 100644 index 000000000000..659a9e6d239d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 @@ -0,0 +1,184 @@ +function Invoke-CippTestZTNA21816 { + <# + .SYNOPSIS + All Microsoft Entra privileged role assignments are managed with PIM + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21816' + + try { + $GlobalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + $PermanentGAUserList = [System.Collections.Generic.List[object]]::new() + $PermanentGAGroupList = [System.Collections.Generic.List[object]]::new() + $NonPIMPrivilegedUsers = [System.Collections.Generic.List[object]]::new() + $NonPIMPrivilegedGroups = [System.Collections.Generic.List[object]]::new() + + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleEligibilitySchedules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleEligibilitySchedules' + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $Groups = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Groups' + + $EligibleGAs = $RoleEligibilitySchedules | Where-Object { $_.roleDefinitionId -eq $GlobalAdminRoleId } + $EligibleGAUsers = 0 + + foreach ($EligibleGA in $EligibleGAs) { + $Principal = $Users | Where-Object { $_.id -eq $EligibleGA.principalId } | Select-Object -First 1 + if ($Principal) { + $EligibleGAUsers++ + } else { + $GroupPrincipal = $Groups | Where-Object { $_.id -eq $EligibleGA.principalId } | Select-Object -First 1 + if ($GroupPrincipal) { + $GroupMembers = $Users | Where-Object { $_.id -in $GroupPrincipal.members } + $EligibleGAUsers = $EligibleGAUsers + $GroupMembers.Count + } + } + } + + foreach ($Role in $PrivilegedRoles) { + if ($Role.templateId -eq $GlobalAdminRoleId) { continue } + + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.RoletemplateId + + foreach ($Member in $RoleMembers) { + $Assignment = $RoleAssignmentScheduleInstances | Where-Object { + $_.principalId -eq $Member.id -and $_.roleDefinitionId -eq $Role.RoletemplateId + } | Select-Object -First 1 + + if (-not $Assignment -or ($Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime)) { + $MemberInfo = [PSCustomObject]@{ + displayName = $Member.displayName + userPrincipalName = $Member.userPrincipalName + id = $Member.id + roleTemplateId = $Role.RoletemplateId + roleName = $Role.displayName + assignmentType = if ($Assignment) { $Assignment.assignmentType } else { 'Not in PIM' } + } + + if ($Member.'@odata.type' -eq '#microsoft.graph.user') { + $NonPIMPrivilegedUsers.Add($MemberInfo) + } else { + $NonPIMPrivilegedGroups.Add($MemberInfo) + } + } + } + } + + $GAMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $GlobalAdminRoleId + + foreach ($Member in $GAMembers) { + $Assignment = $RoleAssignmentScheduleInstances | Where-Object { + $_.principalId -eq $Member.id -and $_.roleDefinitionId -eq $GlobalAdminRoleId + } | Select-Object -First 1 + + if (-not $Assignment -or ($Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime)) { + $MemberInfo = [PSCustomObject]@{ + displayName = $Member.displayName + userPrincipalName = $Member.userPrincipalName + id = $Member.id + roleTemplateId = $GlobalAdminRoleId + roleName = 'Global Administrator' + assignmentType = if ($Assignment) { $Assignment.assignmentType } else { 'Not in PIM' } + onPremisesSyncEnabled = $null + } + + if ($Member.'@odata.type' -eq '#microsoft.graph.user') { + $UserDetail = $Users | Where-Object { $_.id -eq $Member.id } | Select-Object -First 1 + if ($UserDetail) { + $MemberInfo.onPremisesSyncEnabled = $UserDetail.onPremisesSyncEnabled + } + $PermanentGAUserList.Add($MemberInfo) + } elseif ($Member.'@odata.type' -eq '#microsoft.graph.group') { + $PermanentGAGroupList.Add($MemberInfo) + + $Group = $Groups | Where-Object { $_.id -eq $Member.id } | Select-Object -First 1 + if ($Group) { + $GroupMembers = $Users | Where-Object { $_.id -in $Group.members } + foreach ($GroupMember in $GroupMembers) { + $GroupMemberInfo = [PSCustomObject]@{ + displayName = $GroupMember.displayName + userPrincipalName = $GroupMember.userPrincipalName + id = $GroupMember.id + roleTemplateId = $GlobalAdminRoleId + roleName = 'Global Administrator (via group)' + assignmentType = 'Via Group' + onPremisesSyncEnabled = $GroupMember.onPremisesSyncEnabled + } + $PermanentGAUserList.Add($GroupMemberInfo) + } + } + } + } + } + + $HasPIMUsage = $EligibleGAUsers -gt 0 + $HasNonPIMPrivileged = ($NonPIMPrivilegedUsers.Count + $NonPIMPrivilegedGroups.Count) -gt 0 + $PermanentGACount = $PermanentGAUserList.Count + $CustomStatus = $null + + if (-not $HasPIMUsage) { + $Passed = $false + $ResultMarkdown = 'No eligible Global Administrator assignments found. PIM usage cannot be confirmed.' + } elseif ($HasNonPIMPrivileged) { + $Passed = $false + $ResultMarkdown = 'Found Microsoft Entra privileged role assignments that are not managed with PIM.' + } elseif ($PermanentGACount -gt 2) { + $Passed = $false + $CustomStatus = 'Investigate' + $ResultMarkdown = 'Three or more accounts are permanently assigned the Global Administrator role. Review to determine whether these are emergency access accounts.' + } else { + $Passed = $true + $ResultMarkdown = 'All Microsoft Entra privileged role assignments are managed with PIM with the exception of up to two standing Global Administrator accounts.' + } + + $ResultMarkdown += "`n`n## Assessment summary`n`n" + $ResultMarkdown += "| Metric | Count |`n" + $ResultMarkdown += "| :----- | :---- |`n" + $ResultMarkdown += "| Privileged roles found | $($PrivilegedRoles.Count) |`n" + $ResultMarkdown += "| Eligible Global Administrators | $EligibleGAUsers |`n" + $ResultMarkdown += "| Non-PIM privileged users | $($NonPIMPrivilegedUsers.Count) |`n" + $ResultMarkdown += "| Non-PIM privileged groups | $($NonPIMPrivilegedGroups.Count) |`n" + $ResultMarkdown += "| Permanent Global Administrator users | $($PermanentGAUserList.Count) |`n" + + if ($NonPIMPrivilegedUsers.Count -gt 0 -or $NonPIMPrivilegedGroups.Count -gt 0) { + $ResultMarkdown += "`n## Non-PIM managed privileged role assignments`n`n" + $ResultMarkdown += "| Display name | User principal name | Role name | Assignment type |`n" + $ResultMarkdown += "| :----------- | :------------------ | :-------- | :-------------- |`n" + + foreach ($User in $NonPIMPrivilegedUsers) { + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($User.displayName)]($UserLink) | $($User.userPrincipalName) | $($User.roleName) | $($User.assignmentType) |`n" + } + + foreach ($Group in $NonPIMPrivilegedGroups) { + $GroupLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/RolesAndAdministrators/groupId/$($Group.id)/menuId/" + $ResultMarkdown += "| [$($Group.displayName)]($GroupLink) | N/A (Group) | $($Group.roleName) | $($Group.assignmentType) |`n" + } + } + + if ($PermanentGAUserList.Count -gt 0) { + $ResultMarkdown += "`n## Permanent Global Administrator assignments`n`n" + $ResultMarkdown += "| Display name | User principal name | Assignment type | On-Premises synced |`n" + $ResultMarkdown += "| :----------- | :------------------ | :-------------- | :----------------- |`n" + + foreach ($User in $PermanentGAUserList) { + $SyncStatus = if ($null -ne $User.onPremisesSyncEnabled) { $User.onPremisesSyncEnabled } else { 'N/A' } + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($User.displayName)]($UserLink) | $($User.userPrincipalName) | $($User.assignmentType) | $SyncStatus |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All Microsoft Entra privileged role assignments are managed with PIM' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Identity' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All Microsoft Entra privileged role assignments are managed with PIM' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Identity' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md new file mode 100644 index 000000000000..b0b563352276 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md @@ -0,0 +1,13 @@ +Without approval workflows, threat actors who compromise Global Administrator credentials through phishing, credential stuffing, or other authentication bypass techniques can immediately activate the most privileged role in a tenant without any other verification or oversight. Privileged Identity Management (PIM) allows eligible role activations to become active within seconds, so compromised credentials can allow near-instant privilege escalation. Once activated, threat actors can use the Global Administrator role to use the following attack paths to gain persistent access to the tenant: +- Create new privileged accounts +- Modify Conditional Access policies to exclude those new accounts +- Establish alternate authentication methods such as certificate-based authentication or application registrations with high privileges + +The Global Administrator role provides access to administrative features in Microsoft Entra ID and services that use Microsoft Entra identities, including Microsoft Defender XDR, Microsoft Purview, Exchange Online, and SharePoint Online. Without approval gates, threat actors can rapidly escalate to complete tenant takeover, exfiltrating sensitive data, compromising all user accounts, and establishing long-term backdoors through service principals or federation modifications that persist even after the initial compromise is detected. + +**Remediation action** + +- [Configure role settings to require approval for Global Administrator activation](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Set up approval workflow for privileged roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-approval-workflow?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 new file mode 100644 index 000000000000..cfe4f469749a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 @@ -0,0 +1,80 @@ +function Invoke-CippTestZTNA21817 { + <# + .SYNOPSIS + Global Administrator role activation triggers an approval workflow + #> + param($Tenant) + + try { + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + if (-not $RoleManagementPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $globalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + + $globalAdminPolicy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and + $_.scopeType -eq 'DirectoryRole' -and + $_.roleDefinitionId -eq $globalAdminRoleId + } + + $tableRows = '' + $result = $false + + if ($globalAdminPolicy) { + $approvalRule = $globalAdminPolicy.rules | Where-Object { $_.id -like '*Approval_EndUser_Assignment*' } + + if ($approvalRule -and $approvalRule.setting.isApprovalRequired -eq $true) { + $approverCount = 0 + foreach ($stage in $approvalRule.setting.approvalStages) { + $approverCount = $approverCount + ($stage.primaryApprovers | Measure-Object).Count + } + + if ($approverCount -gt 0) { + $result = $true + $testResultMarkdown = "✅ **Pass**: Approval required with $approverCount primary approver(s) configured.`n`n%TestResult%" + $primaryApprovers = ($approvalRule.setting.approvalStages[0].primaryApprovers.description -join ', ') + $escalationApprovers = ($approvalRule.setting.approvalStages[0].escalationApprovers.description -join ', ') + $tableRows = "| Yes | $primaryApprovers | $escalationApprovers |`n" + } else { + $testResultMarkdown = "❌ **Fail**: Approval required but no approvers configured.`n`n%TestResult%" + $tableRows = "| Yes | None | None |`n" + } + } else { + $testResultMarkdown = "❌ **Fail**: Approval not required for Global Administrator role activation.`n`n%TestResult%" + $tableRows = "| No | N/A | N/A |`n" + } + } else { + $testResultMarkdown = "❌ **Fail**: No PIM policy found for Global Administrator role.`n`n%TestResult%" + $tableRows = "| N/A | N/A | N/A |`n" + } + + $passed = $result + + $reportTitle = 'Global Administrator role activation and approval workflow' + + $formatTemplate = @' + +## {0} + + +| Approval Required | Primary Approvers | Escalation Approvers | +| :---------------- | :---------------- | :------------------- | +{1} + +'@ + + $mdInfo = $formatTemplate -f $reportTitle, $tableRows + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md new file mode 100644 index 000000000000..4432e91f337a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md @@ -0,0 +1,8 @@ +Organizations without proper activation alerts for highly privileged roles lack visibility into when users access these critical permissions. Threat actors can exploit this monitoring gap to perform privilege escalation by activating highly privileged roles without detection, then establish persistence through admin account creation or security policy modifications. The absence of real-time alerts enables attackers to conduct lateral movement, modify audit configurations, and disable security controls without triggering immediate response procedures. + +**Remediation action** + +- [Configure Microsoft Entra role settings in Privileged Identity Management](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#require-justification-on-activation) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 new file mode 100644 index 000000000000..b739f447cf85 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 @@ -0,0 +1,119 @@ +function Invoke-CippTestZTNA21818 { + <# + .SYNOPSIS + Privileged role activations have monitoring and alerting configured + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21818' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + $Notifications = @( + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Role assignment alert' + RuleId = 'Notification_Admin_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Notification to the assigned user (assignee)' + RuleId = 'Notification_Requestor_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Request to approve a role assignment renewal/extension' + RuleId = 'Notification_Approver_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Role assignment alert' + RuleId = 'Notification_Admin_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Notification to the assigned user (assignee)' + RuleId = 'Notification_Requestor_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Request to approve a role assignment renewal/extension' + RuleId = 'Notification_Approver_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Role activation alert' + RuleId = 'Notification_Admin_EndUser_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Notification to activated user (requestor)' + RuleId = 'Notification_Requestor_EndUser_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Request to approve an activation' + RuleId = 'Notification_Approver_EndUser_Assignment' + } + ) + + $NotificationRules = [System.Collections.Generic.List[object]]::new() + $Passed = $true + $ExitLoop = $false + + foreach ($Role in $PrivilegedRoles) { + $Policy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.roleDefinitionId -eq $Role.id + } | Select-Object -First 1 + + if (-not $Policy) { continue } + + foreach ($NotificationRuleId in $Notifications.RuleId) { + $Rule = $Policy.rules | Where-Object { $_.id -eq $NotificationRuleId } | Select-Object -First 1 + + if ($Rule) { + $RuleWithRole = $Rule | Select-Object *, @{Name = 'RoleDisplayName'; Expression = { $Role.displayName } } + $NotificationRules.Add($RuleWithRole) + + if ($Rule.isDefaultRecipientsEnabled -eq $true -and ($Rule.notificationRecipients.Count -eq 0 -or $null -eq $Rule.notificationRecipients)) { + $Passed = $false + $ExitLoop = $true + break + } + } + } + + if ($ExitLoop) { break } + } + + if ($Passed) { + $ResultMarkdown = "Role notifications are properly configured for privileged role.`n`n" + } else { + $ResultMarkdown = "Role notifications are not properly configured.`n`nNote: To save time, this check stops when it finds the first role that does not have notifications. After fixing this role and all other roles, we recommend running the check again to verify.`n`n" + } + + $ResultMarkdown += "## Notifications for high privileged roles`n`n" + $ResultMarkdown += "| Role Name | Notification Scenario | Notification Type | Default Recipients Enabled | Additional Recipients |`n" + $ResultMarkdown += "| :-------- | :-------------------- | :---------------- | :------------------------- | :-------------------- |`n" + + foreach ($NotificationRule in $NotificationRules) { + $MatchingNotification = $Notifications | Where-Object { $_.RuleId -eq $NotificationRule.id } + $Recipients = if ($NotificationRule.notificationRecipients) { ($NotificationRule.notificationRecipients -join ', ') } else { '' } + $ResultMarkdown += "| $($NotificationRule.roleDisplayName) | $($MatchingNotification.notificationScenario) | $($MatchingNotification.notificationType) | $($NotificationRule.isDefaultRecipientsEnabled) | $Recipients |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Privileged role activations have monitoring and alerting configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged role activations have monitoring and alerting configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md new file mode 100644 index 000000000000..7f99f06ac13a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md @@ -0,0 +1,8 @@ +Without activation alerts for Global Administrator role assignments, threat actors can perform role activation without detection, allowing them to establish persistence in the environment. When Global Administrator roles are activated without notification mechanisms, threat actors who have compromised accounts can escalate privileges, bypassing security monitoring. The absence of alerts creates a blind spot where threat actors can activate the most privileged role in the tenant and perform actions such as creating backdoor accounts, modifying security policies, or accessing sensitive data without immediate detection. This lack of visibility allows threat actors to maintain access and execute their objectives while appearing to use legitimate administrative functions, making it difficult for security teams to distinguish between authorized and unauthorized privilege escalation activities. + +**Remediation action** + +- [Configure Microsoft Entra role settings in Privileged Identity Management](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 new file mode 100644 index 000000000000..8fe1afbea01c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 @@ -0,0 +1,85 @@ +function Invoke-CippTestZTNA21819 { + <# + .SYNOPSIS + Activation alert for Global Administrator role assignment + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21819' + + try { + # Get Global Administrator role (template ID: 62e90394-69f5-4237-9190-012177145e10) + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $GlobalAdminRole = $Roles | Where-Object { $_.roleTemplateId -eq '62e90394-69f5-4237-9190-012177145e10' } + + if (-not $GlobalAdminRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + return + } + + # Get role management policy for Global Admin + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + $GlobalAdminPolicy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.effectiveRules.target.targetObjects.id -contains $GlobalAdminRole.id + } + + $Passed = 'Failed' + $IsDefaultRecipientsEnabled = 'N/A' + $Recipients = 'N/A' + + if ($GlobalAdminPolicy) { + # Find the notification rule for requestor end-user assignment + $NotificationRule = $GlobalAdminPolicy.effectiveRules | Where-Object { + $_.id -like '*Notification_Requestor_EndUser_Assignment*' + } + + if ($NotificationRule) { + $IsDefaultRecipientsEnabled = $NotificationRule.isDefaultRecipientsEnabled + $NotificationRecipients = $NotificationRule.notificationRecipients + + if ($NotificationRecipients) { + $Recipients = ($NotificationRecipients -join ', ') + } + + if ($NotificationRecipients -or $IsDefaultRecipientsEnabled) { + $Passed = 'Passed' + } + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Activation alerts are configured for Global Administrator role.`n`n" + } else { + $ResultMarkdown = "Activation alerts are missing or improperly configured for Global Administrator role.`n`n" + } + + $ResultMarkdown += "| Role display name | Default recipients | Additional recipients |`n" + $ResultMarkdown += "| :---------------- | :----------------- | :------------------- |`n" + + $RoleLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles' + $DisplayNameLink = "[$($GlobalAdminRole.displayName)]($RoleLink)" + + $DefaultRecipientsStatus = if ($IsDefaultRecipientsEnabled -eq $true) { + '✅ Enabled' + } elseif ($IsDefaultRecipientsEnabled -eq $false) { + '❌ Disabled' + } else { + 'N/A' + } + + $RecipientsDisplay = if ([string]::IsNullOrEmpty($Recipients) -or $Recipients -eq 'N/A') { + '-' + } else { + $Recipients + } + + $ResultMarkdown += "| $DisplayNameLink | $DefaultRecipientsStatus | $RecipientsDisplay |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md new file mode 100644 index 000000000000..e6327b29dd4b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md @@ -0,0 +1,6 @@ +Without activation alerts for privileged role assignments, threat actors who compromise user credentials through phishing, password attacks, or credential stuffing can activate privileged roles without detection. When privileged roles are activated without notification mechanisms, security teams lack visibility into when elevated permissions are being used, allowing threat actors to operate within the environment undetected during the initial access phase. During the persistence phase, threat actors can leverage activated privileged roles to create backdoors, modify security configurations, or establish additional access methods without triggering security alerts. The lack of activation notifications prevents security teams from correlating privileged role usage with other security events, enabling threat actors to conduct lateral movement and privilege escalation activities while maintaining stealth. + +**Remediation action** +- [Configure notifications for privileged roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings#require-justification-on-active-assignment) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 new file mode 100644 index 000000000000..88b626c023dd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 @@ -0,0 +1,108 @@ +function Invoke-CippTestZTNA21820 { + <# + .SYNOPSIS + Activation alert for all privileged role assignments + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21820' + + try { + # Get all privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles -or $PrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + return + } + + # Get all role management policies + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + # Build hashtable for quick policy lookup by role ID + $PolicyByRoleId = @{} + foreach ($Policy in $RoleManagementPolicies) { + if ($Policy.scopeId -eq '/' -and $Policy.scopeType -eq 'DirectoryRole') { + foreach ($RoleId in $Policy.effectiveRules.target.targetObjects.id) { + if ($RoleId) { + $PolicyByRoleId[$RoleId] = $Policy + } + } + } + } + + $RolesWithIssues = [System.Collections.Generic.List[object]]::new() + $Passed = 'Passed' + + foreach ($Role in $PrivilegedRoles) { + $Policy = $PolicyByRoleId[$Role.id] + + if (-not $Policy) { + $RolesWithIssues.Add(@{ + Role = $Role + Issue = 'No PIM policy assignment found' + IsDefaultRecipientsEnabled = 'N/A' + NotificationRecipients = 'N/A' + }) + continue + } + + # Find notification rule for requestor end-user assignment + $NotificationRule = $Policy.effectiveRules | Where-Object { + $_.id -like '*Notification_Requestor_EndUser_Assignment*' + } + + if ($NotificationRule) { + $IsDefaultRecipientsEnabled = $NotificationRule.isDefaultRecipientsEnabled + $NotificationRecipients = $NotificationRule.notificationRecipients + + # Check if alert is properly configured + if ($IsDefaultRecipientsEnabled -eq $true -and ((-not $NotificationRecipients) -or $NotificationRecipients.Count -eq 0)) { + $Passed = 'Failed' + $RolesWithIssues.Add(@{ + Role = $Role + IsDefaultRecipientsEnabled = $IsDefaultRecipientsEnabled + NotificationRecipients = 'N/A' + }) + # Exit early on first issue for performance + break + } + } + } + + if ($RolesWithIssues.Count -eq 0) { + $ResultMarkdown = 'Activation alerts are configured for privileged role assignments.' + } else { + $ResultMarkdown = 'Activation alerts are missing or improperly configured for privileged roles.' + } + + if ($RolesWithIssues.Count -gt 0) { + $ResultMarkdown += "`n`n## Roles with missing or misconfigured alerts`n`n" + $ResultMarkdown += "| Role display name | Default recipients | Additional recipients |`n" + $ResultMarkdown += "| :---------------- | :----------------- | :------------------- |`n" + + foreach ($RoleIssue in $RolesWithIssues) { + $Role = $RoleIssue.Role + $RoleLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles' + $DisplayNameLink = "[$($Role.displayName)]($RoleLink)" + + $DefaultRecipientsStatus = if ($RoleIssue.IsDefaultRecipientsEnabled -eq $true) { + 'Enabled' + } else { + 'Disabled' + } + $Recipients = $RoleIssue.NotificationRecipients + + $ResultMarkdown += "| $DisplayNameLink | $DefaultRecipientsStatus | $Recipients |`n" + } + $ResultMarkdown += "`n`n*Not all misconfigured roles may be listed. For performance reasons, this assessment stops at the first detected issue.*`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md new file mode 100644 index 000000000000..506922d1426c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md @@ -0,0 +1,8 @@ +Without limiting guest access to approved tenants, threat actors can exploit unrestricted guest access to establish initial access through compromised external accounts or by creating accounts in untrusted tenants. Organizations can configure an allowlist or blocklist to control B2B collaboration invitations from specific organizations, and without these controls, threat actors can leverage social engineering techniques to obtain invitations from legitimate internal users. Once threat actors gain guest access through unrestricted domains, they can perform discovery activities to enumerate internal resources, users, and applications that guest accounts can access. The compromised guest account then serves as a persistent foothold, allowing threat actors to execute collection activities against accessible SharePoint sites, Teams channels, and other resources granted to guest users. From this position, threat actors can attempt lateral movement by exploiting trust relationships between the compromised tenant and partner organizations, or by leveraging guest permissions to access sensitive data that can be used for further credential compromise or business email compromise attacks. + +**Remediation action** + +- [Configure Domain-Based Allow or Deny Lists](https://learn.microsoft.com/en-us/entra/external-id/allow-deny-list) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 new file mode 100644 index 000000000000..f9a9e2427c23 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 @@ -0,0 +1,67 @@ +function Invoke-CippTestZTNA21822 { + <# + .SYNOPSIS + Guest access is limited to approved tenants + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21822' + + try { + # Get B2B management policy from cache + $B2BManagementPolicyObject = New-CIPPDbRequest -TenantFilter $Tenant -Type 'B2BManagementPolicy' + + $Passed = 'Failed' + $AllowedDomains = @() + $BlockedDomains = @() + + if ($B2BManagementPolicyObject -and $B2BManagementPolicyObject.definition) { + $B2BManagementPolicy = ($B2BManagementPolicyObject.definition | ConvertFrom-Json).B2BManagementPolicy + $AllowedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.AllowedDomains + $BlockedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.BlockedDomains + + if ($AllowedDomains -and $AllowedDomains.Count -gt 0) { + $Passed = 'Passed' + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Guest access is limited to approved tenants.`n" + } else { + $ResultMarkdown = "Guest access is not limited to approved tenants.`n" + } + + $ResultMarkdown += "`n`n## [Collaboration restrictions](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/)`n`n" + $ResultMarkdown += 'The tenant is configured to: ' + + if ($Passed -eq 'Passed') { + $ResultMarkdown += "**Allow invitations only to the specified domains (most restrictive)** ✅`n" + } else { + if ($BlockedDomains -and $BlockedDomains.Count -gt 0) { + $ResultMarkdown += "**Deny invitations to the specified domains** ❌`n" + } else { + $ResultMarkdown += "**Allow invitations to be sent to any domain (most inclusive)** ❌`n" + } + } + + if (($AllowedDomains -and $AllowedDomains.Count -gt 0) -or ($BlockedDomains -and $BlockedDomains.Count -gt 0)) { + $ResultMarkdown += "| Domain | Status |`n" + $ResultMarkdown += "| :--- | :--- |`n" + + foreach ($Domain in $AllowedDomains) { + $ResultMarkdown += "| $Domain | ✅ Allowed |`n" + } + + foreach ($Domain in $BlockedDomains) { + $ResultMarkdown += "| $Domain | ❌ Blocked |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md new file mode 100644 index 000000000000..577af3c21731 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md @@ -0,0 +1,10 @@ +When guest self-service sign-up is enabled, threat actors can exploit it to establish unauthorized access by creating legitimate guest accounts without requiring approval from authorized personnel. These accounts can be scoped to specific services to reduce detection and effectively bypass invitation-based controls that validate external user legitimacy. + +Once created, self-provisioned guest accounts provide persistent access to organizational resources and applications. Threat actors can use them to conduct reconnaissance activities to map internal systems, identify sensitive data repositories, and plan further attack vectors. This persistence allows adversaries to maintain access across restarts, credential changes, and other interruptions, while the guest account itself offers a seemingly legitimate identity that might evade security monitoring focused on external threats. + +Additionally, compromised guest identities can be used to establish credential persistence and potentially escalate privileges. Attackers can exploit trust relationships between guest accounts and internal resources, or use the guest account as a staging ground for lateral movement toward more privileged organizational assets. + +**Remediation action** +- [Configure guest self-service sign-up With Microsoft Entra External ID](https://learn.microsoft.com/en-us/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-self-service-sign-up) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 new file mode 100644 index 000000000000..24ddb005d5bb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 @@ -0,0 +1,34 @@ +function Invoke-CippTestZTNA21823 { + <# + .SYNOPSIS + Guest self-service sign-up via user flow is disabled + #> + param($Tenant) + + $TestId = 'ZTNA21823' + #Tested + try { + # Get authentication flows policy from cache + $AuthFlowPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationFlowsPolicy' + + if (-not $AuthFlowPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + return + } + + $Passed = if ($AuthFlowPolicy.selfServiceSignUp.isEnabled -eq $false) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "[Guest self-service sign up via user flow](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/ExternalIdentitiesGettingStarted) is disabled.`n" + } else { + $ResultMarkdown = "[Guest self-service sign up via user flow](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/ExternalIdentitiesGettingStarted) is enabled.`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md new file mode 100644 index 000000000000..b6f19e7039e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md @@ -0,0 +1,12 @@ +Guest accounts with extended sign-in sessions increase the risk surface area that threat actors can exploit. When guest sessions persist beyond necessary timeframes, threat actors often attempt to gain initial access through credential stuffing, password spraying, or social engineering attacks. Once they gain access, they can maintain unauthorized access for extended periods without reauthentication challenges. These compromised and extended sessions: + +- Allow unauthorized access to Microsoft Entra artifacts, enabling threat actors to identify sensitive resources and map organizational structures. +- Allow threat actors to persist within the network by using legitimate authentication tokens, making detection more challenging as the activity appears as typical user behavior. +- Provides threat actors with a longer window of time to escalate privileges through techniques like accessing shared resources, discovering more credentials, or exploiting trust relationships between systems. + +Without proper session controls, threat actors can achieve lateral movement across the organization's infrastructure, accessing critical data and systems that extend far beyond the original guest account's intended scope of access. + +**Remediation action** +- [Configure adaptive session lifetime policies](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) so sign-in frequency policies have shorter live sign-in sessions. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 new file mode 100644 index 000000000000..a6993c280c02 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 @@ -0,0 +1,86 @@ +function Invoke-CippTestZTNA21824 { + <# + .SYNOPSIS + Guests don't have long lived sign-in sessions + #> + param($Tenant) + #Tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + return + } + + $filteredCAPolicies = $allCAPolicies | Where-Object { + ($null -ne $_.conditions.users.includeGuestsOrExternalUsers) -and + ($_.state -in @('enabled', 'enabledForReportingButNotEnforced')) -and + ($null -eq $_.grantControls.termsOfUse -or $_.grantControls.termsOfUse.Count -eq 0) + } + + $matchedPolicies = $filteredCAPolicies | Where-Object { + $signInFrequency = $_.sessionControls.signInFrequency + if ($signInFrequency -and $signInFrequency.isEnabled) { + ($signInFrequency.type -eq 'hours' -and $signInFrequency.value -le 24) -or + ($signInFrequency.type -eq 'days' -and $signInFrequency.value -eq 1) -or + ($null -eq $signInFrequency.type -and $signInFrequency.frequencyInterval -eq 'everyTime') + } else { + $false + } + } + + $passed = if ($filteredCAPolicies.Count -eq $matchedPolicies.Count) { 'Passed' } else { 'Failed' } + + if ($passed -eq 'Passed') { + $testResultMarkdown = "Guests don't have long lived sign-in sessions." + } else { + $testResultMarkdown = 'Guests do have long lived sign-in sessions.' + } + + $reportTitle = 'Sign-in frequency policies' + + if ($filteredCAPolicies -and $filteredCAPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Sign-in Frequency | Status |`n" + $mdInfo += "| :---------- | :---------------- | :----- |`n" + + foreach ($filteredCAPolicy in $filteredCAPolicies) { + $policyName = $filteredCAPolicy.DisplayName + + $signInFrequency = $filteredCAPolicy.sessionControls.signInFrequency + switch ($signInFrequency.type) { + 'hours' { + $signInFreqValue = "$($signInFrequency.value) hours" + } + 'days' { + $signInFreqValue = "$($signInFrequency.value) days" + } + default { + if ($signInFrequency.frequencyInterval -eq 'everyTime') { + $signInFreqValue = 'Every time' + } else { + $signInFreqValue = 'Not configured' + } + } + } + + $status = if ($matchedPolicies -and $matchedPolicies.Id -contains $filteredCAPolicy.Id) { + '✅' + } else { + '❌' + } + + $mdInfo += "| $policyName | $signInFreqValue | $status |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md new file mode 100644 index 000000000000..25e38ec74568 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md @@ -0,0 +1,15 @@ +When privileged users are allowed to maintain long-lived sign-in sessions without periodic reauthentication, threat actors can gain extended windows of opportunity to exploit compromised credentials or hijack active sessions. Once a privileged account is compromised through techniques like credential theft, phishing, or session fixation, extended session timeouts allow threat actors to maintain persistence within the environment for prolonged periods. With long-lived sessions, threat actors can perform lateral movement across systems, escalate privileges further, and access sensitive resources without triggering another authentication challenge. The extended session duration also increases the window for session hijacking attacks, where threat actors can steal session tokens and impersonate the privileged user. Once a threat actor is established in a privileged session, they can: + +- Create backdoor accounts +- Modify security policies +- Access sensitive data +- Establish more persistence mechanisms + +The lack of periodic reauthentication requirements means that even if the original compromise is detected, the threat actor might continue operating undetected using the hijacked privileged session until the session naturally expires or the user manually signs out. + +**Remediation action** + +- [Learn about Conditional Access adaptive session lifetime policies](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure sign-in frequency for privileged users with Conditional Access policies ](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 new file mode 100644 index 000000000000..2ad49609f454 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 @@ -0,0 +1,107 @@ +function Invoke-CippTestZTNA21825 { + <# + .SYNOPSIS + Privileged users have short-lived sign-in sessions + #> + param($Tenant) + + $TestId = 'ZTNA21825' + #Tested + try { + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles -or $PrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + # Get Conditional Access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + # Filter to policies targeting roles + $RoleScopedPolicies = $CAPolicies | Where-Object { + $_.conditions.users.includeRoles -and $_.conditions.users.includeRoles.Count -gt 0 + } + + # Recommended: Sign-in frequency should be 4 hours or less for privileged users + $RecommendedMaxHours = 4 + + $ResultMarkdown = "## Privileged User Sign-In Sessions`n`n" + $ResultMarkdown += "**Total Privileged Roles Found:** $($PrivilegedRoles.Count)`n`n" + $ResultMarkdown += "**CA Policies Targeting Roles:** $($RoleScopedPolicies.Count)`n`n" + $ResultMarkdown += "**Recommended Sign In Session Hours:** $RecommendedMaxHours`n`n" + $ResultMarkdown += "### Conditional Access Policies by Privileged Role`n`n" + + $AllRolesCovered = $true + + foreach ($Role in $PrivilegedRoles) { + $ResultMarkdown += "#### $($Role.displayName)`n`n" + + # Get CA policies assigned to this role + $AssignedPolicies = $CAPolicies | Where-Object { $_.conditions.users.includeRoles -contains $Role.id } + $EnabledPolicies = $AssignedPolicies | Where-Object { $_.state -eq 'enabled' } + + if ($EnabledPolicies.Count -gt 0) { + # Check if at least one compliant enabled policy covers this role + $CompliantForRole = $EnabledPolicies | Where-Object { + $_.sessionControls.signInFrequency -and + $_.sessionControls.signInFrequency.type -eq 'hours' -and + $_.sessionControls.signInFrequency.value -le $RecommendedMaxHours + } + + $RoleStatus = if ($CompliantForRole.Count -gt 0) { + '✅ Covered' + } else { + '❌ Not Covered'; $AllRolesCovered = $false + } + $ResultMarkdown += "**Status:** $RoleStatus`n`n" + + $ResultMarkdown += "| Policy Name | Sign-In Frequency | Compliant |`n" + $ResultMarkdown += "| :--- | :--- | :--- |`n" + + foreach ($Policy in $EnabledPolicies) { + $FreqValue = 'Not Configured' + $IsCompliant = '❌' + + if ($Policy.sessionControls.signInFrequency) { + $Freq = $Policy.sessionControls.signInFrequency + $FreqValue = "$($Freq.value) $($Freq.type)" + + if ($Freq.type -eq 'hours' -and $Freq.value -le $RecommendedMaxHours) { + $IsCompliant = '✅' + } elseif ($Freq.type -eq 'hours') { + $IsCompliant = "⚠️ ($($Freq.value)h > $($RecommendedMaxHours)h)" + } else { + $IsCompliant = '❌ (Days not recommended)' + } + } + + $PolicyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "| [$($Policy.displayName)]($PolicyLink) | $FreqValue | $IsCompliant |`n" + } + $ResultMarkdown += "`n" + } else { + $ResultMarkdown += "**Status:** ❌ No CA policies assigned`n`n" + $ResultMarkdown += "*No Conditional Access policies target this privileged role.*`n`n" + $AllRolesCovered = $false + } + } + + $Passed = if ($AllRolesCovered -and $PrivilegedRoles.Count -gt 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown += "✅ **All privileged roles are covered by enabled policies enforcing short-lived sessions (≤$RecommendedMaxHours hours).**`n" + } else { + $ResultMarkdown += "❌ **Not all privileged roles are covered by compliant sign-in frequency controls.**`n" + $ResultMarkdown += "`n**Recommendation:** Configure Conditional Access policies to enforce sign-in frequency of $RecommendedMaxHours hours or less for ALL privileged roles.`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md new file mode 100644 index 000000000000..5f23b96e0682 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md @@ -0,0 +1,8 @@ +Blocking authentication transfer in Microsoft Entra ID is a critical security control. It helps protect against token theft and replay attacks by preventing the use of device tokens to silently authenticate on other devices or browsers. When authentication transfer is enabled, a threat actor who gains access to one device can access resources to nonapproved devices, bypassing standard authentication and device compliance checks. When administrators block this flow, organizations can ensure that each authentication request must originate from the original device, maintaining the integrity of the device compliance and user session context. + +**Remediation action** + +- [Deploy a Conditional Access policy to block authentication transfer](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-block-authentication-flows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-transfer-policies) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 new file mode 100644 index 000000000000..8fa1c672570e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestZTNA21828 { + <# + .SYNOPSIS + Authentication transfer is blocked + #> + param($Tenant) + #Tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + return + } + + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.authenticationFlows.transferMethods -match 'authenticationTransfer' -and + $_.grantControls.builtInControls -contains 'block' -and + $_.conditions.users.includeUsers -eq 'all' -and + $_.conditions.applications.includeApplications -eq 'all' -and + $_.state -eq 'enabled' + } + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'Authentication transfer is blocked by Conditional Access Policy(s).' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Authentication transfer is not blocked.' + } + + $reportTitle = 'Conditional Access Policies targeting Authentication Transfer' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Policy ID | State | Created | Modified |`n" + $mdInfo += "| :---------- | :-------- | :---- | :------ | :------- |`n" + + foreach ($policy in $matchedPolicies) { + $created = if ($policy.createdDateTime) { $policy.createdDateTime } else { 'N/A' } + $modified = if ($policy.modifiedDateTime) { $policy.modifiedDateTime } else { 'N/A' } + $mdInfo += "| $($policy.displayName) | $($policy.id) | $($policy.state) | $created | $modified |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + } else { + $testResultMarkdown = $testResultMarkdown + "`n`nNo Conditional Access policies targeting authentication transfer." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md new file mode 100644 index 000000000000..470f74876eea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md @@ -0,0 +1,8 @@ +An on-premises federation server introduces a critical attack surface by serving as a central authentication point for cloud applications. Threat actors often gain a foothold by compromising a privileged user such as a help desk representative or an operations engineer through attacks like phishing, credential stuffing, or exploiting weak passwords. They might also target unpatched vulnerabilities in infrastructure, use remote code execution exploits, attack the Kerberos protocol, or use pass-the-hash attacks to escalate privileges. Misconfigured remote access tools like remote desktop protocol (RDP), virtual private network (VPN), or jump servers provide other entry points, while supply chain compromises or malicious insiders further increase exposure. Once inside, threat actors can manipulate authentication flows, forge security tokens to impersonate any user, and pivot into cloud environments. Establishing persistence, they can disable security logs, evade detection, and exfiltrate sensitive data. + +**Remediation action** + +- [Migrate from federation to cloud authentication like Microsoft Entra Password hash synchronization (PHS)](https://learn.microsoft.com/entra/identity/hybrid/connect/migrate-from-federation-to-cloud-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 new file mode 100644 index 000000000000..6dcd4437bd47 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestZTNA21829 { + <# + .SYNOPSIS + Use cloud authentication + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21829' + + try { + # Get domains + $Domains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Domains' + + if (-not $Domains) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + return + } + + $FederatedDomains = $Domains | Where-Object { $_.authenticationType -eq 'Federated' } + $Passed = if ($FederatedDomains.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "All domains are using cloud authentication.`n`n" + } else { + $ResultMarkdown = "Federated authentication is in use.`n`n" + + $ResultMarkdown += "`n## List of federated domains`n`n" + $ResultMarkdown += "| Domain Name |`n" + $ResultMarkdown += "| :--- |`n" + foreach ($Domain in $FederatedDomains) { + $ResultMarkdown += "| $($Domain.id) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md new file mode 100644 index 000000000000..790102b27622 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md @@ -0,0 +1,11 @@ +If privileged role activations aren't restricted to dedicated Privileged Access Workstations (PAWs), threat actors can exploit compromised endpoint devices to perform privileged escalation attacks from unmanaged or noncompliant workstations. Standard productivity workstations often contain attack vectors such as unrestricted web browsing, email clients vulnerable to phishing, and locally installed applications with potential vulnerabilities. When administrators activated privileged roles from these workstations, threat actors who gain initial access through malware, browser exploits, or social engineering can then use the locally cached privileged credentials or hijack existing authenticated sessions to escalate their privileges. Privileged role activations grant extensive administrative rights across Microsoft Entra ID and connected services, so attackers can create new administrative accounts, modify security policies, access sensitive data across all organizational resources, and deploy malware or backdoors throughout the environment to establish persistent access. This lateral movement from a compromised endpoint to privileged cloud resources represents a critical attack path that bypasses many traditional security controls. The privileged access appears legitimate when originating from an authenticated administrator's session. + +If this check passes, your tenant has a Conditional Access policy that restricts privileged role access to PAW devices, but it isn't the only control required to fully enable a PAW solution. You also need to configure an Intune device configuration and compliance policy and a device filter. + +**Remediation action** + +- [Deploy a privileged access workstation solution](https://learn.microsoft.com/security/privileged-access-workstations/privileged-access-deployment?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - Provides guidance for configuring the Conditional Access and Intune device configuration and compliance policies. +- [Configure device filters in Conditional Access to restrict privileged access](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-condition-filters-for-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 new file mode 100644 index 000000000000..8dd9f35942b8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 @@ -0,0 +1,86 @@ +function Invoke-CippTestZTNA21830 { + <# + .SYNOPSIS + Conditional Access policies for Privileged Access Workstations are configured + #> + param($Tenant) + + $TestId = 'ZTNA21830' + #Tested + try { + # Get Conditional Access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $EnabledCAPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $CompliantDevicePolicies = [System.Collections.Generic.List[object]]::new() + $DeviceFilterPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $EnabledCAPolicies) { + # Check if policy targets privileged roles + $TargetsPrivilegedRoles = $false + if ($Policy.conditions.users.includeRoles) { + foreach ($RoleId in $Policy.conditions.users.includeRoles) { + if ($PrivilegedRoles.id -contains $RoleId) { + $TargetsPrivilegedRoles = $true + break + } + } + } + + if ($TargetsPrivilegedRoles) { + # Check for compliant device control + if ($Policy.grantControls.builtInControls -contains 'compliantDevice') { + $CompliantDevicePolicies.Add($Policy) + } + + # Check for device filter exclude + block + $HasDeviceFilterExclude = $Policy.conditions.devices.deviceFilter -and + $Policy.conditions.devices.deviceFilter.mode -eq 'exclude' + $BlocksAccess = (-not $Policy.grantControls.builtInControls) -or + ($Policy.grantControls.builtInControls -contains 'block') + + if ($HasDeviceFilterExclude -and $BlocksAccess) { + $DeviceFilterPolicies.Add($Policy) + } + } + } + + $Passed = if ($CompliantDevicePolicies.Count -eq 0 -or $DeviceFilterPolicies.Count -eq 0) { 'Failed' } else { 'Passed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = 'Conditional Access policies restrict privileged role access to PAW devices.' + } else { + $ResultMarkdown = 'No Conditional Access policies found that restrict privileged roles to PAW device.' + } + + $CompliantDeviceMarkdown = if ($CompliantDevicePolicies.Count -gt 0) { '✅' } else { '❌' } + $DeviceFilterMarkdown = if ($DeviceFilterPolicies.Count -gt 0) { '✅' } else { '❌' } + + $ResultMarkdown += "`n`n**$CompliantDeviceMarkdown Found $($CompliantDevicePolicies.Count) policy(s) with compliant device control targeting all privileged roles**`n" + foreach ($Policy in $CompliantDevicePolicies) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "- **Policy:** [$($Policy.displayName)]($PortalLink)`n" + } + + $ResultMarkdown += "`n`n**$DeviceFilterMarkdown Found $($DeviceFilterPolicies.Count) policy(s) with PAW/SAW device filter targeting all privileged roles**`n" + foreach ($Policy in $DeviceFilterPolicies) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "- **Policy:** [$($Policy.displayName)]($PortalLink)`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md new file mode 100644 index 000000000000..abcf2871d752 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md @@ -0,0 +1,10 @@ +Threat actors who gain privileged access to a tenant can manipulate identity, access, and security configurations. This type of attack can result in environment-wide compromise and loss of control over organizational assets. Take action to protect high-impact management tasks associated with Conditional Access policies, cross-tenant access settings, hard deletions, and network locations that are critical to maintaining security. + +Protected actions let administrators secure these tasks with extra security controls, such as stronger authentication methods (passwordless MFA or phishing-resistant MFA), the use of Privileged Access Workstation (PAW) devices, or shorter session timeouts. + +**Remediation action** + +- [Add, test, or remove protected actions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/role-based-access-control/protected-actions-add?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md new file mode 100644 index 000000000000..be68f5749ef6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md @@ -0,0 +1,8 @@ +Microsoft recommends that organizations have two cloud-only emergency access accounts permanently assigned the [Global Administrator](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#global-administrator) role. These accounts are highly privileged and aren't assigned to specific individuals. The accounts are limited to emergency or "break glass" scenarios where normal accounts can't be used or all other administrators are accidentally locked out. + +**Remediation action** + +- Create accounts following the [emergency access account recommendations](https://learn.microsoft.com/entra/identity/role-based-access-control/security-emergency-access?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 new file mode 100644 index 000000000000..f9f7e021dd98 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 @@ -0,0 +1,205 @@ +function Invoke-CippTestZTNA21835 { + <# + .SYNOPSIS + Emergency access accounts are configured appropriately + #> + param($Tenant) + #Untested + $TestId = 'ZTNA21835' + + try { + # Get Global Administrator role (template ID: 62e90394-69f5-4237-9190-012177145e10) + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $GlobalAdminRole = $Roles | Where-Object { $_.roleTemplateId -eq '62e90394-69f5-4237-9190-012177145e10' } + + if (-not $GlobalAdminRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + # Get permanent Global Administrator members + $PermanentGAMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId '62e90394-69f5-4237-9190-012177145e10' | Where-Object { + $_.AssignmentType -eq 'Permanent' -and $_.'@odata.type' -eq '#microsoft.graph.user' + } + + # Get Users data to check sync status + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $EmergencyAccountCandidates = [System.Collections.Generic.List[object]]::new() + + foreach ($Member in $PermanentGAMembers) { + $User = $Users | Where-Object { $_.id -eq $Member.principalId } + + # Only process cloud-only accounts + if ($User -and $User.onPremisesSyncEnabled -ne $true) { + # Note: Individual user authentication methods require per-user API calls not available in cache + # Add all cloud-only permanent GAs as candidates (cannot verify auth methods from cache) + $EmergencyAccountCandidates.Add([PSCustomObject]@{ + Id = $User.id + UserPrincipalName = $User.userPrincipalName + DisplayName = $User.displayName + OnPremisesSyncEnabled = $User.onPremisesSyncEnabled + AuthenticationMethods = @('Unknown - requires per-user API call') + CAPoliciesTargeting = 0 + ExcludedFromAllCA = $false + }) + } + } + + # Get CA policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $EnabledCAPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + $EmergencyAccessAccounts = [System.Collections.Generic.List[object]]::new() + + foreach ($Candidate in $EmergencyAccountCandidates) { + # Note: Transitive group and role memberships require per-user API calls not available in cache + # Simplified check: only verify direct includes/excludes in CA policies + $UserGroupIds = @() + $UserRoles = @() + $UserRoleIds = @() + + $PoliciesTargetingUser = 0 + $ExcludedFromAll = $true + + foreach ($Policy in $EnabledCAPolicies) { + $IsTargeted = $false + + # Check user includes/excludes + $IncludeUsers = @($Policy.conditions.users.includeUsers) + $ExcludeUsers = @($Policy.conditions.users.excludeUsers) + + if ($IncludeUsers -contains 'All' -or $IncludeUsers -contains $Candidate.Id) { + $IsTargeted = $true + } + + if ($ExcludeUsers -contains $Candidate.Id) { + $IsTargeted = $false + } + + # Check group includes/excludes + if (-not $IsTargeted -and $UserGroupIds.Count -gt 0) { + $IncludeGroups = @($Policy.conditions.users.includeGroups) + $ExcludeGroups = @($Policy.conditions.users.excludeGroups) + + foreach ($GroupId in $UserGroupIds) { + if ($IncludeGroups -contains $GroupId) { + $IsTargeted = $true + } + if ($ExcludeGroups -contains $GroupId) { + $IsTargeted = $false + break + } + } + } + + # Check role includes/excludes + $IncludeRoles = @($Policy.conditions.users.includeRoles) + $ExcludeRoles = @($Policy.conditions.users.excludeRoles) + + foreach ($RoleId in $UserRoleIds) { + $Role = $UserRoles | Where-Object { $_.id -eq $RoleId } + if ($Role -and $IncludeRoles -contains $Role.roleTemplateId) { + $IsTargeted = $true + } + if ($Role -and $ExcludeRoles -contains $Role.roleTemplateId) { + $IsTargeted = $false + break + } + } + + if ($IsTargeted) { + $PoliciesTargetingUser++ + $ExcludedFromAll = $false + } + } + + $Candidate.CAPoliciesTargeting = $PoliciesTargetingUser + $Candidate.ExcludedFromAllCA = $ExcludedFromAll + + if ($ExcludedFromAll) { + $EmergencyAccessAccounts.Add($Candidate) + } + } + + $AccountCount = $EmergencyAccessAccounts.Count + $Passed = 'Failed' + $ResultMarkdown = '' + + if ($AccountCount -lt 2) { + $ResultMarkdown = "Fewer than two emergency access accounts were identified based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions.`n`n" + } elseif ($AccountCount -ge 2 -and $AccountCount -le 4) { + $Passed = 'Passed' + $ResultMarkdown = "Emergency access accounts appear to be configured as per Microsoft guidance based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions.`n`n" + } else { + $ResultMarkdown = "$AccountCount emergency access accounts appear to be configured based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions. Review these accounts to determine whether this volume is excessive for your organization.`n`n" + } + + $ResultMarkdown += "**Summary:**`n" + $ResultMarkdown += "- Total permanent Global Administrators: $($PermanentGAMembers.Count)`n" + $ResultMarkdown += "- Cloud-only GAs with phishing-resistant auth: $($EmergencyAccountCandidates.Count)`n" + $ResultMarkdown += "- Emergency access accounts (excluded from all CA): $AccountCount`n" + $ResultMarkdown += "- Enabled Conditional Access policies: $($EnabledCAPolicies.Count)`n`n" + + if ($EmergencyAccessAccounts.Count -gt 0) { + $ResultMarkdown += "## Emergency access accounts`n`n" + $ResultMarkdown += "| Display name | UPN | Synced from on-premises | Authentication methods |`n" + $ResultMarkdown += "| :----------- | :-- | :---------------------- | :--------------------- |`n" + + foreach ($Account in $EmergencyAccessAccounts) { + $SyncStatus = if ($Account.OnPremisesSyncEnabled -ne $true) { 'No' } else { 'Yes' } + $AuthMethodDisplay = ($Account.AuthenticationMethods | ForEach-Object { + $_ -replace '#microsoft.graph.', '' -replace 'AuthenticationMethod', '' + }) -join ', ' + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($Account.Id)" + $ResultMarkdown += "| $($Account.DisplayName) | [$($Account.UserPrincipalName)]($PortalLink) | $SyncStatus | $AuthMethodDisplay |`n" + } + $ResultMarkdown += "`n" + } + + if ($PermanentGAMembers.Count -gt 0) { + $ResultMarkdown += "## All permanent Global Administrators`n`n" + $ResultMarkdown += "| Display name | UPN | Cloud only | All CA excluded | Phishing resistant auth |`n" + $ResultMarkdown += "| :----------- | :-- | :--------: | :---------: | :---------------------: |`n" + + $UserSummary = [System.Collections.Generic.List[object]]::new() + foreach ($Member in $PermanentGAMembers) { + $User = $Users | Where-Object { $_.id -eq $Member.principalId } + if (-not $User) { continue } + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($User.id)" + $IsCloudOnly = ($User.onPremisesSyncEnabled -ne $true) + $CloudOnlyEmoji = if ($IsCloudOnly) { '✅' } else { '❌' } + + $EmergencyAccount = $EmergencyAccessAccounts | Where-Object { $_.Id -eq $User.id } + $CAExcludedEmoji = if ($EmergencyAccount) { '✅' } else { '❌' } + + $Candidate = $EmergencyAccountCandidates | Where-Object { $_.Id -eq $User.id } + $PhishingResistantEmoji = if ($Candidate) { '✅' } else { '❌' } + + $UserSummary.Add([PSCustomObject]@{ + DisplayName = $User.displayName + UserPrincipalName = $User.userPrincipalName + PortalLink = $PortalLink + CloudOnly = $CloudOnlyEmoji + CAExcluded = $CAExcludedEmoji + PhishingResistant = $PhishingResistantEmoji + }) + } + + foreach ($UserSum in $UserSummary) { + $ResultMarkdown += "| $($UserSum.DisplayName) | [$($UserSum.UserPrincipalName)]($($UserSum.PortalLink)) | $($UserSum.CloudOnly) | $($UserSum.CAExcluded) | $($UserSum.PhishingResistant) |`n" + } + + $ResultMarkdown += "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md new file mode 100644 index 000000000000..08ff6ceb70f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md @@ -0,0 +1,8 @@ +If administrators assign privileged roles to workload identities, such as service principals or managed identities, the tenant can be exposed to significant risk if those identities are compromised. Threat actors who gain access to a privileged workload identity can perform reconnaissance to enumerate resources, escalate privileges, and manipulate or exfiltrate sensitive data. The attack chain typically begins with credential theft or abuse of a vulnerable application. Next step is privilege escalation through the assigned role, lateral movement across cloud resources, and finally persistence via other role assignments or credential updates. Workload identities are often used in automation and might not be monitored as closely as user accounts. Compromise can then go undetected, allowing threat actors to maintain access and control over critical resources. Workload identities aren't subject to user-centric protections like MFA, making least-privilege assignment and regular review essential. + +**Remediation action** +- [Review and remove privileged roles assignments](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-resource-roles-assign-roles?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#update-or-remove-an-existing-role-assignment). +- [Follow the best practices for workload identities](https://learn.microsoft.com/en-us/entra/workload-id/workload-identities-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#key-scenarios). +- [Learn about privileged roles and permissions in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/privileged-roles-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 new file mode 100644 index 000000000000..e6129bd4a135 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 @@ -0,0 +1,67 @@ +function Invoke-CippTestZTNA21836 { + <# + .SYNOPSIS + Workload Identities are not assigned privileged roles + #> + param($Tenant) + #Untested + $TestId = 'ZTNA21836' + + try { + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + # Get workload identities (service principals) with privileged role assignments + $WorkloadIdentitiesWithPrivilegedRoles = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleId $Role.id + + foreach ($Member in $RoleMembers) { + if ($Member.'@odata.type' -eq '#microsoft.graph.servicePrincipal') { + $WorkloadIdentitiesWithPrivilegedRoles.Add([PSCustomObject]@{ + PrincipalId = $Member.principalId + PrincipalDisplayName = $Member.principalDisplayName + AppId = $Member.appId + RoleDisplayName = $Role.displayName + RoleDefinitionId = $Role.id + AssignmentType = $Member.AssignmentType + }) + } + } + } + + $Passed = 'Passed' + $ResultMarkdown = '' + + if ($WorkloadIdentitiesWithPrivilegedRoles.Count -gt 0) { + $Passed = 'Failed' + $ResultMarkdown = "**Found workload identities assigned to privileged roles.**`n" + $ResultMarkdown += "| Service Principal Name | Privileged Role | Assignment Type |`n" + $ResultMarkdown += "| :--- | :--- | :--- |`n" + + $SortedAssignments = $WorkloadIdentitiesWithPrivilegedRoles | Sort-Object -Property PrincipalDisplayName + + foreach ($Assignment in $SortedAssignments) { + $SPLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($Assignment.PrincipalId)/appId/$($Assignment.AppId)/preferredSingleSignOnMode~/null/servicePrincipalType/Application/fromNav/" + $ResultMarkdown += "| [$($Assignment.PrincipalDisplayName)]($SPLink) | $($Assignment.RoleDisplayName) | $($Assignment.AssignmentType) |`n" + } + $ResultMarkdown += "`n" + $ResultMarkdown += "`n**Recommendation:** Review and remove privileged role assignments from workload identities unless absolutely necessary. Use least-privilege principles and consider alternative approaches like managed identities with specific API permissions instead of directory roles.`n" + } else { + $ResultMarkdown = "✅ **No workload identities found with privileged role assignments.**`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md new file mode 100644 index 000000000000..c97fc5a08508 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md @@ -0,0 +1,8 @@ +Controlling device proliferation is important. Set a reasonable limit on the number of devices each user can register in your Microsoft Entra ID tenant. Limiting device registration maintains security while allowing business flexibility. Microsoft Entra ID lets users register up to 50 devices by default. Reducing this number to 10 minimizes the attack surface and simplifies device management. + +**Remediation action** + +- Learn how to [limit the maximum number of devices per user](https://learn.microsoft.com/entra/identity/devices/manage-device-identities?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-device-settings). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 new file mode 100644 index 000000000000..e42e48ac94d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA21837 { + <# + .SYNOPSIS + Limit the maximum number of devices per user to 10 + #> + param($Tenant) + + $TestId = 'ZTNA21837' + #Tested + try { + # Get device registration policy + $DeviceSettings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceSettings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + return + } + + $UserQuota = $DeviceSettings.userDeviceQuota + $EntraDeviceSettingsLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/Overview' + + $Passed = 'Failed' + $CustomStatus = $null + + if ($null -eq $UserQuota -or $UserQuota -le 10) { + $Passed = 'Passed' + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota" + } elseif ($UserQuota -gt 10 -and $UserQuota -le 20) { + $CustomStatus = 'Investigate' + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota. Consider reducing to 10 or fewer." + } else { + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota. Consider reducing to 10 or fewer." + } + + if ($CustomStatus) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $CustomStatus -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md new file mode 100644 index 000000000000..966d20d34799 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md @@ -0,0 +1,10 @@ +Enabling the security key authentication method in Microsoft Entra ID mitigates the risk of credential theft and unauthorized access by requiring hardware-backed, phishing-resistant authentication. If this best practice is not followed, threat actors can exploit weak or reused passwords, perform credential stuffing attacks, and escalate privileges through compromised accounts. The kill chain begins with reconnaissance where attackers gather information about user accounts, followed by credential harvesting through various techniques like social engineering or data breaches. Attackers then gain initial access using stolen credentials, move laterally within the network by exploiting trust relationships, and establish persistence to maintain long-term access. Without hardware-backed authentication like FIDO2 security keys, attackers can bypass basic password defenses and multi-factor authentication, increasing the likelihood of data exfiltration and business disruption. Security keys provide cryptographic proof of identity that is bound to the specific device and cannot be replicated or phished, effectively breaking the attack chain at the initial access stage. + +**Remediation action** + +* [Enable passkey (FIDO2) authentication method](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-enable-passkey-fido2#enable-passkey-fido2-authentication-method) + +* [Authentication method policy management](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 new file mode 100644 index 000000000000..87bc89f02394 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21838 { + <# + .SYNOPSIS + Security key authentication method enabled + #> + param($Tenant) + + $TestId = 'ZTNA21838' + #Tested + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $Fido2Enabled = $Fido2Config.state -eq 'enabled' + $Passed = if ($Fido2Enabled) { 'Passed' } else { 'Failed' } + $StatusEmoji = if ($Fido2Enabled) { '✅' } else { '❌' } + + if ($Fido2Enabled) { + $ResultMarkdown = "Security key authentication method is enabled for your tenant, providing hardware-backed phishing-resistant authentication.`n`n" + } else { + $ResultMarkdown = "Security key authentication method is not enabled; users cannot register FIDO2 security keys for strong authentication.`n`n" + } + + $ResultMarkdown += "## FIDO2 security key authentication settings`n`n" + $ResultMarkdown += "$StatusEmoji **FIDO2 authentication method**`n" + $ResultMarkdown += "- Status: $($Fido2Config.state)`n" + + $IncludeTargetsDisplay = if ($Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0) { + ($Fido2Config.includeTargets | ForEach-Object { if ($_.id -eq 'all_users') { 'All users' } else { $_.id } }) -join ', ' + } else { + 'None' + } + $ResultMarkdown += "- Include targets: $IncludeTargetsDisplay`n" + + $ExcludeTargetsDisplay = if ($Fido2Config.excludeTargets -and $Fido2Config.excludeTargets.Count -gt 0) { + ($Fido2Config.excludeTargets | ForEach-Object { $_.id }) -join ', ' + } else { + 'None' + } + $ResultMarkdown += "- Exclude targets: $ExcludeTargetsDisplay`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md new file mode 100644 index 000000000000..036e0c9d2b1b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md @@ -0,0 +1,11 @@ +When passkey authentication isn't enabled in Microsoft Entra ID, organizations rely on password-based authentication methods that are vulnerable to phishing, credential theft, and replay attacks. Attackers can use stolen passwords to gain initial access, bypass traditional multifactor authentication through Adversary-in-the-Middle (AiTM) attacks, and establish persistent access through token theft. + +Passkeys provide phishing-resistant authentication using cryptographic proof that attackers can't phish, intercept, or replay. Enabling passkeys eliminates the foundational vulnerability that enables credential-based attack chains. + +**Remediation action** + +- Learn how to [enable the passkey authentication method](https://learn.microsoft.com/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-passkey-fido2-authentication-method). +- Learn how to [plan a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 new file mode 100644 index 000000000000..743461e1ff9e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21839 { + <# + .SYNOPSIS + Passkey authentication method enabled + #> + param($Tenant) + + $TestId = 'ZTNA21839' + #Tested + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + return + } + + $State = $Fido2Config.state + $IncludeTargets = $Fido2Config.includeTargets + $IsAttestationEnforced = $Fido2Config.isAttestationEnforced + $KeyRestrictions = $Fido2Config.keyRestrictions + + $Fido2Enabled = $State -eq 'enabled' + $HasIncludeTargets = $IncludeTargets -and $IncludeTargets.Count -gt 0 + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods' + + $ResultMarkdown = "`n## [Passkey authentication method details]($PortalLink)`n" + + $StatusDisplay = if ($Fido2Enabled) { 'Enabled ✅' } else { 'Disabled ❌' } + $ResultMarkdown += "- **Status** : $StatusDisplay`n" + + if ($Fido2Enabled) { + $ResultMarkdown += '- **Include targets** : ' + if ($IncludeTargets) { + $TargetsDisplay = ($IncludeTargets | ForEach-Object { + if ($_.id -eq 'all_users') { 'All users' } else { $_.id } + }) -join ', ' + $ResultMarkdown += "$TargetsDisplay`n" + } else { + $ResultMarkdown += "None`n" + } + + $ResultMarkdown += "- **Enforce attestation** : $IsAttestationEnforced`n" + + if ($KeyRestrictions) { + $ResultMarkdown += "- **Key restriction policy** :`n" + if ($null -ne $KeyRestrictions.isEnforced) { + $ResultMarkdown += " - **Enforce key restrictions** : $($KeyRestrictions.isEnforced)`n" + } else { + $ResultMarkdown += " - **Enforce key restrictions** : Not configured`n" + } + if ($KeyRestrictions.enforcementType) { + $ResultMarkdown += " - **Restrict specific keys** : $($KeyRestrictions.enforcementType)`n" + } else { + $ResultMarkdown += " - **Restrict specific keys** : Not configured`n" + } + } + } + + $Passed = if ($Fido2Enabled -and $HasIncludeTargets) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Passkey authentication method is enabled and configured for users in your tenant.$ResultMarkdown" + } else { + $ResultMarkdown = "Passkey authentication method is not enabled or not configured for any users in your tenant.$ResultMarkdown" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md new file mode 100644 index 000000000000..b83dff41f9dc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md @@ -0,0 +1,9 @@ +When security key attestation isn't enforced, threat actors can exploit weak or compromised authentication hardware to establish persistent presence within organizational environments. Without attestation validation, malicious actors can register unauthorized or counterfeit FIDO2 security keys that bypass hardware-backed security controls, enabling them to perform credential stuffing attacks using fabricated authenticators that mimic legitimate security keys. This initial access lets threat actors escalate privileges by using the trusted nature of hardware authentication methods, then move laterally through the environment by registering more compromised security keys on high-privilege accounts. The lack of attestation enforcement creates a pathway for threat actors to establish command and control through persistent hardware-based authentication methods, ultimately leading to data exfiltration or system compromise while maintaining the appearance of legitimate hardware-secured authentication throughout the attack chain. + +**Remediation action** + +- [Enable attestation enforcement through the Authentication methods policy configuration](https://learn.microsoft.com/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-passkey-fido2-authentication-method). +- [Configure approved list of security keys by Authenticator Attestation Globally Unique Identifier (AAGUID)](https://learn.microsoft.com/entra/identity/authentication/concept-fido2-hardware-vendor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 new file mode 100644 index 000000000000..9c007bd3b1f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 @@ -0,0 +1,72 @@ +function Invoke-CippTestZTNA21840 { + <# + .SYNOPSIS + Security key attestation is enforced + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21840' + + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $IsAttestationEnforced = $Fido2Config.isAttestationEnforced + $KeyRestrictions = $Fido2Config.keyRestrictions + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods' + + $ResultMarkdown = "`n## [Security key attestation policy details]($PortalLink)`n" + + $AttestationStatus = if ($IsAttestationEnforced -eq $true) { 'True ✅' } else { 'False ❌' } + $ResultMarkdown += "- **Enforce attestation** : $AttestationStatus`n" + + if ($KeyRestrictions) { + $ResultMarkdown += "- **Key restriction policy** :`n" + if ($null -ne $KeyRestrictions.isEnforced) { + $ResultMarkdown += " - **Enforce key restrictions** : $($KeyRestrictions.isEnforced)`n" + } else { + $ResultMarkdown += " - **Enforce key restrictions** : Not configured`n" + } + if ($KeyRestrictions.enforcementType) { + $ResultMarkdown += " - **Restrict specific keys** : $($KeyRestrictions.enforcementType)`n" + } else { + $ResultMarkdown += " - **Restrict specific keys** : Not configured`n" + } + + if ($KeyRestrictions.aaGuids -and $KeyRestrictions.aaGuids.Count -gt 0) { + $ResultMarkdown += " - **AAGUID** :`n" + foreach ($Guid in $KeyRestrictions.aaGuids) { + $ResultMarkdown += " - $Guid`n" + } + } + } + + $Passed = if ($IsAttestationEnforced -eq $true) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Security key attestation is properly enforced, ensuring only verified hardware authenticators can be registered.$ResultMarkdown" + } else { + $ResultMarkdown = "Security key attestation is not enforced, allowing unverified or potentially compromised security keys to be registered.$ResultMarkdown" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md new file mode 100644 index 000000000000..e88e14ab14ad --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md @@ -0,0 +1,10 @@ +Threat actors increasingly rely on prompt bombing and real-time phishing proxies to coerce or trick users into approving fraudulent multifactor authentication (MFA) challenges. Without the Microsoft Authenticator app's **Report suspicious activity** capability enabled, an attacker can iterate until a fatigued user accepts. This type of attack can lead to privilege escalation, persistence, lateral movement into sensitive workloads, data exfiltration, or destructive actions. + +When reporting is enabled for all users, any unexpected push or phone prompt can be actively flagged, immediately elevating the user to high user risk and generating a high-fidelity user risk detection (userReportedSuspiciousActivity) that risk-based Conditional Access policies or other response automation can use to block or require secure remediation. + +**Remediation action** + +- [Enable the report suspicious activity setting in the Microsoft Authenticator app](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-mfasettings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#report-suspicious-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 new file mode 100644 index 000000000000..4f17c2b6d6c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA21841 { + <# + .SYNOPSIS + Microsoft Authenticator app report suspicious activity setting is enabled + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21841' + + try { + # Get authentication methods policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Passed = 'Failed' + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AuthMethodsSettings' + + if ($AuthMethodsPolicy.reportSuspiciousActivitySettings) { + $ReportSettings = $AuthMethodsPolicy.reportSuspiciousActivitySettings + + $StateEnabled = $ReportSettings.state -eq 'enabled' + $TargetAllUsers = $false + + if ($ReportSettings.includeTarget) { + $TargetAllUsers = $ReportSettings.includeTarget.id -eq 'all_users' + } + + if ($StateEnabled -and $TargetAllUsers) { + $Passed = 'Passed' + $ResultMarkdown = "Authenticator app report suspicious activity is [enabled for all users]($PortalLink)." + } else { + if (-not $StateEnabled) { + $ResultMarkdown = "Authenticator app report suspicious activity is [not enabled]($PortalLink)." + } elseif (-not $TargetAllUsers) { + $ResultMarkdown = "Authenticator app report suspicious activity is [not configured for all users]($PortalLink)." + } + } + } else { + $ResultMarkdown = "Authenticator app report suspicious activity is [not enabled]($PortalLink)." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md new file mode 100644 index 000000000000..3fe9d727b41d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md @@ -0,0 +1,10 @@ +Self-Service Password Reset (SSPR) for administrators allows password changes to happen without strong secondary authentication factors or administrative oversight. Threat actors who compromise administrative credentials can use this capability to bypass other security controls and maintain persistent access to the environment. + +Once compromised, attackers can immediately reset the password to lock out legitimate administrators. They can then establish persistence, escalate privileges, and deploy malicious payloads undetected. + +**Remediation action** + +- [Disable SSPR for administrators by updating the authorization policy](https://learn.microsoft.com/entra/identity/authentication/concept-sspr-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#administrator-reset-policy-differences) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 new file mode 100644 index 000000000000..1f2629709fec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 @@ -0,0 +1,37 @@ +function Invoke-CippTestZTNA21842 { + <# + .SYNOPSIS + Block administrators from using SSPR + #> + param($Tenant) + + $TestId = 'ZTNA21842' + #Tested + try { + # Get authorization policy + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $AllowedToUseSspr = $AuthorizationPolicy.allowedToUseSspr + $Passed = 'Failed' + $UserMessage = '' + + if ($null -ne $AllowedToUseSspr -and $AllowedToUseSspr -eq $false) { + $Passed = 'Passed' + $UserMessage = '✅ Administrators are properly blocked from using Self-Service Password Reset, ensuring password changes go through controlled processes.' + } else { + $UserMessage = '❌ Administrators have access to Self-Service Password Reset, which bypasses security controls and administrative oversight.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $UserMessage -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md new file mode 100644 index 000000000000..a74cead90b2c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md @@ -0,0 +1,10 @@ +Threat actors frequently target legacy management interfaces such as the Azure AD PowerShell module (AzureAD and AzureADPreview), which don't support modern authentication, Conditional Access enforcement, or advanced audit logging. Continued use of these modules exposes the environment to risks including weak authentication, bypass of security controls, and incomplete visibility into administrative actions. Attackers can exploit these weaknesses to gain unauthorized access, escalate privileges, and perform malicious changes. + +Block the Azure AD PowerShell module and enforce the use of Microsoft Graph PowerShell or Microsoft Entra PowerShell to ensure that only secure, supported, and auditable management channels are available, which closes critical gaps in the attack chain. + +**Remediation action** + +- [Disable user sign-in for application](https://learn.microsoft.com/entra/identity/enterprise-apps/disable-user-sign-in-portal?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 new file mode 100644 index 000000000000..e0ddd6289188 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 @@ -0,0 +1,82 @@ +function Invoke-CippTestZTNA21844 { + <# + .SYNOPSIS + Block legacy Azure AD PowerShell module + #> + param($Tenant) + + $TestId = 'ZTNA21844' + #Tested + try { + # Azure AD PowerShell App ID + $AzureADPowerShellAppId = '1b730954-1685-4b74-9bfd-dac224a7b894' + + # Query for the Azure AD PowerShell service principal + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + $ServicePrincipal = $ServicePrincipals | Where-Object { $_.appId -eq $AzureADPowerShellAppId } + + $InvestigateStatus = $false + $AppName = 'Azure AD PowerShell' + $Passed = 'Failed' + + if (-not $ServicePrincipal -or $ServicePrincipal.Count -eq 0) { + $SummaryLines = @( + 'Summary', + '', + "- $AppName (Enterprise App not found in tenant)", + '- Sign in disabled: N/A', + '', + "$AppName has not been blocked by the organization." + ) + } else { + $SP = $ServicePrincipal[0] + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($SP.id)/appId/$($SP.appId)" + $ServicePrincipalMarkdown = "[$AppName]($PortalLink)" + + if ($SP.accountEnabled -eq $false) { + $Passed = 'Passed' + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: Yes', + '', + "$AppName is blocked in the tenant by turning off user sign in to the Azure Active Directory PowerShell Enterprise Application." + ) + } elseif ($SP.appRoleAssignmentRequired -eq $true) { + $InvestigateStatus = $true + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: No', + '- User assignment required: Yes', + '', + "App role assignment is required for $AppName. Review assignments and confirm that the app is inaccessible to users." + ) + } else { + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: No', + '', + "$AppName has not been blocked by the organization." + ) + } + } + + $ResultMarkdown = $SummaryLines -join "`n" + + if ($InvestigateStatus) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md new file mode 100644 index 000000000000..a46f492f1452 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md @@ -0,0 +1,12 @@ +Without Temporary Access Pass (TAP) enabled, organizations face significant challenges in securely bootstrapping user credentials, creating a vulnerability where users rely on weaker authentication mechanisms during their initial setup. When users cannot register phishing-resistant credentials like FIDO2 security keys or Windows Hello for Business due to lack of existing strong authentication methods, they remain exposed to credential-based attacks including phishing, password spray, or similar attacks. Threat actors can exploit this registration gap by targeting users during their most vulnerable state, when they have limited authentication options available and must rely on traditional username + password combinations. This exposure enables threat actors to compromise user accounts during the critical bootstrapping phase, allowing them to intercept or manipulate the registration process for stronger authentication methods, ultimately gaining persistent access to organizational resources and potentially escalating privileges before security controls are fully established. + +Enable TAP and use it with security info registration to secure this potential gap in your defenses. + +**Remediation action** + +- [Learn how to enable Temporary Access Pass in the Authentication methods policy](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-temporary-access-pass-policy) +- [Learn how to update authentication strength policies to include Temporary Access Pass](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strength-advanced-options?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn how to create a Conditional Access policy for security info registration with authentication strength enforcement](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-security-info-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 new file mode 100644 index 000000000000..b8d816cc2c73 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA21845 { + <# + .SYNOPSIS + Temporary access pass is enabled + #> + param($Tenant) + + $TestId = 'ZTNA21845' + #Tested + try { + # Get Temporary Access Pass configuration + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Check if TAP is disabled + if ($TAPConfig.state -ne 'enabled') { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown '❌ Temporary Access Pass is disabled in the tenant.' -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Get conditional access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $SecurityInfoPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.applications.includeUserActions -contains 'urn:user:registersecurityinfo' -and + $_.grantControls.authenticationStrength -ne $null + } + + $TAPEnabled = $TAPConfig.state -eq 'enabled' + $TargetsAllUsers = $TAPConfig.includeTargets | Where-Object { $_.id -eq 'all_users' } + $HasConditionalAccessEnforcement = $SecurityInfoPolicies.Count -gt 0 + + # Note: Authentication strength policy validation requires additional API calls not available in cache + # Simplified check: verify TAP is enabled, targets all users, and CA policies exist + $TAPSupportedInAuthStrength = $HasConditionalAccessEnforcement + + # Determine pass/fail status + $Passed = 'Failed' + if ($TAPEnabled -and $TargetsAllUsers -and $HasConditionalAccessEnforcement -and $TAPSupportedInAuthStrength) { + $Passed = 'Passed' + $ResultMarkdown = 'Temporary Access Pass is enabled, targeting all users, and enforced with conditional access policies.' + } elseif ($TAPEnabled -and $TargetsAllUsers -and $HasConditionalAccessEnforcement -and -not $TAPSupportedInAuthStrength) { + $ResultMarkdown = "Temporary Access Pass is enabled but authentication strength policies don't include TAP methods." + } elseif ($TAPEnabled -and $TargetsAllUsers -and -not $HasConditionalAccessEnforcement) { + $ResultMarkdown = 'Temporary Access Pass is enabled but no conditional access enforcement for security info registration found. Consider adding conditional access policies for stronger security.' + } else { + $ResultMarkdown = 'Temporary Access Pass is not properly configured or does not target all users.' + } + + $ResultMarkdown += "`n`n**Configuration summary**`n`n" + + $TAPStatus = if ($TAPConfig.state -eq 'enabled') { 'Enabled ✅' } else { 'Disabled ❌' } + $ResultMarkdown += "[Temporary Access Pass](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/Identity): $TAPStatus`n`n" + + $CAStatus = if ($HasConditionalAccessEnforcement) { 'Enabled ✅' } else { 'Not enabled ❌' } + $ResultMarkdown += "[Conditional Access policy for Security info registration](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies/fromNav/Identity): $CAStatus`n`n" + + $AuthStrengthStatus = if ($TAPSupportedInAuthStrength) { 'Enabled ✅' } else { 'Not enabled ❌' } + $ResultMarkdown += "[Authentication strength policy for Temporary Access Pass](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/AuthenticationStrength.ReactView/fromNav/Identity): $AuthStrengthStatus`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md new file mode 100644 index 000000000000..dc8bcf1e108f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md @@ -0,0 +1,8 @@ +When Temporary Access Pass (TAP) is configured to allow multiple uses, threat actors who compromise the credential can reuse it repeatedly during its validity period, extending their unauthorized access window beyond the intended single bootstrapping event. This situation creates an extended opportunity for threat actors to establish persistence by registering additional strong authentication methods under the compromised account during the credential lifetime. A reusable TAP that falls into the wrong hands lets threat actors conduct reconnaissance activities across multiple sessions, gradually mapping the environment and identifying high-value targets while maintaining legitimate-looking access patterns. The compromised TAP can also serve as a reliable backdoor mechanism, allowing threat actors to maintain access even if other compromised credentials are detected and revoked, since the TAP appears as a legitimate administrative tool in security logs. + +**Remediation action** + +- [Configure Temporary Access Pass for one-time use in authentication methods policy](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-temporary-access-pass-policy) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 new file mode 100644 index 000000000000..7788f63b92cb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21846 { + <# + .SYNOPSIS + Restrict Temporary Access Pass to Single Use + #> + param($Tenant) + + $TestId = 'ZTNA21846' + #Tested + try { + # Get Temporary Access Pass configuration + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Passed = if ($TAPConfig.isUsableOnce -eq $true) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Temporary Access Pass is configured for one-time use only.`n`n" + } else { + $ResultMarkdown = "Temporary Access Pass allows multiple uses during validity period.`n`n" + } + + $ResultMarkdown += "## Temporary Access Pass Configuration`n`n" + $ResultMarkdown += "| Setting | Value | Status |`n" + $ResultMarkdown += "| :------ | :---- | :----- |`n" + + $IsUsableOnceValue = if ($TAPConfig.isUsableOnce) { 'Enabled' } else { 'Disabled' } + $StatusEmoji = if ($Passed -eq 'Passed') { '✅ Pass' } else { '❌ Fail' } + + $ResultMarkdown += "| [One-time use restriction](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/) | $IsUsableOnceValue | $StatusEmoji |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md new file mode 100644 index 000000000000..3c5921bf5a0b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md @@ -0,0 +1,12 @@ +When on-premises password protection isn’t enabled or enforced, threat actors can use low-and-slow password spray with common variants, such as season+year+symbol or local terms, to gain initial access to Active Directory Domain Services accounts. Domain Controllers (DCs) can accept weak passwords when either of the following statements are true: + +- Microsoft Entra Password Protection DC agent isn't installed +- The password protection tenant setting is disabled or in audit-only mode + +With valid on-premises credentials, attackers laterally move by reusing passwords across endpoints, escalate to domain admin through local admin reuse or service accounts, and persist by adding backdoors, while weak or disabled enforcement produces fewer blocking events and predictable signals. Microsoft’s design requires a proxy that brokers policy from Microsoft Entra ID and a DC agent that enforces the combined global and tenant custom banned lists on password change/reset; consistent enforcement requires DC agent coverage on all DCs in a domain and using Enforced mode after audit evaluation. + +**Remediation action** + +- [Deploy Microsoft Entra password protection](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-password-ban-bad-on-premises-deploy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 new file mode 100644 index 000000000000..89d23d50c6c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestZTNA21847 { + <# + .SYNOPSIS + Password protection for on-premises is enabled + #> + param($Tenant) + + $TestId = 'ZTNA21847' + #Tested + try { + # Check if tenant has on-premises sync + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Organization' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Org = $Settings[0] + + if ($Org.onPremisesSyncEnabled -ne $true) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown '✅ **Pass**: This tenant is not synchronized to an on-premises environment.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Note: Password protection settings require groupSettings API which is not cached + # This test requires direct API access to check EnableBannedPasswordCheckOnPremises and BannedPasswordCheckOnPremisesMode + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md new file mode 100644 index 000000000000..2e03a7464592 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md @@ -0,0 +1,10 @@ +Organizations that don't populate and enforce the custom banned password list expose themselves to a systematic attack chain where threat actors exploit predictable organizational password patterns. These threat actors typically start with reconnaissance phases, where they gather open-source intelligence (OSINT) from websites, social media, and public records to identify likely password components. With this knowledge, they launch password spray attacks that test organization-specific password variations across multiple user accounts, staying under lockout thresholds to avoid detection. Without the protection the custom banned password list offers, employees often add familiar organizational terms to their passwords, like locations, product names, and industry terms, creating consistent attack vectors. + +The custom banned password list helps organizations plug this critical gap to prevent easily guessed passwords that could lead to initial access and subsequent lateral movement within the environment. + +**Remediation action** + +- [Learn how to enable custom banned password protection and add organizational terms](https://learn.microsoft.com/entra/identity/authentication/tutorial-configure-custom-password-protection?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 new file mode 100644 index 000000000000..2622b1616cb2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 @@ -0,0 +1,66 @@ +function Invoke-CippTestZTNA21848 { + <# + .SYNOPSIS + Add organizational terms to the banned password list + #> + param($Tenant) + + $TestId = 'ZTNA21848' + #Tested + try { + # Get password protection settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordProtectionSettings = $Settings | Where-Object { $_.templateId -eq '5cf42378-d67d-4f36-ba46-e8b86229381d' } + + if (-not $PasswordProtectionSettings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $EnableBannedPasswordCheck = ($PasswordProtectionSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' }).value + $BannedPasswordList = ($PasswordProtectionSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' }).value + + if ([string]::IsNullOrEmpty($BannedPasswordList)) { + $BannedPasswordList = $null + } + + $Passed = if ($EnableBannedPasswordCheck -eq $true -and $null -ne $BannedPasswordList) { 'Passed' } else { 'Failed' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + $Enforced = if ($EnableBannedPasswordCheck -eq $true) { 'Yes' } else { 'No' } + + # Split on tab characters to handle tab-delimited banned password entries + if ($BannedPasswordList) { + $BannedPasswordArray = $BannedPasswordList -split '\t' + } else { + $BannedPasswordArray = @() + } + + # Show up to 10 banned passwords, summarize if more exist + $MaxDisplay = 10 + if ($BannedPasswordArray.Count -gt $MaxDisplay) { + $DisplayList = $BannedPasswordArray[0..($MaxDisplay - 1)] + "...and $($BannedPasswordArray.Count - $MaxDisplay) more" + } else { + $DisplayList = $BannedPasswordArray + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "✅ Custom banned passwords are properly configured with organization-specific terms.`n`n" + } else { + $ResultMarkdown = "❌ Custom banned passwords are not enabled or lack organization-specific terms.`n`n" + } + + $ResultMarkdown += "## [Password protection settings]($PortalLink)`n`n" + $ResultMarkdown += "| Enforce custom list | Custom banned password list | Number of terms |`n" + $ResultMarkdown += "| :------------------ | :-------------------------- | :-------------- |`n" + $ResultMarkdown += "| $Enforced | $($DisplayList -join ', ') | $($BannedPasswordArray.Count) |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md new file mode 100644 index 000000000000..1d3d17582ab0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md @@ -0,0 +1,8 @@ +When Smart Lockout duration is configured below the default 60 seconds, threat actors can exploit shortened lockout periods to conduct password spray and credential stuffing attacks more effectively. Reduced lockout windows allow attackers to resume authentication attempts more rapidly, increasing their success probability while potentially evading detection systems that rely on longer observation periods. + +**Remediation action** + +- [Set Smart Lockout duration to 60 seconds or higher](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#manage-microsoft-entra-smart-lockout-values) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 new file mode 100644 index 000000000000..3014ca59afee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21849 { + <# + .SYNOPSIS + Smart lockout duration is set to a minimum of 60 + #> + param($Tenant) + + $TestId = 'ZTNA21849' + #Tested + try { + # Get password rule settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordRuleSettings = $Settings | Where-Object { $_.displayName -eq 'Password Rule Settings' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + if ($null -eq $PasswordRuleSettings) { + # Default is 60 seconds + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher (default).`n`n" + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | 60 (Default) |`n" + } else { + $LockoutDurationSetting = $PasswordRuleSettings.values | Where-Object { $_.name -eq 'LockoutDurationInSeconds' } + + if ($null -eq $LockoutDurationSetting) { + # Default is 60 seconds + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher (default).`n`n" + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | 60 (Default) |`n" + } else { + $LockoutDuration = [int]$LockoutDurationSetting.value + + if ($LockoutDuration -ge 60) { + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher.`n`n" + } else { + $Passed = 'Failed' + $ResultMarkdown = "❌ Smart Lockout duration is configured below 60 seconds.`n`n" + } + + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | $LockoutDuration |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Smart lockout duration is set to a minimum of 60' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Smart lockout duration is set to a minimum of 60' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md new file mode 100644 index 000000000000..fb2a9d166304 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md @@ -0,0 +1,10 @@ +When the smart lockout threshold is set to more than 10, threat actors can exploit the configuration to conduct reconnaissance, identify valid user accounts without triggering lockout protections, and establish initial access without detection. Once attackers gain initial access, they can move laterally through the environment by using the compromised account to access resources and escalate privileges. + +Smart lockout helps lock out bad actors who try to guess your users' passwords or use brute force methods to get in. Smart lockout recognizes sign-ins that come from valid users and treats them differently than ones of attackers and other unknown sources. A threshold of more than 10 provides insufficient protection against automated password spray attacks, making it easier for threat actors to compromise accounts while evading detection mechanisms. + +**Remediation action** + +- [Set Microsoft Entra smart lockout threshold to 10 or less](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 new file mode 100644 index 000000000000..cc372297ec95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestZTNA21850 { + <# + .SYNOPSIS + Smart lockout threshold set to 10 or less + #> + param($Tenant) + + $TestId = 'ZTNA21850' + #Tested + try { + # Get password rule settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordRuleSettings = $Settings | Where-Object { $_.displayName -eq 'Password Rule Settings' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + if ($null -eq $PasswordRuleSettings) { + $Passed = 'Failed' + $ResultMarkdown = '❌ Password rule settings template not found.' + } else { + $LockoutThresholdSetting = $PasswordRuleSettings.values | Where-Object { $_.name -eq 'LockoutThreshold' } + + if ($null -eq $LockoutThresholdSetting) { + $Passed = 'Failed' + $ResultMarkdown = "❌ Lockout threshold setting not found in [password rule settings]($PortalLink)." + } else { + $LockoutThreshold = [int]$LockoutThresholdSetting.value + + if ($LockoutThreshold -le 10) { + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart lockout threshold is set to 10 or below.`n`n" + } else { + $Passed = 'Failed' + $ResultMarkdown = "❌ Smart lockout threshold is configured above 10.`n`n" + } + + $ResultMarkdown += "## [Smart lockout configuration]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout threshold | $LockoutThreshold attempts |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Smart lockout threshold set to 10 or less' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Smart lockout threshold set to 10 or less' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md new file mode 100644 index 000000000000..833ca37a43d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md @@ -0,0 +1,14 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your organization. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +Attackers might gain access with external user accounts, if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. They might also gain access by exploiting the vulnerabilities of weaker MFA methods like SMS and phone calls using social engineering techniques, such as SIM swapping or phishing, to intercept the authentication codes. + +Once an attacker gains access to an account without MFA or a session with weak MFA methods, they might attempt to manipulate MFA settings (for example, registering attacker controlled methods) to establish persistence to plan and execute further attacks based on the privileges of the compromised accounts. + +**Remediation action** + +- [Deploy a Conditional Access policy to enforce authentication strength for guests](https://learn.microsoft.com/entra/identity/conditional-access/policy-guests-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- For organizations with a closer business relationship and vetting on their MFA practices, consider deploying cross-tenant access settings to accept the MFA claim. + - [Configure B2B collaboration cross-tenant access settings](https://learn.microsoft.com/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-change-inbound-trust-settings-for-mfa-and-device-claims) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md new file mode 100644 index 000000000000..362bc8627a4c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md @@ -0,0 +1,11 @@ +When guest identities remain active but unused for extended periods, threat actors can exploit these dormant accounts as entry vectors into the organization. Inactive guest accounts represent a significant attack surface because they often maintain persistent access permissions to resources, applications, and data while remaining unmonitored by security teams. Threat actors frequently target these accounts through credential stuffing, password spraying, or by compromising the guest's home organization to gain lateral access. Once an inactive guest account is compromised, attackers can utilize existing access grants to: +- Move laterally within the tenant +- Escalate privileges through group memberships or application permissions +- Establish persistence through techniques like creating more service principals or modifying existing permissions + +The prolonged dormancy of these accounts provides attackers with extended dwell time to conduct reconnaissance, exfiltrate sensitive data, and establish backdoors without detection, as organizations typically focus monitoring efforts on active internal users rather than external guest accounts. + +**Remediation action** +- [Monitor and clean up stale guest accounts](https://learn.microsoft.com/en-us/entra/identity/users/clean-up-stale-guest-accounts?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 new file mode 100644 index 000000000000..053e4f97af4a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 @@ -0,0 +1,93 @@ +function Invoke-CippTestZTNA21858 { + <# + .SYNOPSIS + Inactive guest identities are disabled or removed from the tenant + #> + param($Tenant) + #Tested + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + if (-not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + $InactivityThresholdDays = 90 + $Today = Get-Date + $EnabledGuests = $Guests | Where-Object { $_.AccountEnabled -eq $true } + + if (-not $EnabledGuests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest users found in the tenant' -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + $InactiveGuests = @() + foreach ($Guest in $EnabledGuests) { + $DaysSinceLastActivity = $null + + if ($Guest.signInActivity.lastSuccessfulSignInDateTime) { + $LastSignIn = [DateTime]$Guest.signInActivity.lastSuccessfulSignInDateTime + $DaysSinceLastActivity = ($Today - $LastSignIn).Days + } elseif ($Guest.createdDateTime) { + $Created = [DateTime]$Guest.createdDateTime + $DaysSinceLastActivity = ($Today - $Created).Days + } + + if ($null -ne $DaysSinceLastActivity -and $DaysSinceLastActivity -gt $InactivityThresholdDays) { + $InactiveGuests += $Guest + } + } + + if ($InactiveGuests.Count -gt 0) { + $Status = 'Failed' + + $ResultLines = @( + "Found $($InactiveGuests.Count) inactive guest user(s) with no sign-in activity in the last $InactivityThresholdDays days." + '' + "**Total enabled guests:** $($EnabledGuests.Count)" + "**Inactive guests:** $($InactiveGuests.Count)" + "**Inactivity threshold:** $InactivityThresholdDays days" + '' + '**Top 10 inactive guest users:**' + ) + + $Top10Guests = $InactiveGuests | Sort-Object { + if ($_.signInActivity.lastSuccessfulSignInDateTime) { + [DateTime]$_.signInActivity.lastSuccessfulSignInDateTime + } else { + [DateTime]$_.createdDateTime + } + } | Select-Object -First 10 + + foreach ($Guest in $Top10Guests) { + if ($Guest.signInActivity.lastSuccessfulSignInDateTime) { + $LastActivity = [DateTime]$Guest.signInActivity.lastSuccessfulSignInDateTime + $DaysInactive = [Math]::Round(($Today - $LastActivity).TotalDays, 0) + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName)) - Last sign-in: $DaysInactive days ago" + } else { + $Created = [DateTime]$Guest.createdDateTime + $DaysSinceCreated = [Math]::Round(($Today - $Created).TotalDays, 0) + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName)) - Never signed in (Created $DaysSinceCreated days ago)" + } + } + + if ($InactiveGuests.Count -gt 10) { + $ResultLines += "- ... and $($InactiveGuests.Count - 10) more inactive guest(s)" + } + + $ResultLines += '' + $ResultLines += '**Recommendation:** Review and remove or disable inactive guest accounts to reduce security risks.' + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Passed' + $Result = "All enabled guest users have been active within the last $InactivityThresholdDays days" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md new file mode 100644 index 000000000000..cc0b180268cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md @@ -0,0 +1,12 @@ +The activity logs and reports in Microsoft Entra can help detect unauthorized access attempts or identify when tenant configuration changes. When logs are archived or integrated with Security Information and Event Management (SIEM) tools, security teams can implement powerful monitoring and detection security controls, proactive threat hunting, and incident response processes. The logs and monitoring features can be used to assess tenant health and provide evidence for compliance and audits. + +If logs aren't regularly archived or sent to a SIEM tool for querying, it's challenging to investigate sign-in issues. The absence of historical logs means that security teams might miss patterns of failed sign-in attempts, unusual activity, and other indicators of compromise. This lack of visibility can prevent the timely detection of breaches, allowing attackers to maintain undetected access for extended periods. + +**Remediation action** + +- [Configure Microsoft Entra diagnostic settings](https://learn.microsoft.com/entra/identity/monitoring-health/howto-configure-diagnostic-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Integrate Microsoft Entra logs with Azure Monitor logs](https://learn.microsoft.com/entra/identity/monitoring-health/howto-integrate-activity-logs-with-azure-monitor-logs?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Stream Microsoft Entra logs to an event hub](https://learn.microsoft.com/entra/identity/monitoring-health/howto-stream-logs-to-event-hub?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md new file mode 100644 index 000000000000..df6a5fb37715 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md @@ -0,0 +1,11 @@ +Users considered at high risk by Microsoft Entra ID Protection have a high probability of compromise by threat actors. Threat actors can gain initial access via compromised valid accounts, where their suspicious activities continue despite triggering risk indicators. This oversight can enable persistence as threat actors perform activities that normally warrant investigation, such as unusual login patterns or suspicious inbox manipulation. + +A lack of triage of these risky users allows for expanded reconnaissance activities and lateral movement, with anomalous behavior patterns continuing to generate uninvestigated alerts. Threat actors become emboldened as security teams show they aren't actively responding to risk indicators. + +**Remediation action** + +- [Investigate high risk users](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in Microsoft Entra ID Protection +- [Remediate high risk users and unblock](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-remediate-unblock?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in Microsoft Entra ID Protection + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 new file mode 100644 index 000000000000..539f2fc8d3db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA21861 { + <# + .SYNOPSIS + All high-risk users are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21861' + #Tested + try { + # Get risky users from cache + $RiskyUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskyUsers' + + if (-not $RiskyUsers) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + # Filter for untriaged high-risk users (atRisk state with High risk level) + $UntriagedHighRiskUsers = $RiskyUsers | Where-Object { $_.riskState -eq 'atRisk' -and $_.riskLevel -eq 'high' } + + $Passed = if ($UntriagedHighRiskUsers.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All high-risk users are properly triaged in Entra ID Protection.' + } else { + $ResultMarkdown = "❌ Found **$($UntriagedHighRiskUsers.Count)** untriaged high-risk users in Entra ID Protection.`n`n" + $ResultMarkdown += "## Untriaged High-Risk Users`n`n" + $ResultMarkdown += "| User | Risk level | Last updated | Risk detail |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- |`n" + + foreach ($User in $UntriagedHighRiskUsers) { + $UserPrincipalName = if ($User.userPrincipalName) { $User.userPrincipalName } else { $User.id } + $RiskLevel = switch ($User.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $User.riskLevel } + } + $RiskDate = $User.riskLastUpdatedDateTime + $RiskDetail = $User.riskDetail + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($User.id)" + $ResultMarkdown += "| [$UserPrincipalName]($PortalLink) | $RiskLevel | $RiskDate | $RiskDetail |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md new file mode 100644 index 000000000000..5d6fdcb41824 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md @@ -0,0 +1,9 @@ +Compromised workload identities (service principals and applications) allow threat actors to gain persistent access without user interaction or multifactor authentication. Microsoft Entra ID Protection monitors these identities for suspicious activities like leaked credentials, anomalous API traffic, and malicious applications. Unaddressed risky workload identities enable privilege escalation, lateral movement, data exfiltration, and persistent backdoors that bypass traditional security controls. Organizations must systematically investigate and remediate these risks to prevent unauthorized access. + +**Remediation action** + +- [Investigate and remediate risky workload identities](https://learn.microsoft.com/entra/id-protection/concept-workload-identity-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#investigate-risky-workload-identities) +- [Apply Conditional Access policies for workload identities](https://learn.microsoft.com/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 new file mode 100644 index 000000000000..ed352e74e4fd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21862 { + <# + .SYNOPSIS + All risky workload identities are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21862' + #Tested + try { + # Get risky service principals and risk detections from cache + $UntriagedRiskyPrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskyServicePrincipals' | Where-Object { $_.riskState -eq 'atRisk' } + $ServicePrincipalRiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipalRiskDetections' + $UntriagedRiskDetections = $ServicePrincipalRiskDetections | Where-Object { $_.riskState -eq 'atRisk' } + + if (-not $UntriagedRiskyPrincipals -and -not $ServicePrincipalRiskDetections) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + $Passed = if (($UntriagedRiskyPrincipals.Count -eq 0) -and ($UntriagedRiskDetections.Count -eq 0)) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All risky workload identities have been triaged' + } else { + $RiskySPCount = $UntriagedRiskyPrincipals.Count + $RiskyDetectionCount = $UntriagedRiskDetections.Count + $ResultMarkdown = "❌ Found $RiskySPCount untriaged risky service principals and $RiskyDetectionCount untriaged risk detections`n`n" + + if ($RiskySPCount -gt 0) { + $ResultMarkdown += "## Untriaged Risky Service Principals`n`n" + $ResultMarkdown += "| Service Principal | Type | Risk Level | Risk State | Risk Last Updated |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- | :--- |`n" + foreach ($SP in $UntriagedRiskyPrincipals) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/SignOn/objectId/$($SP.id)/appId/$($SP.appId)" + $RiskLevel = switch ($SP.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $SP.riskLevel } + } + $RiskState = switch ($SP.riskState) { + 'atRisk' { '⚠️ At Risk' } + 'confirmedCompromised' { '🔴 Confirmed Compromised' } + 'dismissed' { '✅ Dismissed' } + 'remediated' { '✅ Remediated' } + default { $SP.riskState } + } + $ResultMarkdown += "| [$($SP.displayName)]($PortalLink) | $($SP.servicePrincipalType) | $RiskLevel | $RiskState | $($SP.riskLastUpdatedDateTime) |`n" + } + } + + if ($RiskyDetectionCount -gt 0) { + $ResultMarkdown += "`n`n## Untriaged Risk Detection Events`n`n" + $ResultMarkdown += "| Service Principal | Risk Level | Risk State | Risk Event Type | Risk Last Updated |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- | :--- |`n" + foreach ($Detection in $UntriagedRiskDetections) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/SignOn/objectId/$($Detection.servicePrincipalId)/appId/$($Detection.appId)" + $RiskLevel = switch ($Detection.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $Detection.riskLevel } + } + $RiskState = switch ($Detection.riskState) { + 'atRisk' { '⚠️ At Risk' } + 'confirmedCompromised' { '🔴 Confirmed Compromised' } + 'dismissed' { '✅ Dismissed' } + 'remediated' { '✅ Remediated' } + default { $Detection.riskState } + } + $ResultMarkdown += "| [$($Detection.servicePrincipalDisplayName)]($PortalLink) | $RiskLevel | $RiskState | $($Detection.riskEventType) | $($Detection.detectedDateTime) |`n" + } + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md new file mode 100644 index 000000000000..7729b0c365ac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md @@ -0,0 +1,11 @@ +Risky sign-ins flagged by Microsoft Entra ID Protection indicate a high probability of unauthorized access attempts. Threat actors use these sign-ins to gain an initial foothold. If these sign-ins remain uninvestigated, adversaries can establish persistence by repeatedly authenticating under the guise of legitimate users. + +A lack of response lets attackers execute reconnaissance, attempt to escalate their access, and blend into normal patterns. When untriaged sign-ins continue to generate alerts and there's no intervention, security gaps widen, facilitating lateral movement and defense evasion, as adversaries recognize the absence of an active security response. + +**Remediation action** + +- [Investigate risky sign-ins](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Remediate risks and unblock users](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-remediate-unblock?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 new file mode 100644 index 000000000000..eb20d361776d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA21863 { + <# + .SYNOPSIS + All high-risk sign-ins are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21863' + #Tested + try { + # Get risk detections from cache and filter for high-risk untriaged sign-ins + $RiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskDetections' + + if (-not $RiskDetections) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + $UntriagedHighRiskSignIns = $RiskDetections | Where-Object { $_.riskState -eq 'atRisk' -and $_.riskLevel -eq 'high' } + + $Passed = if ($UntriagedHighRiskSignIns.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ No untriaged risky sign ins in the tenant.' + } else { + $ResultMarkdown = "❌ Found **$($UntriagedHighRiskSignIns.Count)** untriaged high-risk sign ins.`n`n" + $ResultMarkdown += "## Untriaged High-Risk Sign ins`n`n" + $ResultMarkdown += "| Date | User Principal Name | Type | Risk Level |`n" + $ResultMarkdown += "| :---- | :---- | :---- | :---- |`n" + + foreach ($Risk in $UntriagedHighRiskSignIns) { + $UserPrincipalName = $Risk.userPrincipalName + $RiskLevel = switch ($Risk.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $Risk.riskLevel } + } + $RiskEventType = $Risk.riskEventType + $RiskDate = $Risk.detectedDateTime + $ResultMarkdown += "| $RiskDate | $UserPrincipalName | $RiskEventType | $RiskLevel |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md new file mode 100644 index 000000000000..fba7fae508d8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md @@ -0,0 +1,7 @@ +Without named locations configured in Microsoft Entra ID, threat actors can exploit the absence of location intelligence to conduct attacks without triggering location-based risk detections or security controls. When organizations fail to define named locations for trusted networks, branch offices, and known geographic regions, Microsoft Entra ID Protection can't assess location-based risk signals. Not having these policies in place can lead to increased false positives that create alert fatigue and potentially mask genuine threats. This configuration gap prevents the system from distinguishing between legitimate and illegitimate locations. For example, legitimate sign-ins from corporate networks and suspicious authentication attempts from high-risk locations (anonymous proxy networks, Tor exit nodes, or regions where the organization has no business presence). Threat actors can use this uncertainty to conduct credential stuffing attacks, password spray campaigns, and initial access attempts from malicious infrastructure without triggering location-based detections that would normally flag such activity as suspicious. Organizations can also lose the ability to implement adaptive security policies that could automatically apply stricter authentication requirements or block access entirely from untrusted geographic regions. Threat actors can maintain persistence and conduct lateral movement from any global location without encountering location-based security barriers, which should serve as an extra layer of defense against unauthorized access attempts. + +**Remediation action** + +- [Configure named locations to define trusted IP ranges and geographic regions for enhanced location-based risk detection and Conditional Access policy enforcement](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 new file mode 100644 index 000000000000..b250a508c639 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA21865 { + <# + .SYNOPSIS + Named locations are configured + #> + param($Tenant) + + $TestId = 'ZTNA21865' + #tested + try { + $NamedLocations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'NamedLocations' + + if (-not $NamedLocations) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $TrustedLocations = @($NamedLocations | Where-Object { $_.isTrusted -eq $true }) + $Passed = $TrustedLocations.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ Trusted named locations are configured.`n`n" + } else { + $ResultMarkdown = "❌ No trusted named locations configured.`n`n" + } + + $ResultMarkdown += "## Named Locations`n`n" + $ResultMarkdown += "$($NamedLocations.Count) named locations found.`n`n" + + if ($NamedLocations.Count -gt 0) { + $ResultMarkdown += "| Name | Type | Trusted |`n" + $ResultMarkdown += "| :--- | :--- | :------ |`n" + + foreach ($Location in $NamedLocations) { + $Name = $Location.displayName + $Type = if ($Location.'@odata.type' -eq '#microsoft.graph.ipNamedLocation') { 'IP-based' } + elseif ($Location.'@odata.type' -eq '#microsoft.graph.countryNamedLocation') { 'Country-based' } + else { 'Unknown' } + $Trusted = if ($Location.isTrusted) { 'Yes' } else { 'No' } + $ResultMarkdown += "| $Name | $Type | $Trusted |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md new file mode 100644 index 000000000000..bdfe46a9f74d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md @@ -0,0 +1,8 @@ +Microsoft Entra recommendations give organizations opportunities to implement best practices and optimize their security posture. Not acting on these items might result in an increased attack surface area, suboptimal operations, or poor user experience. + +**Remediation action** + +- [Address all active or postponed recommendations in the Microsoft Entra admin center](https://learn.microsoft.com/entra/identity/monitoring-health/overview-recommendations?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-does-it-work) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 new file mode 100644 index 000000000000..754dacc9ff22 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestZTNA21866 { + <# + .SYNOPSIS + All Microsoft Entra recommendations are addressed + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21866' + + try { + # Get directory recommendations from cache + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + return + } + + # Filter for unaddressed recommendations (active or postponed status) + $UnaddressedRecommendations = $Recommendations | Where-Object { $_.status -in @('active', 'postponed') } + + $Passed = if ($UnaddressedRecommendations.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All Entra Recommendations are addressed.' + } else { + $ResultMarkdown = "❌ Found $($UnaddressedRecommendations.Count) unaddressed Entra recommendations.`n`n" + $ResultMarkdown += "## Unaddressed Entra recommendations`n`n" + $ResultMarkdown += "| Display Name | Status | Insights | Priority |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- |`n" + + foreach ($Item in $UnaddressedRecommendations) { + $DisplayName = $Item.displayName + $Status = $Item.status + $Insights = $Item.insights + $Priority = $Item.priority + $ResultMarkdown += "| $DisplayName | $Status | $Insights | $Priority |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md new file mode 100644 index 000000000000..d10b375bc681 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md @@ -0,0 +1,9 @@ +Without owners, enterprise applications become orphaned assets that threat actors can exploit through credential harvesting and privilege escalation techniques. These applications often retain elevated permissions and access to sensitive resources while lacking proper oversight and security governance. The elevation of privilege to owners can raise a security concern, depending on the application's permissions. More critically, applications without an owner can create uncertainty in security monitoring where threat actors can establish persistence by using existing application permissions to access data or create backdoor accounts without triggering ownership-based detection mechanisms. + +When applications lack owners, security teams can't effectively conduct application lifecycle management. This gap leaves applications with potentially excessive permissions, outdated configurations, or compromised credentials that threat actors can discover through enumeration techniques and exploit to move laterally within the environment. The absence of ownership also prevents proper access reviews and permission audits, allowing threat actors to maintain long-term access through applications that should be decommissioned or had their permissions reduced. Not maintaining a clean application portfolio can provide persistent access vectors that can be used for data exfiltration or further compromise of the environment. + +**Remediation action** + +- [Assign owners to applications](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-app-owners?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md new file mode 100644 index 000000000000..c970477e6b2f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md @@ -0,0 +1,9 @@ +Without restrictions preventing guest users from registering and owning applications, threat actors can exploit external user accounts to establish persistent backdoor access to organizational resources through application registrations that might evade traditional security monitoring. When guest users own applications, compromised guest accounts can be used to exploit guest-owned applications that might have broad permissions. This vulnerability enables threat actors to request access to sensitive organizational data such as emails, files, and user information without the same level of scrutiny for internal user-owned applications. + +This attack vector is dangerous because guest-owned applications can be configured to request high-privilege permissions and, once granted consent, provide threat actors with legitimate OAuth tokens. Furthermore, guest-owned applications can serve as command and control infrastructure, so threat actors can maintain access even after the compromised guest account is detected and remediated. Application credentials and permissions might persist independently of the original guest user account, so threat actors can retain access. Guest-owned applications also complicate security auditing and governance efforts, as organizations might have limited visibility into the purpose and security posture of applications registered by external users. These hidden weaknesses in the application lifecycle management make it difficult to assess the true scope of data access granted to non-Microsoft entities through seemingly legitimate application registrations. + +**Remediation action** +- Remove guest users as owners from applications and service principals, and implement controls to prevent future guest user application ownership. +- [Restrict guest user access permissions](https://learn.microsoft.com/en-us/entra/identity/users/users-restrict-guest-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 new file mode 100644 index 000000000000..367b8a2a511f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 @@ -0,0 +1,105 @@ +function Invoke-CippTestZTNA21868 { + <# + .SYNOPSIS + Guests do not own apps in the tenant + #> + param($Tenant) + + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Guests -or -not $Apps -or -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + # Create a HashSet of guest user IDs for fast lookups + $GuestUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($guest in $Guests) { + [void]$GuestUserIds.Add($guest.id) + } + + # Initialize lists for guest owners + $GuestAppOwners = [System.Collections.Generic.List[object]]::new() + $GuestSpOwners = [System.Collections.Generic.List[object]]::new() + + # Check applications for guest owners + foreach ($app in $Apps) { + if ($app.owners -and $app.owners.Count -gt 0) { + foreach ($owner in $app.owners) { + if ($GuestUserIds.Contains($owner.id)) { + $ownerInfo = [PSCustomObject]@{ + id = $owner.id + displayName = $owner.displayName + userPrincipalName = $owner.userPrincipalName + appDisplayName = $app.displayName + appObjectId = $app.id + appId = $app.appId + } + $GuestAppOwners.Add($ownerInfo) + } + } + } + } + + # Check service principals for guest owners + foreach ($sp in $ServicePrincipals) { + if ($sp.owners -and $sp.owners.Count -gt 0) { + foreach ($owner in $sp.owners) { + if ($GuestUserIds.Contains($owner.id)) { + $ownerInfo = [PSCustomObject]@{ + id = $owner.id + displayName = $owner.displayName + userPrincipalName = $owner.userPrincipalName + spDisplayName = $sp.displayName + spObjectId = $sp.id + spAppId = $sp.appId + } + $GuestSpOwners.Add($ownerInfo) + } + } + } + } + + $HasGuestAppOwners = $GuestAppOwners.Count -gt 0 + $HasGuestSpOwners = $GuestSpOwners.Count -gt 0 + + if ($HasGuestAppOwners -or $HasGuestSpOwners) { + $Status = 'Failed' + $Result = "Guest users own applications or service principals`n`n" + + if ($HasGuestAppOwners -and $HasGuestSpOwners) { + $Result += "## Guest users own both applications and service principals`n`n" + $Result += "### Applications owned by guest users`n`n" + $Result += "| User Display Name | User Principal Name | Application |`n" + $Result += "| :---------------- | :------------------ | :---------- |`n" + $Result += ($GuestAppOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.appDisplayName) |" }) -join "`n" + $Result += "`n`n### Service principals owned by guest users`n`n" + $Result += "| User Display Name | User Principal Name | Service Principal |`n" + $Result += "| :---------------- | :------------------ | :---------------- |`n" + $Result += ($GuestSpOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.spDisplayName) |" }) -join "`n" + } elseif ($HasGuestAppOwners) { + $Result += "## Guest users own applications`n`n" + $Result += "| User Display Name | User Principal Name | Application |`n" + $Result += "| :---------------- | :------------------ | :---------- |`n" + $Result += ($GuestAppOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.appDisplayName) |" }) -join "`n" + } elseif ($HasGuestSpOwners) { + $Result += "## Guest users own service principals`n`n" + $Result += "| User Display Name | User Principal Name | Service Principal |`n" + $Result += "| :---------------- | :------------------ | :---------------- |`n" + $Result += ($GuestSpOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.spDisplayName) |" }) -join "`n" + } + } else { + $Status = 'Passed' + $Result = 'No guest users own any applications or service principals in the tenant' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md new file mode 100644 index 000000000000..17fa7ba85d04 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md @@ -0,0 +1,10 @@ +When enterprise applications lack both explicit assignment requirements AND scoped provisioning controls, threat actors can exploit this dual weakness to gain unauthorized access to sensitive applications and data. The highest risk occurs when applications are configured with the default setting: "Assignment required" is set to "No" *and* provisioning isn't required or scoped. This dangerous combination allows threat actors who compromise any user account within the tenant to immediately access applications with broad user bases, expanding their attack surface and potential for lateral movement within the organization. + +While an application with open assignment but proper provisioning scoping (such as department-based filters or group membership requirements) maintains security controls through the provisioning layer, applications lacking both controls create unrestricted access pathways that threat actors can exploit. When applications provision accounts for all users without assignment restrictions, threat actors can abuse compromised accounts to conduct reconnaissance activities, enumerate sensitive data across multiple systems, or use the applications as staging points for further attacks against connected resources. This unrestricted access model is dangerous for applications that have elevated permissions or are connected to critical business systems. Threat actors can use any compromised user account to access sensitive information, modify data, or perform unauthorized actions that the application's permissions allow. The absence of both assignment controls and provisioning scoping also prevents organizations from implementing proper access governance. Without proper governance, it's difficult to track who has access to which applications, when access was granted, and whether access should be revoked based on role changes or employment status. Furthermore, applications with broad provisioning scopes can create cascading security risks where a single compromised account provides access to an entire ecosystem of connected applications and services. + +**Remediation action** +- Evaluate business requirements to determine appropriate access control method. [Restrict a Microsoft Entra app to a set of users](https://learn.microsoft.com/en-us/entra/identity-platform/howto-restrict-your-app-to-a-set-of-users?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Configure enterprise applications to require assignment for sensitive applications. [Learn about the "Assignment required" enterprise application property](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/application-properties?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assignment-required). +- Implement scoped provisioning based on groups, departments, or attributes. [Create scoping filters](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/define-conditional-rules-for-provisioning-user-accounts?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-scoping-filters). +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 new file mode 100644 index 000000000000..dcaa09e51496 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestZTNA21869 { + <# + .SYNOPSIS + Enterprise applications must require explicit assignment or scoped provisioning + #> + param($Tenant) + #tenant + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $AppsWithoutAssignment = $ServicePrincipals | Where-Object { + $_.appRoleAssignmentRequired -eq $false -and + $null -ne $_.preferredSingleSignOnMode -and + $_.preferredSingleSignOnMode -in @('password', 'saml', 'oidc') -and + $_.accountEnabled -eq $true + } + + if (-not $AppsWithoutAssignment) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'All enterprise applications have explicit assignment requirements' -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $Status = 'Investigate' + + $ResultLines = @( + "Found $($AppsWithoutAssignment.Count) enterprise application(s) without assignment requirements." + '' + '**Applications without user assignment requirements:**' + ) + + $Top10Apps = $AppsWithoutAssignment | Select-Object -First 10 + foreach ($App in $Top10Apps) { + $ResultLines += "- $($App.displayName) (SSO: $($App.preferredSingleSignOnMode))" + } + + if ($AppsWithoutAssignment.Count -gt 10) { + $ResultLines += "- ... and $($AppsWithoutAssignment.Count - 10) more application(s)" + } + + $ResultLines += '' + $ResultLines += '**Note:** Full provisioning scope validation requires Graph API synchronization endpoint not available in cache.' + $ResultLines += '' + $ResultLines += '**Recommendation:** Enable user assignment requirements or configure scoped provisioning to limit application access.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md new file mode 100644 index 000000000000..91ed1541e019 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md @@ -0,0 +1,9 @@ +Without Self-Service Password Reset (SSPR) enabled, users with password-related issues must contact help desk support, which can cause in operational delays and lost productivity. There are also potential security vulnerabilities during the extended timeframe required for administrative password resets. These delays not only reduce employee efficiency (especially in time-sensitive roles), but also increase support costs and strain IT resources. During these periods, threat actors might exploit locked accounts through social engineering attacks targeting help desk personnel. Threat actors can potentially convince support staff to reset passwords for accounts they don't legitimately control, enabling initial access to user credentials. + +When users are unable to reset their own passwords through secure, automated processes, they frequently resort to insecure workarounds. Examples include sharing accounts with colleagues, using weak passwords that are easier to remember, or writing down passwords in discoverable locations, all of which expand the attack surface for credential harvesting techniques. The lack of SSPR forces users to maintain static passwords for longer periods between administrative resets. This type of password policy increases the likelihood that compromised credentials from previous breaches or password spray attacks remain valid and usable by threat actors. The absence of user-controlled password reset capabilities also delays the response time for users to secure their accounts when they suspect compromise. This delay allows threat actors extended persistence within compromised accounts to perform reconnaissance, establish other access methods, or exfiltrate sensitive data before the account is eventually reset through administrative channels + +**Remediation action** + +- [Enable Self-Service Password Reset](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-enable-sspr?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md new file mode 100644 index 000000000000..41edcdf8e024 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md @@ -0,0 +1,8 @@ +Threat actors can exploit the lack of multifactor authentication during new device registration. Once authenticated, they can register rogue devices, establish persistence, and circumvent security controls tied to trusted endpoints. This foothold enables attackers to exfiltrate sensitive data, deploy malicious applications, or move laterally, depending on the permissions of the accounts being used by the attacker. Without MFA enforcement, risk escalates as adversaries can continuously reauthenticate, evade detection, and execute objectives. + +**Remediation action** + +- [Deploy a Conditional Access policy to require multifactor authentication for device registration](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-device-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 new file mode 100644 index 000000000000..0ccf79cf8d6b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 @@ -0,0 +1,106 @@ +function Invoke-CippTestZTNA21872 { + <# + .SYNOPSIS + Require multifactor authentication for device join and device registration using user action + #> + param($Tenant) + + $TestId = 'ZTNA21872' + #Tested + try { + # Get conditional access policies and device registration policy from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $DeviceRegistrationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + if (-not $DeviceRegistrationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $MfaRequiredInDeviceSettings = $DeviceRegistrationPolicy.multiFactorAuthConfiguration -eq 'required' + + # Filter for enabled device registration CA policies + $DeviceRegistrationPolicies = $CAPolicies | Where-Object { + ($_.state -eq 'enabled') -and + ($_.conditions.applications.includeUserActions -eq 'urn:user:registerdevice') + } + + # Check each policy to see if it properly requires MFA + $ValidPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $DeviceRegistrationPolicies) { + $RequiresMfa = $false + + # Check if the policy directly requires MFA + if ($Policy.grantControls.builtInControls -contains 'mfa') { + $RequiresMfa = $true + } + + # Check if the policy uses any authentication strength + if ($null -ne $Policy.grantControls.authenticationStrength) { + $RequiresMfa = $true + } + + # If the policy requires MFA, add it to valid policies + if ($RequiresMfa) { + $ValidPolicies.Add($Policy) + } + } + + # Determine pass/fail conditions + if ($MfaRequiredInDeviceSettings) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **MFA is configured incorrectly.** Device Settings has 'Require Multi-Factor Authentication to register or join devices' set to Yes. According to best practices, this should be set to No, and MFA should be enforced through Conditional Access policies instead.`n`n" + } elseif ($DeviceRegistrationPolicies.Count -eq 0) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **No Conditional Access policies found** for device registration or device join. Create a policy that requires MFA for these user actions.`n`n" + } elseif ($ValidPolicies.Count -eq 0) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **Conditional Access policies found**, but they're not correctly configured. Policies should require MFA or appropriate authentication strength.`n`n" + } else { + $Passed = 'Passed' + $ResultMarkdown = "✅ **Properly configured Conditional Access policies found** that require MFA for device registration/join actions.`n`n" + } + + # Add device settings information + $ResultMarkdown += "## Device Settings Configuration`n`n" + $ResultMarkdown += "| Setting | Value | Recommended Value | Status |`n" + $ResultMarkdown += "| :------ | :---- | :---------------- | :----- |`n" + + $DeviceSettingStatus = if ($MfaRequiredInDeviceSettings) { '❌ Should be set to No' } else { '✅ Correctly configured' } + $DeviceSettingValue = if ($MfaRequiredInDeviceSettings) { 'Yes' } else { 'No' } + $ResultMarkdown += "| Require Multi-Factor Authentication to register or join devices | $DeviceSettingValue | No | $DeviceSettingStatus |`n" + + # Add policies information if any found + if ($DeviceRegistrationPolicies.Count -gt 0) { + $ResultMarkdown += "`n## Device Registration/Join Conditional Access Policies`n`n" + $ResultMarkdown += "| Policy Name | State | Requires MFA | Status |`n" + $ResultMarkdown += "| :---------- | :---- | :----------- | :----- |`n" + + foreach ($Policy in $DeviceRegistrationPolicies) { + $PolicyName = $Policy.displayName + $PolicyState = $Policy.state + $PolicyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $PolicyNameLink = "[$PolicyName]($PolicyLink)" + + # Check if this policy is properly configured + $IsValid = $Policy -in $ValidPolicies + $RequiresMfaText = if ($IsValid) { 'Yes' } else { 'No' } + $StatusText = if ($IsValid) { '✅ Properly configured' } else { '❌ Incorrectly configured' } + + $ResultMarkdown += "| $PolicyNameLink | $PolicyState | $RequiresMfaText | $StatusText |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md new file mode 100644 index 000000000000..9b70ca640329 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md @@ -0,0 +1,10 @@ +Limiting guest access to a known and approved list of tenants helps to prevent threat actors from exploiting unrestricted guest access to establish initial access through compromised external accounts or by creating accounts in untrusted tenants. Threat actors who gain access through an unrestricted domain can discover internal resources, users, and applications to perform additional attacks. + +Organizations should take inventory and configure an allowlist or blocklist to control B2B collaboration invitations from specific organizations. Without these controls, threat actors might use social engineering techniques to obtain invitations from legitimate internal users. + +**Remediation action** + +- Learn how to [set up a list of approved domains](https://learn.microsoft.com/entra/external-id/allow-deny-list?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#add-an-allowlist). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 new file mode 100644 index 000000000000..3adfce12208b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21874 { + <# + .SYNOPSIS + Guest access is limited to approved tenants + #> + param($Tenant) + + $TestId = 'ZTNA21874' + #Trusted + try { + # Get B2B Management Policy from cache + $B2BManagementPolicyObject = New-CIPPDbRequest -TenantFilter $Tenant -Type 'B2BManagementPolicy' + + if (-not $B2BManagementPolicyObject) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'External collaboration' + return + } + + $Passed = 'Failed' + $AllowedDomains = $null + + if ($B2BManagementPolicyObject.definition) { + $B2BManagementPolicy = ($B2BManagementPolicyObject.definition | ConvertFrom-Json).B2BManagementPolicy + $AllowedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.AllowedDomains + + if ($AllowedDomains -and $AllowedDomains.Count -gt 0) { + $Passed = 'Passed' + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ Allow/Deny lists of domains to restrict external collaboration are configured.' + } else { + $ResultMarkdown = '❌ Allow/Deny lists of domains to restrict external collaboration are not configured.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'External collaboration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md new file mode 100644 index 000000000000..df03f46ad2ee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md @@ -0,0 +1,9 @@ +Access packages configured to allow "All users" instead of specific connected organizations expose your organization to uncontrolled external access. Threat actors can exploit this by requesting access through compromised external accounts from unauthorized organizations, bypassing the principle of least privilege. This enables initial access, reconnaissance, privilege escalation, and lateral movement within your environment. + +**Remediation action** + +- [Define trusted organizations as connected organizations](https://learn.microsoft.com/entra/id-governance/entitlement-management-organization?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#view-the-list-of-connected-organizations) +- [Configure access packages to only allow specific connected organizations](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#allow-users-not-in-your-directory-to-request-the-access-package) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md new file mode 100644 index 000000000000..ed479604ad5b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md @@ -0,0 +1,15 @@ +Inviting external guests is beneficial for organizational collaboration. However, in the absence of an assigned internal sponsor for each guest, these accounts might persist within the directory without clear accountability. This oversight creates a risk: threat actors could potentially compromise an unused or unmonitored guest account, and then establish an initial foothold within the tenant. Once granted access as an apparent "legitimate" user, an attacker might explore accessible resources and attempt privilege escalation, which could ultimately expose sensitive information or critical systems. An unmonitored guest account might therefore become the vector for unauthorized data access or a significant security breach. A typical attack sequence might use the following pattern, all achieved under the guise of a standard external collaborator: + +1. Initial access gained through compromised guest credentials +1. Persistence due to a lack of oversight. +1. Further escalation or lateral movement if the guest account possesses group memberships or elevated permissions. +1. Execution of malicious objectives. + +Mandating that every guest account is assigned to a sponsor directly mitigates this risk. Such a requirement ensures that each external user is linked to a responsible internal party who is expected to regularly monitor and attest to the guest's ongoing need for access. The sponsor feature within Microsoft Entra ID supports accountability by tracking the inviter and preventing the proliferation of "orphaned" guest accounts. When a sponsor manages the guest account lifecycle, such as removing access when collaboration concludes, the opportunity for threat actors to exploit neglected accounts is substantially reduced. This best practice is consistent with Microsoft’s guidance to require sponsorship for business guests as part of an effective guest access governance strategy. It strikes a balance between enabling collaboration and enforcing security, as it guarantees that each guest user's presence and permissions remain under ongoing internal oversight. + +**Remediation action** +- For each guest user that has no sponsor, assign a sponsor in Microsoft Entra ID. + - [Add a sponsor to a guest user in the Microsoft Entra admin center](https://learn.microsoft.com/en-us/entra/external-id/b2b-sponsors?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - [Add a sponsor to a guest user using Microsoft Graph](https://learn.microsoft.com/graph/api/user-post-sponsors?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 new file mode 100644 index 000000000000..a2272933ab8d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA21877 { + <# + .SYNOPSIS + All guests have a sponsor + #> + param($Tenant) + #Tested + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + if (-not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + if ($Guests.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest accounts found in the tenant' -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $GuestsWithoutSponsors = $Guests | Where-Object { -not $_.sponsors -or $_.sponsors.Count -eq 0 } + + if ($GuestsWithoutSponsors.Count -eq 0) { + $Status = 'Passed' + $Result = 'All guest accounts in the tenant have an assigned sponsor' + } else { + $Status = 'Failed' + + $ResultLines = @( + "Found $($GuestsWithoutSponsors.Count) guest user(s) without sponsors out of $($Guests.Count) total guests." + '' + "**Total guests:** $($Guests.Count)" + "**Guests without sponsors:** $($GuestsWithoutSponsors.Count)" + "**Guests with sponsors:** $($Guests.Count - $GuestsWithoutSponsors.Count)" + '' + '**Top 10 guests without sponsors:**' + ) + + $Top10Guests = $GuestsWithoutSponsors | Select-Object -First 10 + foreach ($Guest in $Top10Guests) { + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName))" + } + + if ($GuestsWithoutSponsors.Count -gt 10) { + $ResultLines += "- ... and $($GuestsWithoutSponsors.Count - 10) more guest(s)" + } + + $ResultLines += '' + $ResultLines += '**Recommendation:** Assign sponsors to all guest accounts for better accountability and lifecycle management.' + + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md new file mode 100644 index 000000000000..762389bcce22 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md @@ -0,0 +1,7 @@ +Entitlement management policies without expiration dates create persistent access that threat actors can exploit. When user assignments lack time bounds, compromised credentials maintain indefinite access, enabling attackers to establish persistence, escalate privileges through additional access packages, and conduct long-term malicious activities while remaining undetected. + +**Remediation action** + +- [Configure expiration settings for access packages](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-lifecycle-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#specify-a-lifecycle) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md new file mode 100644 index 000000000000..5d2c99793491 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md @@ -0,0 +1,11 @@ +## Overview + +Without enforced approval on entitlement management policies that allow external users, a threat actor can self-orchestrate initial access by submitting unattended requests that are auto-approved. Each successful request provisions or reuses a guest user object and grant access to resources included in the access package, immediately expanding reconnaissance surface. From that foothold the actor can enumerate additional collaboration surfaces, harvest shared files, and probe mis-scoped app permissions to escalate (e.g., abusing over-privileged group-based roles or app role assignments). They can persist by requesting multiple packages with overlapping or escalating privileges, re-extending assignments if expiration or reviews are lax, or by creating indirect sharing links inside granted SharePoint or Teams resources. Absence of an approval gate also removes a human anomaly check (sponsor/internal/external approver) that would otherwise filter suspicious volume, timing, geography, or improbable justification patterns, shrinking detection dwell-time. This accelerates lateral movement (pivoting through granted group memberships to additional workloads), facilitates data staging and exfiltration from SharePoint/Teams or app APIs, and increases the blast radius before downstream controls (access reviews, expirations) eventually trigger. Microsoft’s guidance explicitly states approval should be required when external users can request access to ensure oversight; bypassing it effectively converts a governed onboarding path into an unsupervised provisioning for external identities, expanding tenant-wide risk until manual discovery or periodic governance cycles intervene. + +**Remediation action** + +- [Configure approval for external request policies (toggle Require approval)](https://learn.microsoft.com/en-us/entra/id-governance/entitlement-management-access-package-approval-policy ) + + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md new file mode 100644 index 000000000000..9440b98d3f84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md @@ -0,0 +1,8 @@ +Set up risk-based Conditional Access policies for workload identities based on risk policy in Microsoft Entra ID to make sure only trusted and verified workloads use sensitive resources. Without these policies, threat actors can compromise workload identities with minimal detection and perform further attacks. Without conditional controls to detect anomalous activity and other risks, there's no check against malicious operations like token forgery, access to sensitive resources, and disruption of workloads. The lack of automated containment mechanisms increases dwell time and affects the confidentiality, integrity, and availability of critical services. + +**Remediation action** +Create a risk-based Conditional Access policy for workload identities. +- [Create a risk-based Conditional Access policy](https://learn.microsoft.com/en-us/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-risk-based-conditional-access-policy) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 new file mode 100644 index 000000000000..797cb134fddf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 @@ -0,0 +1,133 @@ +function Invoke-CippTestZTNA21883 { + <# + .SYNOPSIS + Checks if workload identities are configured with risk-based policies + + .DESCRIPTION + Verifies that Conditional Access policies exist that: + - Block authentication based on service principal risk + - Are enabled + - Target service principals + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get Conditional Access policies from cache + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $Policies) { + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'No Conditional Access policies found in cache.' + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Filter for policies that: + # - Block authentication + # - Include service principals + # - Are enabled + $MatchedPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $Policies) { + $blocksAuth = $false + if ($Policy.grantControls.builtInControls) { + foreach ($control in $Policy.grantControls.builtInControls) { + if ($control -eq 'block') { + $blocksAuth = $true + break + } + } + } + + $includesSP = $false + if ($Policy.conditions.clientApplications.includeServicePrincipals) { + $includesSP = $true + } + + $isEnabled = $Policy.state -eq 'enabled' + + if ($blocksAuth -and $includesSP -and $isEnabled) { + $MatchedPolicies.Add($Policy) + } + } + + # Determine pass/fail + if ($MatchedPolicies.Count -ge 1) { + $Status = 'Passed' + $ResultMarkdown = "✅ **Pass**: Workload identities are protected by risk-based Conditional Access policies.`n`n" + $ResultMarkdown += "## Matching policies`n`n" + $ResultMarkdown += "| Policy name | State | Service principals | Grant controls |`n" + $ResultMarkdown += "| :---------- | :---- | :----------------- | :------------- |`n" + + foreach ($Policy in $MatchedPolicies) { + $policyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $policyName = if ($Policy.displayName) { $Policy.displayName } else { 'Unnamed' } + $spTargets = if ($Policy.conditions.clientApplications.includeServicePrincipals) { + ($Policy.conditions.clientApplications.includeServicePrincipals | Select-Object -First 3) -join ', ' + if ($Policy.conditions.clientApplications.includeServicePrincipals.Count -gt 3) { + $spTargets += " (and $($Policy.conditions.clientApplications.includeServicePrincipals.Count - 3) more)" + } + $spTargets + } else { + 'None' + } + $grants = if ($Policy.grantControls.builtInControls) { + $Policy.grantControls.builtInControls -join ', ' + } else { + 'None' + } + $ResultMarkdown += "| [$policyName]($policyLink) | $($Policy.state) | $spTargets | $grants |`n" + } + } else { + $Status = 'Failed' + $ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that protect workload identities with risk-based controls.`n`n" + $ResultMarkdown += 'Workload identities should be protected by policies that block authentication when service principal risk is detected.' + } + + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21883 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md new file mode 100644 index 000000000000..58e372f02ff9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md @@ -0,0 +1,8 @@ +When workload identities operate without network-based Conditional Access restrictions, threat actors can compromise service principal credentials through various methods, such as exposed secrets in code repositories or intercepted authentication tokens. The threat actors can then use these credentials from any location globally. This unrestricted access enables threat actors to perform reconnaissance activities, enumerate resources, and map the tenant's infrastructure while appearing legitimate. Once the threat actor is established within the environment, they can move laterally between services, access sensitive data stores, and potentially escalate privileges by exploiting overly permissive service-to-service permissions. The lack of network restrictions makes it impossible to detect anomalous access patterns based on location. This gap allows threat actors to maintain persistent access and exfiltrate data over extended periods without triggering security alerts that would normally flag connections from unexpected networks or geographic locations. + +**Remediation action** + +- [Configure Conditional Access for workload identities](https://learn.microsoft.com/en-us/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create named locations](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Follow best practices for securing workload identities](https://learn.microsoft.com/en-us/entra/workload-id/workload-identities-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md new file mode 100644 index 000000000000..27edc026f6e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md @@ -0,0 +1,10 @@ +OAuth applications configured with URLs that include wildcards, or URL shorteners increase the attack surface for threat actors. Insecure redirect URIs (reply URLs) might allow adversaries to manipulate authentication requests, hijack authorization codes, and intercept tokens by directing users to attacker-controlled endpoints. Wildcard entries expand the risk by permitting unintended domains to process authentication responses, while shortener URLs might facilitate phishing and token theft in uncontrolled environments. + +Without strict validation of redirect URIs, attackers can bypass security controls, impersonate legitimate applications, and escalate their privileges. This misconfiguration enables persistence, unauthorized access, and lateral movement, as adversaries exploit weak OAuth enforcement to infiltrate protected resources undetected. + +**Remediation action** + +- [Check the redirect URIs for your application registrations.](https://learn.microsoft.com/entra/identity-platform/reply-url?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) Make sure the redirect URIs don't have *.azurewebsites.net, wildcards, or URL shorteners. + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md new file mode 100644 index 000000000000..988a4cbca44d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md @@ -0,0 +1,15 @@ +When applications that support both authentication and provisioning through Microsoft Entra aren't configured for automatic provisioning, organizations become vulnerable to identity lifecycle gaps that threat actors can exploit. Without automated provisioning, user accounts might persist in applications after employees leave the organization. This vulnerability creates dormant accounts that threat actors can discover through reconnaissance activities. These orphaned accounts often retain their original access permissions but lack active monitoring, making them attractive targets for initial access. + +Threat actors who gain access to these dormant accounts can use them to establish persistence in the target application, as the accounts appear legitimate and might not trigger security alerts. From these compromised application accounts, attackers can: + +- Attempt to escalate their privileges by exploring application-specific permissions +- Access sensitive data stored within the application +- Use the application as a pivot point to access other connected systems + +The lack of centralized identity lifecycle management also makes it difficult for security teams to detect when an attacker is using these orphaned accounts, as the accounts might not be properly correlated with the organization's active user directory. + +**Remediation action** + +- [Configure application provisioning for missing applications](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/configure-automatic-user-provisioning-portal?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 new file mode 100644 index 000000000000..674390fef96b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestZTNA21886 { + <# + .SYNOPSIS + Applications are configured for automatic user provisioning + #> + param($Tenant) + #Tested + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + return + } + + $AppsWithSSO = $ServicePrincipals | Where-Object { + $null -ne $_.preferredSingleSignOnMode -and + $_.preferredSingleSignOnMode -in @('password', 'saml', 'oidc') -and + $_.accountEnabled -eq $true + } + + if (-not $AppsWithSSO) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No applications configured for SSO found' -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + return + } + + $Status = 'Investigate' + + $ResultLines = @( + "Found $($AppsWithSSO.Count) application(s) configured for SSO." + '' + '**Applications with SSO enabled:**' + ) + + $SSOByType = $AppsWithSSO | Group-Object -Property preferredSingleSignOnMode + foreach ($Group in $SSOByType) { + $ResultLines += '' + $ResultLines += "**$($Group.Name.ToUpper()) SSO** ($($Group.Count) app(s)):" + $Top5 = $Group.Group | Select-Object -First 5 + foreach ($App in $Top5) { + $ResultLines += "- $($App.displayName)" + } + if ($Group.Count -gt 5) { + $ResultLines += "- ... and $($Group.Count - 5) more" + } + } + + $ResultLines += '' + $ResultLines += '**Note:** Provisioning template and job validation requires Graph API synchronization endpoint not available in cache.' + $ResultLines += '' + $ResultLines += '**Recommendation:** Configure automatic user provisioning for applications that support it to ensure consistent access management.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md new file mode 100644 index 000000000000..cb1d03b47129 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md @@ -0,0 +1,8 @@ +Unmaintained or orphaned redirect URIs in app registrations create significant security vulnerabilities when they reference domains that no longer point to active resources. Threat actors can exploit these "dangling" DNS entries by provisioning resources at abandoned domains, effectively taking control of redirect endpoints. This vulnerability enables attackers to intercept authentication tokens and credentials during OAuth 2.0 flows, which can lead to unauthorized access, session hijacking, and potential broader organizational compromise. + +**Remediation action** + +- [Redirect URI (reply URL) outline and restrictions](https://learn.microsoft.com/entra/identity-platform/reply-url?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md new file mode 100644 index 000000000000..d5f422aa0a93 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md @@ -0,0 +1,10 @@ +Organizations with extensive user-facing password surfaces expose multiple entry points for threat actors to launch credential-based attacks. Frequent user interactions with password prompts across applications, devices, and workflows increase the risk of exploitation. Threat actors often begin with credential stuffing—using compromised credentials from data breaches—followed by password spraying to test common passwords across multiple accounts. Once initial access is gained, they conduct credential discovery by examining browser password stores, cached credentials in memory, and credential managers to harvest additional authentication materials. These stolen credentials enable lateral movement, allowing attackers to access more systems and applications, often escalating privileges by targeting administrative accounts that still rely on password authentication. In the persistence phase, attackers may create backdoor accounts with password-based access or weaken defenses by altering password policies. To evade detection, they leverage legitimate authentication channels, blending in with normal user activity while maintaining persistent access to organizational resources. + +**Remediation action** + + * [Enable passwordless authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication) + + * [Deploy FIDO2 security keys](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-enable-passkey-fido2) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 new file mode 100644 index 000000000000..87caa4f5c591 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 @@ -0,0 +1,147 @@ +function Invoke-CippTestZTNA21889 { + <# + .SYNOPSIS + Checks if organization has reduced password surface area by enabling multiple passwordless authentication methods + + .DESCRIPTION + Verifies that both FIDO2 Security Keys and Microsoft Authenticator are enabled with proper configuration + to reduce reliance on passwords. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get authentication methods policy from cache + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve authentication methods policy from cache.' + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Extract FIDO2 and Microsoft Authenticator configurations + $Fido2Config = $null + $AuthenticatorConfig = $null + + if ($AuthMethodsPolicy.authenticationMethodConfigurations) { + foreach ($config in $AuthMethodsPolicy.authenticationMethodConfigurations) { + if ($config.id -eq 'Fido2') { + $Fido2Config = $config + } + if ($config.id -eq 'MicrosoftAuthenticator') { + $AuthenticatorConfig = $config + } + } + } + + # Check FIDO2 configuration + $Fido2Enabled = $Fido2Config.state -eq 'enabled' + $Fido2HasTargets = $Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0 + $Fido2Valid = $Fido2Enabled -and $Fido2HasTargets + + # Check Microsoft Authenticator configuration + $AuthEnabled = $AuthenticatorConfig.state -eq 'enabled' + $AuthHasTargets = $AuthenticatorConfig.includeTargets -and $AuthenticatorConfig.includeTargets.Count -gt 0 + $AuthMode = $null + if ($AuthenticatorConfig.includeTargets) { + foreach ($target in $AuthenticatorConfig.includeTargets) { + if ($target.authenticationMode) { + $AuthMode = $target.authenticationMode + break + } + } + } + + if ([string]::IsNullOrEmpty($AuthMode)) { + $AuthMode = 'Not configured' + $AuthModeValid = $false + } else { + $AuthModeValid = ($AuthMode -eq 'any') -or ($AuthMode -eq 'deviceBasedPush') + } + $AuthValid = $AuthEnabled -and $AuthHasTargets -and $AuthModeValid + + # Determine pass/fail + $Status = if ($Fido2Valid -and $AuthValid) { 'Passed' } else { 'Failed' } + + # Build result message + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Your organization has implemented multiple passwordless authentication methods reducing password exposure.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Your organization relies heavily on password-based authentication, creating security vulnerabilities.`n`n" + } + + # Build detailed markdown table + $ResultMarkdown += "## Passwordless authentication methods`n`n" + $ResultMarkdown += "| Method | State | Include targets | Authentication mode | Status |`n" + $ResultMarkdown += "| :----- | :---- | :-------------- | :------------------ | :----- |`n" + + # FIDO2 row + $Fido2State = if ($Fido2Enabled) { '✅ Enabled' } else { '❌ Disabled' } + $Fido2TargetsDisplay = if ($Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0) { + "$($Fido2Config.includeTargets.Count) target(s)" + } else { + 'None' + } + $Fido2Status = if ($Fido2Valid) { '✅ Pass' } else { '❌ Fail' } + $ResultMarkdown += "| FIDO2 Security Keys | $Fido2State | $Fido2TargetsDisplay | N/A | $Fido2Status |`n" + + # Microsoft Authenticator row + $AuthState = if ($AuthEnabled) { '✅ Enabled' } else { '❌ Disabled' } + $AuthTargetsDisplay = if ($AuthenticatorConfig.includeTargets -and $AuthenticatorConfig.includeTargets.Count -gt 0) { + "$($AuthenticatorConfig.includeTargets.Count) target(s)" + } else { + 'None' + } + $AuthModeDisplay = if ($AuthModeValid) { "✅ $AuthMode" } else { "❌ $AuthMode" } + $AuthStatus = if ($AuthValid) { '✅ Pass' } else { '❌ Fail' } + $ResultMarkdown += "| Microsoft Authenticator | $AuthState | $AuthTargetsDisplay | $AuthModeDisplay | $AuthStatus |`n" + + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21889 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md new file mode 100644 index 000000000000..9c49450beb91 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md @@ -0,0 +1,8 @@ +Configuring password reset notifications for administrator roles in Microsoft Entra ID enhances security by notifying privileged administrators when another administrator resets their password. This visibility helps detect unauthorized or suspicious activity that could indicate credential compromise or insider threats. Without these notifications, malicious actors could exploit elevated privileges to establish persistence, escalate access, or extract sensitive data. Proactive notifications support quick action, preserve privileged access integrity, and strengthen the overall security posture. + +**Remediation action** + +- [Notify all admins when other admins reset their passwords](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-sspr-howitworks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#notify-all-admins-when-other-admins-reset-their-passwords) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md new file mode 100644 index 000000000000..2d46aed74112 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md @@ -0,0 +1 @@ +When sign-ins are not restricted to managed devices, threat actors can use unmanaged devices to establish initial access to organizational resources. Unmanaged devices lack organizational security controls, endpoint protection, and compliance verification, creating entry points for threat actors to exploit. Unmanaged devices lack centralized security controls, compliance monitoring, and policy enforcement, creating gaps in the organization's security perimeter. Threat actors can compromise these devices through malware, keyloggers, or credential harvesting tools, then use the captured credentials to authenticate corporate resources without detection. Accounts that are assigned administrative rights are a target for attackers. Requiring users with these highly privileged rights to perform actions from devices marked as compliant or Microsoft Entra hybrid joined can help limit possible exposure. Without device compliance requirements, threat actors can maintain persistence through uncontrolled endpoints, bypass security monitoring that would typically detect anomalous behavior on managed devices and use unmanaged devices as staging areas for lateral movement across network resources. diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 new file mode 100644 index 000000000000..12dd5a45cb6d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 @@ -0,0 +1,153 @@ +function Invoke-CippTestZTNA21892 { + <# + .SYNOPSIS + Verifies that all sign-in activity is restricted to managed devices + + .DESCRIPTION + Checks for Conditional Access policies that: + - Apply to all users + - Apply to all applications + - Require compliant or hybrid joined devices + - Are enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get Conditional Access policies from cache + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $Policies) { + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'No Conditional Access policies found in cache.' + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Find policies that require managed devices for all users and apps + $MatchingPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $Policies) { + # Check if applies to all users + $appliesToAllUsers = $false + if ($Policy.conditions.users.includeUsers) { + foreach ($user in $Policy.conditions.users.includeUsers) { + if ($user -eq 'All') { + $appliesToAllUsers = $true + break + } + } + } + + # Check if applies to all apps + $appliesToAllApps = $false + if ($Policy.conditions.applications.includeApplications) { + foreach ($app in $Policy.conditions.applications.includeApplications) { + if ($app -eq 'All') { + $appliesToAllApps = $true + break + } + } + } + + # Check if requires compliant or hybrid joined device + $requiresCompliantDevice = $false + $requiresHybridJoined = $false + if ($Policy.grantControls.builtInControls) { + foreach ($control in $Policy.grantControls.builtInControls) { + if ($control -eq 'compliantDevice') { + $requiresCompliantDevice = $true + } + if ($control -eq 'domainJoinedDevice') { + $requiresHybridJoined = $true + } + } + } + + $isEnabled = $Policy.state -eq 'enabled' + + # Policy matches if enabled, applies to all users/apps, and requires managed device + if ($isEnabled -and $appliesToAllUsers -and $appliesToAllApps -and ($requiresCompliantDevice -or $requiresHybridJoined)) { + $MatchingPolicies.Add([PSCustomObject]@{ + PolicyId = $Policy.id + PolicyState = $Policy.state + DisplayName = $Policy.displayName + AllUsers = $appliesToAllUsers + AllApps = $appliesToAllApps + CompliantDevice = $requiresCompliantDevice + HybridJoinedDevice = $requiresHybridJoined + IsFullyCompliant = $isEnabled -and $appliesToAllUsers -and $appliesToAllApps -and ($requiresCompliantDevice -or $requiresHybridJoined) + }) + } + } + + # Determine pass/fail + if ($MatchingPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultMarkdown = "✅ **Pass**: Conditional Access policies require managed devices for all sign-in activity.`n`n" + $ResultMarkdown += "## Matching policies`n`n" + $ResultMarkdown += "| Policy name | State | All users | All apps | Compliant device | Hybrid joined |`n" + $ResultMarkdown += "| :---------- | :---- | :-------- | :------- | :--------------- | :------------ |`n" + + foreach ($Policy in $MatchingPolicies) { + $policyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.PolicyId)" + $policyName = if ($Policy.DisplayName) { $Policy.DisplayName } else { 'Unnamed' } + $allUsers = if ($Policy.AllUsers) { '✅' } else { '❌' } + $allApps = if ($Policy.AllApps) { '✅' } else { '❌' } + $compliant = if ($Policy.CompliantDevice) { '✅' } else { '❌' } + $hybrid = if ($Policy.HybridJoinedDevice) { '✅' } else { '❌' } + + $ResultMarkdown += "| [$policyName]($policyLink) | $($Policy.PolicyState) | $allUsers | $allApps | $compliant | $hybrid |`n" + } + } else { + $Status = 'Failed' + $ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that require managed devices for all sign-in activity.`n`n" + $ResultMarkdown += 'Organizations should enforce that all sign-ins come from managed devices (compliant or hybrid Azure AD joined) to ensure security controls are applied.' + } + + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21892 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md new file mode 100644 index 000000000000..c27b1172c0bb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md @@ -0,0 +1,8 @@ +Require multifactor authentication (MFA) registration for all users. Based on studies, your account is more than 99% less likely to be compromised if you're using MFA. Even if you don't require MFA all the time, this policy ensures your users are ready when it's needed. + +**Remediation action** + +- [Configure the multifactor authentication registration policy](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-configure-mfa-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md new file mode 100644 index 000000000000..4e2033aae288 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md @@ -0,0 +1,9 @@ +Service principals without proper authentication credentials (certificates or client secrets) create security vulnerabilities that allow threat actors to impersonate these identities. This can lead to unauthorized access, lateral movement within your environment, privilege escalation, and persistent access that's difficult to detect and remediate. + +**Remediation action** + +- For your organization's service principals: [Add certificates or client secrets to the app registration](https://learn.microsoft.com/entra/identity-platform/how-to-add-credentials?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- For external service principals: Review and remove any unnecessary credentials to reduce security risk + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 new file mode 100644 index 000000000000..facaf67d0489 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA21896 { + <# + .SYNOPSIS + Service principals do not have certificates or credentials associated with them + #> + param($Tenant) + #tested + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $MicrosoftOwnerId = 'f8cdef31-a31e-4b4a-93e4-5f571e91255a' + $SPsWithPassCreds = $ServicePrincipals | Where-Object { + $_.passwordCredentials -and $_.passwordCredentials.Count -gt 0 -and $_.appOwnerOrganizationId -ne $MicrosoftOwnerId + } + $SPsWithKeyCreds = $ServicePrincipals | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.appOwnerOrganizationId -ne $MicrosoftOwnerId + } + + if (-not $SPsWithPassCreds -and -not $SPsWithKeyCreds) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'Service principals do not have credentials associated with them' -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $TotalWithCreds = $SPsWithPassCreds.Count + $SPsWithKeyCreds.Count + $Status = 'Investigate' + + $ResultLines = @( + "Found $TotalWithCreds service principal(s) with credentials configured in the tenant, which represents a security risk." + '' + ) + + if ($SPsWithPassCreds.Count -gt 0) { + $ResultLines += "**Service principals with password credentials:** $($SPsWithPassCreds.Count)" + $ResultLines += '' + } + + if ($SPsWithKeyCreds.Count -gt 0) { + $ResultLines += "**Service principals with key credentials (certificates):** $($SPsWithKeyCreds.Count)" + $ResultLines += '' + } + + $ResultLines += '**Security implications:**' + $ResultLines += '- Service principals with credentials can be compromised if not properly secured' + $ResultLines += '- Password credentials are less secure than managed identities or certificate-based authentication' + $ResultLines += '- Consider using managed identities where possible to eliminate credential management' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md new file mode 100644 index 000000000000..98fe3bbbd22b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md @@ -0,0 +1,9 @@ +Access packages for guest users without expiration dates or access reviews allow indefinite access to organizational resources. Compromised or stale guest accounts enable threat actors to maintain persistent, undetected access for lateral movement, privilege escalation, and data exfiltration. Without periodic validation, organizations cannot identify when business relationships change or when guest access is no longer needed. + +**Remediation action** + +- [Configure lifecycle settings](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-lifecycle-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure access reviews](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-reviews-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md new file mode 100644 index 000000000000..d00aeef5317c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md @@ -0,0 +1,18 @@ +Token protection policies in Entra ID tenants are crucial for safeguarding authentication tokens from misuse and unauthorized access. Without these policies, threat actors can intercept and manipulate tokens, leading to unauthorized access to sensitive resources. This can result in data exfiltration, lateral movement within the network, and potential compromise of privileged accounts. + +When token protection is not properly configured, threat actors can exploit several attack vectors: + +1. **Token theft and replay attacks** - Attackers can steal authentication tokens from compromised devices and replay them from different locations +2. **Session hijacking** - Without secure sign-in session controls, attackers can hijack legitimate user sessions +3. **Cross-platform token abuse** - Tokens issued for one platform (like mobile) can be misused on other platforms (like web browsers) +4. **Persistent access** - Compromised tokens can provide long-term unauthorized access without triggering security alerts + +The attack chain typically involves initial access through token theft, followed by privilege escalation and persistence, ultimately leading to data exfiltration and impact across the organization's Microsoft 365 environment. + +**Remediation action** +- [Configure Conditional Access policies as per the best practices](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection#create-a-conditional-access-policy) +- [Microsoft Entra Conditional Access token protection explained](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection) +- [Configure session controls in Conditional Access](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-conditional-access-session) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 new file mode 100644 index 000000000000..879879680277 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 @@ -0,0 +1,192 @@ +function Invoke-CippTestZTNA21941 { + <# + .SYNOPSIS + Checks if token protection policies are enforced for Windows platform + + .DESCRIPTION + Verifies that Conditional Access policies with token protection (secureSignInSession) are + configured for Windows devices, requiring Office 365 and Microsoft Graph access through + protected sessions to prevent token theft. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Required Office 365 and Graph app IDs + $RequiredAppIds = @( + '00000002-0000-0ff1-ce00-000000000000', # Office 365 Exchange Online + '00000003-0000-0ff1-ce00-000000000000' # Microsoft Graph + ) + + # Filter for policies with Windows platform and secureSignInSession control + $TokenProtectionPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CAPolicies) { + # Check if policy has Windows platform + $hasWindows = $false + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'windows' -or + $policy.conditions.platforms.includePlatforms -contains 'all') { + $hasWindows = $true + } + } + + # Check if policy has secureSignInSession control + $hasTokenProtection = $false + if ($policy.sessionControls -and $policy.sessionControls.signInFrequency) { + if ($policy.sessionControls.signInFrequency.isEnabled -eq $true -and + $policy.sessionControls.signInFrequency.authenticationType -eq 'primaryAndSecondaryAuthentication') { + $hasTokenProtection = $true + } + } + + # Alternative check for newer API format + if (-not $hasTokenProtection -and $policy.sessionControls) { + foreach ($prop in $policy.sessionControls.PSObject.Properties) { + if ($prop.Name -like '*secureSignIn*' -or $prop.Name -like '*tokenProtection*') { + if ($prop.Value.isEnabled -eq $true) { + $hasTokenProtection = $true + break + } + } + } + } + + if ($hasWindows -and $hasTokenProtection -and $policy.state -eq 'enabled') { + # Check if policy includes users + $hasUsers = $false + if ($policy.conditions.users.includeUsers -and $policy.conditions.users.includeUsers.Count -gt 0) { + $hasUsers = $true + } + + # Check if policy includes required apps + $hasRequiredApps = $false + if ($policy.conditions.applications.includeApplications) { + $includeAll = $policy.conditions.applications.includeApplications -contains 'All' + if ($includeAll) { + $hasRequiredApps = $true + } else { + $foundApps = 0 + foreach ($appId in $RequiredAppIds) { + if ($policy.conditions.applications.includeApplications -contains $appId) { + $foundApps++ + } + } + if ($foundApps -eq $RequiredAppIds.Count) { + $hasRequiredApps = $true + } + } + } + + $policyStatus = 'Unknown' + if ($hasUsers -and $hasRequiredApps) { + $policyStatus = 'Pass' + } elseif (-not $hasUsers) { + $policyStatus = 'No users targeted' + } elseif (-not $hasRequiredApps) { + $policyStatus = 'Missing required apps' + } + + $TokenProtectionPolicies.Add([PSCustomObject]@{ + Name = $policy.displayName + State = $policy.state + HasUsers = $hasUsers + HasRequiredApps = $hasRequiredApps + Status = $policyStatus + }) + } + } + + # Determine overall status + $PassingPolicies = $TokenProtectionPolicies | Where-Object { $_.Status -eq 'Pass' } + $Status = if ($PassingPolicies.Count -gt 0) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Token protection policies are properly configured for Windows devices.`n`n" + $ResultMarkdown += "Token protection binds authentication tokens to devices, making stolen tokens unusable on other devices.`n`n" + } else { + if ($TokenProtectionPolicies.Count -eq 0) { + $ResultMarkdown = "❌ **Fail**: No token protection policies found for Windows devices.`n`n" + $ResultMarkdown += "Without token protection, authentication tokens can be stolen and replayed from other devices.`n`n" + $ResultMarkdown += '[Create token protection policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)' + } else { + $ResultMarkdown = "❌ **Fail**: Token protection policies exist but are not properly configured.`n`n" + $ResultMarkdown += "Policies must target users and include both Office 365 and Microsoft Graph applications.`n`n" + } + } + + if ($TokenProtectionPolicies.Count -gt 0) { + $ResultMarkdown += "## Token protection policies`n`n" + $ResultMarkdown += "| Policy Name | State | Has Users | Has Required Apps | Status |`n" + $ResultMarkdown += "| :---------- | :---- | :-------- | :---------------- | :----- |`n" + + foreach ($policy in $TokenProtectionPolicies) { + $stateIcon = if ($policy.State -eq 'enabled') { '✅' } else { '❌' } + $usersIcon = if ($policy.HasUsers) { '✅' } else { '❌' } + $appsIcon = if ($policy.HasRequiredApps) { '✅' } else { '❌' } + $statusIcon = if ($policy.Status -eq 'Pass') { '✅' } else { '❌' } + + $ResultMarkdown += "| $($policy.Name) | $stateIcon $($policy.State) | $usersIcon | $appsIcon | $statusIcon $($policy.Status) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + } + + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21941 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md new file mode 100644 index 000000000000..eeb1984a2ec4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md @@ -0,0 +1,10 @@ +Without Local Admin Password Solution (LAPS) deployed, threat actors exploit static local administrator passwords to establish initial access. After threat actors compromise a single device with a shared local administrator credential, they can move laterally across the environment and authenticate to other systems sharing the same password. Compromised local administrator access gives threat actors system-level privileges, letting them disable security controls, install persistent backdoors, exfiltrate sensitive data, and establish command and control channels. + +The automated password rotation and centralized management of LAPS closes this security gap and adds controls to help manage who has access to these critical accounts. Without solutions like LAPS, you can't detect or respond to unauthorized use of local administrator accounts, giving threat actors extended dwell time to achieve their objectives while remaining undetected. + +**Remediation action** + +- [Configure Windows Local Administrator Password Solution](https://learn.microsoft.com/entra/identity/devices/howto-manage-local-admin-passwords?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 new file mode 100644 index 000000000000..49d3af03ca3e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21953 { + <# + .SYNOPSIS + Checks if Windows Local Administrator Password Solution (LAPS) is deployed in the tenant + + .DESCRIPTION + Verifies that LAPS is enabled in the device registration policy to automatically manage + and rotate local administrator passwords on Windows devices. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + + try { + # Get device registration policy from cache + $DeviceRegPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceRegPolicy) { + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve device registration policy from cache.' + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if LAPS is enabled + $LapsEnabled = $DeviceRegPolicy.localAdminPassword.isEnabled -eq $true + + $Status = if ($LapsEnabled) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: LAPS is deployed. Your organization can automatically manage and rotate local administrator passwords on all Entra joined and hybrid Entra joined Windows devices.`n`n" + $ResultMarkdown += '[Learn more](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } else { + $ResultMarkdown = "❌ **Fail**: LAPS is not deployed. Local administrator passwords may be weak, shared, or unchanged, increasing security risk.`n`n" + $ResultMarkdown += '[Deploy LAPS](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } + + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21953 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md new file mode 100644 index 000000000000..a265a8360a51 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md @@ -0,0 +1,8 @@ +When non-administrator users can access their own BitLocker keys, threat actors who compromise user credentials through phishing, credential stuffing, or malware-based keyloggers gain direct access to encryption keys without requiring privilege escalation. This access vector enables threat actors to persist on the compromised device by accessing encrypted volumes. Once threat actors obtain BitLocker keys, they can decrypt sensitive data stored on the device, including cached credentials, local databases, and confidential files. Without proper restrictions, a single compromised user account provides immediate access to all encrypted data on that device, negating the primary security benefit of disk encryption and creating a pathway for lateral movement to network resources accessed from the compromised system. + +**Remediation action** + +[Configure BitLocker key access restrictions through Microsoft Entra admin](https://learn.microsoft.com/en-us/entra/identity/devices/manage-device-identities#view-or-copy-bitlocker-keys) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 new file mode 100644 index 000000000000..f74c4b538b44 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21954 { + <# + .SYNOPSIS + Checks if non-admin users are restricted from reading BitLocker recovery keys + + .DESCRIPTION + Verifies that the authorization policy restricts non-admin users from reading BitLocker + recovery keys for their own devices, reducing the risk of unauthorized key access. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get authorization policy from cache + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve authorization policy from cache.' + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if BitLocker key reading is restricted (should be false) + $IsRestricted = $AuthPolicy.defaultUserRolePermissions.allowedToReadBitlockerKeysForOwnedDevice -eq $false + + $Status = if ($IsRestricted) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Non-admin users cannot read BitLocker recovery keys, reducing the risk of unauthorized access.`n`n" + $ResultMarkdown += '[Review settings](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/PoliciesTemplateBlade)' + } else { + $ResultMarkdown = "❌ **Fail**: Non-admin users can read BitLocker recovery keys for their own devices, which may allow unauthorized access.`n`n" + $ResultMarkdown += '[Restrict access](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/PoliciesTemplateBlade)' + } + + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21954 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md new file mode 100644 index 000000000000..09ba1be61884 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md @@ -0,0 +1,8 @@ +When local administrators on Microsoft Entra joined devices aren't properly managed, threat actors with compromised credentials can execute device takeover attacks by removing organizational administrators and disabling the device's connection to Microsoft Entra. This lack of control results in complete loss of organizational control, creating orphaned assets that can't be managed or recovered. + +**Remediation action** + +- [Manage the local administrators on Microsoft Entra joined devices](https://learn.microsoft.com/entra/identity/devices/assign-local-admin?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#manage-the-microsoft-entra-joined-device-local-administrator-role) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 new file mode 100644 index 000000000000..dc63407c4576 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21955 { + <# + .SYNOPSIS + Checks if local administrator management is properly configured on Entra joined devices + + .DESCRIPTION + Verifies that Global Administrators are automatically added as local administrators on + Entra joined devices to enable emergency access and device management. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get device registration policy from cache + $DeviceRegPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceRegPolicy) { + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve device registration policy from cache.' + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if global admins are added as local admins + $GlobalAdminsEnabled = $DeviceRegPolicy.azureADJoin.localAdmins.enableGlobalAdmins -eq $true + + $Status = if ($GlobalAdminsEnabled) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Global Administrators are automatically added as local administrators on Entra joined devices.`n`n" + $ResultMarkdown += '[Review settings](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } else { + $ResultMarkdown = "❌ **Fail**: Global Administrators are not automatically added as local administrators, which may limit emergency access capabilities.`n`n" + $ResultMarkdown += '[Configure settings](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } + + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21955 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md new file mode 100644 index 000000000000..0dc276f4daf8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md @@ -0,0 +1,6 @@ +Configure protected actions for Conditional Access policy create, update and delete permissions, and Authentication Context update permission. Refer to the guidance on common stronger Conditional Access policies: + +**Remediation action** +[What are protected actions in Microsoft Entra ID? - Microsoft Entra ID | Microsoft Learn](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/protected-actions-overview) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 new file mode 100644 index 000000000000..6e62ea83874f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestZTNA21964 { + <# + .SYNOPSIS + Enable protected actions to secure Conditional Access policy creation and changes + #> + param($Tenant) + + $TestId = 'ZTNA21964' + #Tested + try { + $AuthStrengths = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationStrengths' + + if (-not $AuthStrengths) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $BuiltInStrengths = @($AuthStrengths | Where-Object { $_.policyType -eq 'builtIn' }) + $CustomStrengths = @($AuthStrengths | Where-Object { $_.policyType -eq 'custom' }) + + $ResultMarkdown = "## Authentication Strength Policies`n`n" + $ResultMarkdown += "Found $($AuthStrengths.Count) authentication strength policies ($($BuiltInStrengths.Count) built-in, $($CustomStrengths.Count) custom).`n`n" + + if ($CustomStrengths.Count -gt 0) { + $ResultMarkdown += "### Custom Authentication Strengths`n`n" + $ResultMarkdown += "| Name | Combinations |`n" + $ResultMarkdown += "| :--- | :---------- |`n" + foreach ($strength in $CustomStrengths) { + $combinations = if ($strength.allowedCombinations) { $strength.allowedCombinations.Count } else { 0 } + $ResultMarkdown += "| $($strength.displayName) | $combinations methods |`n" + } + } + + $Status = 'Passed' + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md new file mode 100644 index 000000000000..fa3494bd6918 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md @@ -0,0 +1,9 @@ +Microsoft Entra seamless single sign-on (Seamless SSO) is a legacy authentication feature designed to provide passwordless access for domain-joined devices that are not hybrid Microsoft Entra ID joined. Seamless SSO relies on Kerberos authentication and is primarily beneficial for older operating systems like Windows 7 and Windows 8.1, which do not support Primary Refresh Tokens (PRT). If these legacy systems are no longer present in the environment, continuing to use Seamless SSO introduces unnecessary complexity and potential security exposure. Threat actors could exploit misconfigured or stale Kerberos tickets, or compromise the `AZUREADSSOACC` computer account in Active Directory, which holds the Kerberos decryption key used by Microsoft Entra ID. Once compromised, attackers could impersonate users, bypass modern authentication controls, and gain unauthorized access to cloud resources. Disabling Seamless SSO in environments where it is no longer needed reduces the attack surface and enforces the use of modern, token-based authentication mechanisms that offer stronger protections. + +**Remediation action** + +- [Review how Seamless SSO works](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-how-it-works?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable Seamless SSO](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-faq?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-can-i-disable-seamless-sso-) +- [Clean up stale devices in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md new file mode 100644 index 000000000000..feff2e1e7706 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md @@ -0,0 +1,13 @@ +If certificates aren't rotated regularly, they can give threat actors an extended window to extract and exploit them, leading to unauthorized access. When credentials like these are exposed, attackers can blend their malicious activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application’s certificate, they can escalate their privileges within the system, leading to broader access and control, depending on the application's privileges. + +Query all of your service principals and application registrations that have certificate credentials. Make sure the certificate start date is less than 180 days. + +**Remediation action** + +- [Define an application management policy to manage certificate lifetimes](https://learn.microsoft.com/graph/api/resources/applicationauthenticationmethodpolicy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Define a trusted certificate chain of trust](https://learn.microsoft.com/graph/api/resources/certificatebasedapplicationconfiguration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create a least privileged custom role to rotate application credentials](https://learn.microsoft.com/entra/identity/role-based-access-control/custom-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn more about app management policies to manage certificate based credentials](https://devblogs.microsoft.com/identity/app-management-policy/) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 new file mode 100644 index 000000000000..738197a548a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 @@ -0,0 +1,114 @@ +function Invoke-CippTestZTNA21992 { + <# + .SYNOPSIS + Application certificates must be rotated on a regular basis + #> + param($Tenant) + + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + #Tested + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $RotationThresholdDays = 180 + $ThresholdDate = (Get-Date).AddDays(-$RotationThresholdDays) + + $OldAppCerts = @() + if ($Apps) { + $OldAppCerts = $Apps | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 + } | ForEach-Object { + $App = $_ + $OldestCert = $App.keyCredentials | Where-Object { $_.startDateTime } | ForEach-Object { + [DateTime]$_.startDateTime + } | Sort-Object | Select-Object -First 1 + + if ($OldestCert -and $OldestCert -lt $ThresholdDate) { + [PSCustomObject]@{ + Type = 'Application' + DisplayName = $App.displayName + AppId = $App.appId + Id = $App.id + OldestCertDate = $OldestCert + } + } + } + } + + $OldSPCerts = @() + if ($ServicePrincipals) { + $OldSPCerts = $ServicePrincipals | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 + } | ForEach-Object { + $SP = $_ + $OldestCert = $SP.keyCredentials | Where-Object { $_.startDateTime } | ForEach-Object { + [DateTime]$_.startDateTime + } | Sort-Object | Select-Object -First 1 + + if ($OldestCert -and $OldestCert -lt $ThresholdDate) { + [PSCustomObject]@{ + Type = 'ServicePrincipal' + DisplayName = $SP.displayName + AppId = $SP.appId + Id = $SP.id + OldestCertDate = $OldestCert + } + } + } + } + + if ($OldAppCerts.Count -eq 0 -and $OldSPCerts.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Passed' -ResultMarkdown "Certificates for applications in your tenant have been issued within $RotationThresholdDays days" -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $Status = 'Failed' + + $ResultLines = @( + "Found $($OldAppCerts.Count) application(s) and $($OldSPCerts.Count) service principal(s) with certificates not rotated within $RotationThresholdDays days." + '' + "**Certificate rotation threshold:** $RotationThresholdDays days" + '' + ) + + if ($OldAppCerts.Count -gt 0) { + $ResultLines += '**Applications with old certificates:**' + $Top10Apps = $OldAppCerts | Select-Object -First 10 + foreach ($App in $Top10Apps) { + $DaysOld = [Math]::Round(((Get-Date) - $App.OldestCertDate).TotalDays, 0) + $ResultLines += "- $($App.DisplayName) (Certificate age: $DaysOld days)" + } + if ($OldAppCerts.Count -gt 10) { + $ResultLines += "- ... and $($OldAppCerts.Count - 10) more application(s)" + } + $ResultLines += '' + } + + if ($OldSPCerts.Count -gt 0) { + $ResultLines += '**Service principals with old certificates:**' + $Top10SPs = $OldSPCerts | Select-Object -First 10 + foreach ($SP in $Top10SPs) { + $DaysOld = [Math]::Round(((Get-Date) - $SP.OldestCertDate).TotalDays, 0) + $ResultLines += "- $($SP.DisplayName) (Certificate age: $DaysOld days)" + } + if ($OldSPCerts.Count -gt 10) { + $ResultLines += "- ... and $($OldSPCerts.Count - 10) more service principal(s)" + } + $ResultLines += '' + } + + $ResultLines += '**Recommendation:** Rotate certificates regularly to reduce the risk of credential compromise.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md new file mode 100644 index 000000000000..a44892e995ac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md @@ -0,0 +1,11 @@ +Allowing security questions as a self-service password reset (SSPR) method weakens the password reset process because answers are frequently guessable, reused across sites, or discoverable through open-source intelligence (OSINT). Threat actors enumerate or phish users, derive likely responses (family names, schools, and locations), and then trigger password reset flows to bypass stronger methods by exploiting the weaker knowledge-based gate. After they successfully reset a password on an account that isn't protected by multifactor authentication they can: gain valid primary credentials, establish session tokens, and laterally expand by registering more durable authentication methods, add forwarding rules, or exfiltrate sensitive data. + +Eliminating this method removes a weak link in the password reset process. Some organizations might have specific business reasons for leaving security questions enabled, but this isn't recommended. + +**Remediation action** + +- [Disable security questions in SSPR policy](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-security-questions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Select authentication methods and registration options](https://learn.microsoft.com/entra/identity/authentication/tutorial-enable-sspr?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#select-authentication-methods-and-registration-options) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md new file mode 100644 index 000000000000..ed0906a131a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md @@ -0,0 +1,8 @@ +Leaving high-priority Microsoft Entra recommendations unaddressed can create a gap in an organization’s security posture, offering threat actors opportunities to exploit known weaknesses. Not acting on these items might result in an increased attack surface area, suboptimal operations, or poor user experience. + +**Remediation action** + +- [Address all high priority recommendations in the Microsoft Entra admin center](https://learn.microsoft.com/entra/identity/monitoring-health/overview-recommendations?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-does-it-work) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 new file mode 100644 index 000000000000..defe5a2a1b8e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 @@ -0,0 +1,99 @@ +function Invoke-CippTestZTNA22124 { + <# + .SYNOPSIS + Checks if all high priority Entra recommendations have been addressed + + .DESCRIPTION + Verifies that there are no active or postponed high priority recommendations in the tenant, + ensuring critical security improvements have been implemented. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get directory recommendations from cache + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve directory recommendations from cache.' + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + return + } + + # Filter for high priority recommendations that are active or postponed + $HighPriorityIssues = [System.Collections.Generic.List[object]]::new() + foreach ($rec in $Recommendations) { + if ($rec.priority -eq 'high' -and ($rec.status -eq 'active' -or $rec.status -eq 'postponed')) { + $HighPriorityIssues.Add($rec) + } + } + + $Status = if ($HighPriorityIssues.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: All high priority Entra recommendations have been addressed.`n`n" + $ResultMarkdown += '[View recommendations](https://entra.microsoft.com/#view/Microsoft_Azure_SecureScore/OverviewBlade)' + } else { + $ResultMarkdown = "❌ **Fail**: There are $($HighPriorityIssues.Count) high priority recommendation(s) that have not been addressed.`n`n" + $ResultMarkdown += "## Outstanding high priority recommendations`n`n" + $ResultMarkdown += "| Display Name | Status | Insights |`n" + $ResultMarkdown += "| :----------- | :----- | :------- |`n" + + foreach ($issue in $HighPriorityIssues) { + $displayName = if ($issue.displayName) { $issue.displayName } else { 'N/A' } + $status = if ($issue.status) { $issue.status } else { 'N/A' } + $insights = if ($issue.insights) { $issue.insights } else { 'N/A' } + $ResultMarkdown += "| $displayName | $status | $insights |`n" + } + + $ResultMarkdown += "`n[Address recommendations](https://entra.microsoft.com/#view/Microsoft_Azure_SecureScore/OverviewBlade)" + } + + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA22124 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md new file mode 100644 index 000000000000..ec419c5d76e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md @@ -0,0 +1,9 @@ +When guest users are assigned highly privileged directory roles such as Global Administrator or Privileged Role Administrator, organizations create significant security vulnerabilities that threat actors can exploit for initial access through compromised external accounts or business partner environments. Since guest users originate from external organizations without direct control of security policies, threat actors who compromise these external identities can gain privileged access to the target organization's Microsoft Entra tenant. + +When threat actors obtain access through compromised guest accounts with elevated privileges, they can escalate their own privilege to create other backdoor accounts, modify security policies, or assign themselves permanent roles within the organization. The compromised privileged guest accounts enable threat actors to establish persistence and then make all the changes they need to remain undetected. For example they could create cloud-only accounts, bypass Conditional Access policies applied to internal users, and maintain access even after the guest's home organization detects the compromise. Threat actors can then conduct lateral movement using administrative privileges to access sensitive resources, modify audit settings, or disable security monitoring across the entire tenant. Threat actors can reach complete compromise of the organization's identity infrastructure while maintaining plausible deniability through the external guest account origin. + +**Remediation action** + +- [Remove Guest users from privileged roles](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 new file mode 100644 index 000000000000..654c9549461d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 @@ -0,0 +1,91 @@ +function Invoke-CippTestZTNA22128 { + <# + .SYNOPSIS + Guests are not assigned high privileged directory roles + #> + param($Tenant) + #Tested + try { + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + + if (-not $Roles -or -not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + if ($Guests.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest users found in tenant' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $GuestIds = $Guests | ForEach-Object { $_.id } + $GuestIdHash = @{} + foreach ($Guest in $Guests) { + $GuestIdHash[$Guest.id] = $Guest + } + + $PrivilegedRoleTemplateIds = @( + '62e90394-69f5-4237-9190-012177145e10' + '194ae4cb-b126-40b2-bd5b-6091b380977d' + 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c' + '29232cdf-9323-42fd-ade2-1d097af3e4de' + 'b1be1c3e-b65d-4f19-8427-f6fa0d97feb9' + '729827e3-9c14-49f7-bb1b-9608f156bbb8' + 'b0f54661-2d74-4c50-afa3-1ec803f12efe' + 'fe930be7-5e62-47db-91af-98c3a49a38b1' + ) + + $GuestsInPrivilegedRoles = @() + foreach ($Role in $Roles) { + if ($Role.roleTemplateId -in $PrivilegedRoleTemplateIds -and $Role.members) { + foreach ($Member in $Role.members) { + if ($GuestIdHash.ContainsKey($Member.id)) { + $GuestsInPrivilegedRoles += [PSCustomObject]@{ + RoleName = $Role.displayName + GuestId = $Member.id + GuestDisplayName = $Member.displayName + GuestUserPrincipalName = $Member.userPrincipalName + } + } + } + } + } + + if ($GuestsInPrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'Guests with privileged roles were not found. All users with privileged roles are members of the tenant' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $Status = 'Failed' + + $ResultLines = @( + "Found $($GuestsInPrivilegedRoles.Count) guest user(s) with privileged role assignments." + '' + "**Total guests in tenant:** $($Guests.Count)" + "**Guests with privileged roles:** $($GuestsInPrivilegedRoles.Count)" + '' + '**Guest users in privileged roles:**' + ) + + $RoleGroups = $GuestsInPrivilegedRoles | Group-Object -Property RoleName + foreach ($RoleGroup in $RoleGroups) { + $ResultLines += '' + $ResultLines += "**$($RoleGroup.Name)** ($($RoleGroup.Count) guest(s)):" + foreach ($Guest in $RoleGroup.Group) { + $ResultLines += "- $($Guest.GuestDisplayName) ($($Guest.GuestUserPrincipalName))" + } + } + + $ResultLines += '' + $ResultLines += '**Security concern:** Guest users should not have privileged directory roles. Consider using separate admin accounts for external administrators or removing privileged access.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md new file mode 100644 index 000000000000..a030b51bb467 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md @@ -0,0 +1,19 @@ +Threat actors increasingly target workload identities (applications, service principals, and managed identities) because they lack human factors and often use long-lived credentials. A compromise often looks like the following path: + +1. Credential abuse or key theft. +1. Non-interactive sign-ins to cloud resources. +1. Lateral movement via app permissions. +1. Persistence through new secrets or role assignments. + +Microsoft Entra ID Protection continuously generates risky workload identity detections and flags sign-in events with risk state and detail. Risky workload identity sign-ins that aren’t triaged (confirmed compromised, dismissed, or marked safe), detection fatigue, and a large alert backlog can be challenging for IT admins to manage. This heavy workload can let repeated malicious access, privilege escalation, and token replay to continue to go unnoticed. To make the workload manageable, address risky workload identity sign-ins in two parts: + +- Close the loop: Triage sign-ins and record an authoritative decision on each risky event. +- Drive containment: Disable the service principal, rotate credentials, or revoke sessions. + +**Remediation action** + +- [Investigate risky workload identities and perform appropriate remediation ](https://learn.microsoft.com/en-us/entra/id-protection/concept-workload-identity-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Dismiss workload identity risks when determined to be false positives](https://learn.microsoft.com/graph/api/riskyserviceprincipal-dismiss?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Confirm compromised workload identities when risks are validated](https://learn.microsoft.com/graph/api/riskyserviceprincipal-confirmcompromised?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 new file mode 100644 index 000000000000..fa3636424a16 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 @@ -0,0 +1,112 @@ +function Invoke-CippTestZTNA22659 { + <# + .SYNOPSIS + Checks if risky workload identity sign-ins have been triaged + + .DESCRIPTION + Verifies that there are no active risky sign-in detections for service principals, + ensuring that compromised workload identities are properly investigated and remediated. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get service principal risk detections from cache + $RiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipalRiskDetections' + + if (-not $RiskDetections) { + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve service principal risk detections from cache.' + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + return + } + + # Filter for sign-in detections that are at risk + $RiskySignIns = [System.Collections.Generic.List[object]]::new() + foreach ($detection in $RiskDetections) { + if ($detection.activity -eq 'signIn' -and $detection.riskState -eq 'atRisk') { + $RiskySignIns.Add($detection) + } + } + + $Status = if ($RiskySignIns.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: No risky workload identity sign-ins detected or all have been triaged.`n`n" + $ResultMarkdown += '[View identity protection](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/IdentityProtectionMenuBlade/~/RiskyServicePrincipals)' + } else { + $ResultMarkdown = "❌ **Fail**: There are $($RiskySignIns.Count) risky workload identity sign-in(s) that require investigation.`n`n" + $ResultMarkdown += "## Risky service principal sign-ins`n`n" + $ResultMarkdown += "| Service Principal | App ID | Risk State | Risk Level | Last Updated |`n" + $ResultMarkdown += "| :---------------- | :----- | :--------- | :--------- | :----------- |`n" + + foreach ($signin in $RiskySignIns) { + $spName = if ($signin.servicePrincipalDisplayName) { $signin.servicePrincipalDisplayName } else { 'N/A' } + $appId = if ($signin.appId) { $signin.appId } else { 'N/A' } + $riskState = if ($signin.riskState) { $signin.riskState } else { 'N/A' } + $riskLevel = if ($signin.riskLevel) { $signin.riskLevel } else { 'N/A' } + + # Format last updated date + $lastUpdated = 'N/A' + if ($signin.lastUpdatedDateTime) { + try { + $date = [DateTime]::Parse($signin.lastUpdatedDateTime) + $lastUpdated = $date.ToString('yyyy-MM-dd HH:mm') + } catch { + $lastUpdated = $signin.lastUpdatedDateTime + } + } + + $ResultMarkdown += "| $spName | $appId | $riskState | $riskLevel | $lastUpdated |`n" + } + + $ResultMarkdown += "`n[Investigate and remediate](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/IdentityProtectionMenuBlade/~/RiskyServicePrincipals)" + } + + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA22659 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 new file mode 100644 index 000000000000..08114f3e503f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 @@ -0,0 +1,187 @@ +function Invoke-CippTestZTNA24570 { + <# + .SYNOPSIS + Checks if Entra Connect uses a service principal instead of a user account + + .DESCRIPTION + Verifies that if hybrid identity synchronization is enabled (Entra Connect), the + Directory Synchronization Accounts role contains only service principals and not user accounts, + reducing the risk of credential theft. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get organization info to check if hybrid identity is enabled + $OrgInfo = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Organization' + + if (-not $OrgInfo) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve organization information from cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Check if hybrid identity is enabled + $HybridEnabled = $OrgInfo.onPremisesSyncEnabled -eq $true + + if (-not $HybridEnabled) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = '✅ **N/A**: Hybrid identity synchronization is not enabled in this tenant.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Get roles to find Directory Synchronization Accounts role + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + + if (-not $Roles) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve roles from cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Find Directory Synchronization Accounts role (roleTemplateId: d29b2b05-8046-44ba-8758-1e26182fcf32) + $DirSyncRole = $null + foreach ($role in $Roles) { + if ($role.roleTemplateId -eq 'd29b2b05-8046-44ba-8758-1e26182fcf32') { + $DirSyncRole = $role + break + } + } + + if (-not $DirSyncRole) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = '❌ **Error**: Unable to find Directory Synchronization Accounts role in cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Check role members for enabled user accounts + $EnabledUsers = [System.Collections.Generic.List[object]]::new() + if ($DirSyncRole.members) { + foreach ($member in $DirSyncRole.members) { + # Check if it's a user (not a service principal) and if it's enabled + if ($member.'@odata.type' -eq '#microsoft.graph.user') { + $isEnabled = $member.accountEnabled -eq $true + if ($isEnabled) { + $EnabledUsers.Add([PSCustomObject]@{ + DisplayName = $member.displayName + UserPrincipalName = $member.userPrincipalName + AccountEnabled = $isEnabled + }) + } + } + } + } + + $Status = if ($EnabledUsers.Count -eq 0) { 'Passed' } else { 'Failed' } + + # Build result markdown + $lastSyncDate = if ($OrgInfo.onPremisesLastSyncDateTime) { + try { + $date = [DateTime]::Parse($OrgInfo.onPremisesLastSyncDateTime) + $date.ToString('yyyy-MM-dd HH:mm') + } catch { + $OrgInfo.onPremisesLastSyncDateTime + } + } else { + 'Never' + } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Hybrid identity is enabled and using a service principal for synchronization.`n`n" + $ResultMarkdown += "**Last Sync**: $lastSyncDate`n`n" + $ResultMarkdown += '[Review configuration](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles)' + } else { + $ResultMarkdown = "❌ **Fail**: Hybrid identity is enabled but using $($EnabledUsers.Count) enabled user account(s) for synchronization.`n`n" + $ResultMarkdown += "**Last Sync**: $lastSyncDate`n`n" + $ResultMarkdown += "## Directory Synchronization Accounts role members`n`n" + $ResultMarkdown += "| Display Name | User Principal Name | Enabled |`n" + $ResultMarkdown += "| :----------- | :------------------ | :------ |`n" + + foreach ($user in $EnabledUsers) { + $ResultMarkdown += "| $($user.DisplayName) | $($user.UserPrincipalName) | ✅ Yes |`n" + } + + $ResultMarkdown += "`n[Migrate to service principal](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles)" + } + + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24570 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 new file mode 100644 index 000000000000..26fa10a7152d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestZTNA24572 { + <# + .SYNOPSIS + Device enrollment notifications are enforced to ensure user awareness and secure onboarding + #> + param($Tenant) + + $TestId = 'ZTNA24572' + #Tested + try { + $EnrollmentConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceEnrollmentConfigurations' + + if (-not $EnrollmentConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $EnrollmentNotifications = @($EnrollmentConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.windowsEnrollmentStatusScreenSettings' -or + $_.'deviceEnrollmentConfigurationType' -eq 'EnrollmentNotificationsConfiguration' + }) + + $AssignedNotifications = @($EnrollmentNotifications | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedNotifications.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one device enrollment notification is configured and assigned.`n`n" + } else { + $ResultMarkdown = "❌ No device enrollment notification is configured or assigned in Intune.`n`n" + } + + if ($EnrollmentNotifications.Count -gt 0) { + $ResultMarkdown += "## Device Enrollment Notifications`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $EnrollmentNotifications) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 new file mode 100644 index 000000000000..9dc68cd0c59f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 @@ -0,0 +1,175 @@ +function Invoke-CippTestZTNA24824 { + <# + .SYNOPSIS + Checks if Conditional Access policies block access from noncompliant devices + + .DESCRIPTION + Verifies that enabled Conditional Access policies exist that require device compliance, + covering all platforms (Windows, macOS, iOS, Android) or a policy with no platform filter. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Filter for enabled policies with compliantDevice control + $CompliantDevicePolicies = [System.Collections.Generic.List[object]]::new() + foreach ($policy in $CAPolicies) { + if ($policy.state -eq 'enabled' -and + $policy.grantControls -and + $policy.grantControls.builtInControls -and + ($policy.grantControls.builtInControls -contains 'compliantDevice')) { + $CompliantDevicePolicies.Add($policy) + } + } + + if ($CompliantDevicePolicies.Count -eq 0) { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that block access from noncompliant devices.`n`n[Create policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Track platform coverage + $PlatformCoverage = @{ + 'windows' = $false + 'macOS' = $false + 'iOS' = $false + 'android' = $false + } + $AllPlatformsPolicy = $false + + $PolicyDetails = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CompliantDevicePolicies) { + $platforms = 'All platforms' + + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all') { + $AllPlatformsPolicy = $true + $platforms = 'All platforms' + } else { + $platformList = $policy.conditions.platforms.includePlatforms -join ', ' + $platforms = $platformList + + # Track individual platform coverage + foreach ($platform in $policy.conditions.platforms.includePlatforms) { + $lowerPlatform = $platform.ToLower() + if ($PlatformCoverage.ContainsKey($lowerPlatform)) { + $PlatformCoverage[$lowerPlatform] = $true + } + } + } + } else { + # No platform filter = applies to all platforms + $AllPlatformsPolicy = $true + } + + $PolicyDetails.Add([PSCustomObject]@{ + Name = $policy.displayName + Platforms = $platforms + }) + } + + # Check if all platforms are covered (either by a single policy or combination) + $AllCovered = $AllPlatformsPolicy -or ( + $PlatformCoverage['windows'] -and + $PlatformCoverage['macOS'] -and + $PlatformCoverage['iOS'] -and + $PlatformCoverage['android'] + ) + + $Status = if ($AllCovered) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Conditional Access policies block noncompliant devices across all platforms.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Conditional Access policies do not cover all device platforms.`n`n" + $missingPlatforms = [System.Collections.Generic.List[string]]::new() + foreach ($key in $PlatformCoverage.Keys) { + if (-not $PlatformCoverage[$key]) { + $missingPlatforms.Add($key) + } + } + if ($missingPlatforms.Count -gt 0) { + $ResultMarkdown += "**Missing platform coverage**: $($missingPlatforms -join ', ')`n`n" + } + } + + $ResultMarkdown += "## Compliant device policies`n`n" + $ResultMarkdown += "| Policy Name | Platforms |`n" + $ResultMarkdown += "| :---------- | :-------- |`n" + + foreach ($detail in $PolicyDetails) { + $ResultMarkdown += "| $($detail.Name) | $($detail.Platforms) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24824 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 new file mode 100644 index 000000000000..70dff3d7135a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 @@ -0,0 +1,186 @@ +function Invoke-CippTestZTNA24827 { + <# + .SYNOPSIS + Checks if Conditional Access policies block unmanaged mobile apps + + .DESCRIPTION + Verifies that enabled Conditional Access policies exist that require compliant applications + for iOS and Android platforms, preventing unmanaged apps from accessing corporate data. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested - Device + + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + return + } + + # Filter for enabled policies with compliantApplication control for mobile platforms + $CompliantAppPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($policy in $CAPolicies) { + if ($policy.state -eq 'enabled' -and + $policy.grantControls -and + $policy.grantControls.builtInControls -and + ($policy.grantControls.builtInControls -contains 'compliantApplication')) { + + # Check if policy applies to iOS or Android + $appliesToMobile = $false + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all' -or + $policy.conditions.platforms.includePlatforms -contains 'iOS' -or + $policy.conditions.platforms.includePlatforms -contains 'android') { + $appliesToMobile = $true + } + } else { + # No platform filter = applies to all platforms including mobile + $appliesToMobile = $true + } + + if ($appliesToMobile) { + $CompliantAppPolicies.Add($policy) + } + } + } + + if ($CompliantAppPolicies.Count -eq 0) { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that block unmanaged mobile apps.`n`n[Create policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + return + } + + # Track platform coverage for iOS and Android + $PlatformCoverage = @{ + 'iOS' = $false + 'android' = $false + } + $AllPlatformsPolicy = $false + + $PolicyDetails = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CompliantAppPolicies) { + $platforms = 'All platforms' + + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all') { + $AllPlatformsPolicy = $true + $platforms = 'All platforms' + } else { + $platformList = $policy.conditions.platforms.includePlatforms -join ', ' + $platforms = $platformList + + # Track individual platform coverage + if ($policy.conditions.platforms.includePlatforms -contains 'iOS') { + $PlatformCoverage['iOS'] = $true + } + if ($policy.conditions.platforms.includePlatforms -contains 'android') { + $PlatformCoverage['android'] = $true + } + } + } else { + # No platform filter = applies to all platforms + $AllPlatformsPolicy = $true + } + + $PolicyDetails.Add([PSCustomObject]@{ + Name = $policy.displayName + Platforms = $platforms + }) + } + + # Check if both iOS and Android are covered + $BothCovered = $AllPlatformsPolicy -or ($PlatformCoverage['iOS'] -and $PlatformCoverage['android']) + + $Status = if ($BothCovered) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Conditional Access policies block unmanaged apps on both iOS and Android platforms.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Conditional Access policies do not cover all mobile platforms.`n`n" + $missingPlatforms = [System.Collections.Generic.List[string]]::new() + if (-not $PlatformCoverage['iOS']) { + $missingPlatforms.Add('iOS') + } + if (-not $PlatformCoverage['android']) { + $missingPlatforms.Add('android') + } + if ($missingPlatforms.Count -gt 0) { + $ResultMarkdown += "**Missing platform coverage**: $($missingPlatforms -join ', ')`n`n" + } + } + + $ResultMarkdown += "## Compliant application policies`n`n" + $ResultMarkdown += "| Policy Name | Platforms |`n" + $ResultMarkdown += "| :---------- | :-------- |`n" + + foreach ($detail in $PolicyDetails) { + $ResultMarkdown += "| $($detail.Name) | $($detail.Platforms) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24827 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/report.json b/Modules/CIPPCore/Public/Tests/ZTNA/report.json new file mode 100644 index 000000000000..21d37a9b0dd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/report.json @@ -0,0 +1,115 @@ +{ + "name": "Zero Trust Network Access Tests", + "description": "Microsoft's Comprehensive security assessment covering identity and device compliance, conditional access policies, authentication methods, and endpoint protection aligned with Zero Trust principles.", + "version": "1.0", + "IdentityTests": [ + "ZTNA21772", + "ZTNA21773", + "ZTNA21774", + "ZTNA21776", + "ZTNA21780", + "ZTNA21783", + "ZTNA21784", + "ZTNA21786", + "ZTNA21787", + "ZTNA21790", + "ZTNA21791", + "ZTNA21792", + "ZTNA21793", + "ZTNA21796", + "ZTNA21797", + "ZTNA21799", + "ZTNA21802", + "ZTNA21803", + "ZTNA21804", + "ZTNA21806", + "ZTNA21807", + "ZTNA21808", + "ZTNA21809", + "ZTNA21810", + "ZTNA21811", + "ZTNA21812", + "ZTNA21813", + "ZTNA21814", + "ZTNA21815", + "ZTNA21816", + "ZTNA21818", + "ZTNA21819", + "ZTNA21820", + "ZTNA21822", + "ZTNA21823", + "ZTNA21824", + "ZTNA21825", + "ZTNA21828", + "ZTNA21829", + "ZTNA21830", + "ZTNA21835", + "ZTNA21836", + "ZTNA21837", + "ZTNA21838", + "ZTNA21839", + "ZTNA21840", + "ZTNA21841", + "ZTNA21842", + "ZTNA21844", + "ZTNA21845", + "ZTNA21846", + "ZTNA21847", + "ZTNA21848", + "ZTNA21849", + "ZTNA21850", + "ZTNA21858", + "ZTNA21861", + "ZTNA21862", + "ZTNA21863", + "ZTNA21865", + "ZTNA21866", + "ZTNA21868", + "ZTNA21869", + "ZTNA21872", + "ZTNA21874", + "ZTNA21877", + "ZTNA21883", + "ZTNA21886", + "ZTNA21889", + "ZTNA21892", + "ZTNA21896", + "ZTNA21941", + "ZTNA21953", + "ZTNA21954", + "ZTNA21955", + "ZTNA21964", + "ZTNA21992", + "ZTNA22124", + "ZTNA22128", + "ZTNA22659", + "ZTNA24570", + "ZTNA24572", + "ZTNA24824", + "ZTNA24827" + ], + "DevicesTests": [ + "ZTNA24540", + "ZTNA24541", + "ZTNA24542", + "ZTNA24543", + "ZTNA24545", + "ZTNA24547", + "ZTNA24548", + "ZTNA24549", + "ZTNA24550", + "ZTNA24552", + "ZTNA24553", + "ZTNA24560", + "ZTNA24564", + "ZTNA24568", + "ZTNA24569", + "ZTNA24574", + "ZTNA24575", + "ZTNA24576", + "ZTNA24784", + "ZTNA24839", + "ZTNA24840", + "ZTNA24870" + ] +} diff --git a/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 b/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 new file mode 100644 index 000000000000..1809e164d87b --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 @@ -0,0 +1,178 @@ +# Define log level enum at script scope +enum CippConsoleLogLevel { + Debug = 0 + Verbose = 1 + Information = 2 + Warning = 3 + Error = 4 +} + +function Enable-CippConsoleLogging { + <# + .SYNOPSIS + Enable console output logging to Application Insights + .DESCRIPTION + Overrides Write-Information, Write-Warning, Write-Error, Write-Verbose, and Write-Debug + functions to send telemetry to Application Insights while maintaining normal console output + .FUNCTIONALITY + Internal + .EXAMPLE + Enable-CippConsoleLogging + + # Now all Write-* calls will be logged to Application Insights + Write-Information "This will be logged" + Write-Warning "This warning will be logged" + #> + [CmdletBinding()] + param() + + # Initialize AsyncLocal storage for InvocationId (thread-safe) + if (-not $script:CippInvocationIdStorage) { + $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + + # Set minimum log level from environment variable (default: Information) + $validLevels = @('Debug', 'Verbose', 'Information', 'Warning', 'Error') + $configuredLevel = $env:CIPP_CONSOLE_LOG_LEVEL + $global:CippConsoleLogMinLevel = if ($configuredLevel -and $configuredLevel -in $validLevels) { + $configuredLevel + } else { + 'Information' + } + + if ($env:CIPP_CONSOLE_LOG_LEVEL -eq 'Debug') { + $global:DebugPreference = 'Continue' + } + + # Override Write-Information + function global:Write-Information { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$MessageData, + [string[]]$Tags + ) + + # Only process and call original if MessageData is provided + if ($PSBoundParameters.ContainsKey('MessageData') -and $MessageData) { + # Send to telemetry + if (-not [string]::IsNullOrWhiteSpace(($MessageData | Out-String).Trim())) { + # If tag is supplied, include it in the log message + $LogMessage = if ($Tags -and $Tags.Count -gt 0) { + '[{0}] {1}' -f ($Tags -join ','), ($MessageData | Out-String).Trim() + } else { + ($MessageData | Out-String).Trim() + } + Send-CippConsoleLog -Message $LogMessage -Level 'Information' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Information @PSBoundParameters + } + } + + # Override Write-Warning + function global:Write-Warning { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Warning' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Warning @PSBoundParameters + } + + # Override Write-Error + function global:Write-Error { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$Message, + [object]$Exception, + [object]$ErrorRecord, + [string]$ErrorId, + [System.Management.Automation.ErrorCategory]$Category, + [object]$TargetObject, + [string]$RecommendedAction, + [string]$CategoryActivity, + [string]$CategoryReason, + [string]$CategoryTargetName, + [string]$CategoryTargetType + ) + + # Send to telemetry + $errorMessage = if ($Message) { ($Message | Out-String).Trim() } + elseif ($Exception) { $Exception.Message } + elseif ($ErrorRecord) { $ErrorRecord.Exception.Message } + else { 'Unknown error' } + + if ($errorMessage -and -not [string]::IsNullOrWhiteSpace($errorMessage)) { + Send-CippConsoleLog -Message $errorMessage -Level 'Error' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Error @PSBoundParameters + } + + # Override Write-Verbose + function global:Write-Verbose { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Verbose' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Verbose @PSBoundParameters + } + + # Override Write-Debug + function global:Write-Debug { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Debug' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Debug @PSBoundParameters + } + + # Override Write-Host + function global:Write-Host { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$Object, + [switch]$NoNewline, + [object]$Separator, + [System.ConsoleColor]$ForegroundColor, + [System.ConsoleColor]$BackgroundColor + ) + + # Send to telemetry + $message = if ($Object) { ($Object | Out-String).Trim() } else { '' } + if ($message -and -not [string]::IsNullOrWhiteSpace($message)) { + Send-CippConsoleLog -Message $message -Level 'Information' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Host @PSBoundParameters + } +} diff --git a/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 index 99e2736c9872..9ea1c1b98a76 100644 --- a/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 +++ b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 @@ -8,6 +8,8 @@ function Import-CommunityTemplate { $Template, $SHA, $MigrationTable, + $LocationData, + $Source, [switch]$Force ) @@ -41,12 +43,6 @@ function Import-CommunityTemplate { $excludedTenants = $ExistingJSON.excludedTenants $NewJSON.tenantFilter = $tenantFilter $NewJSON.excludedTenants = $excludedTenants - - # Extract package tag from existing template - $PackageTag = $Existing.Package - if ($PackageTag) { - $Template | Add-Member -MemberType NoteProperty -Name Package -Value $PackageTag -Force - } } } @@ -69,6 +65,7 @@ function Import-CommunityTemplate { $NewJSON = [string]($NewJSON | ConvertTo-Json -Depth 100 -Compress) $Template.JSON = $NewJSON $Template | Add-Member -MemberType NoteProperty -Name SHA -Value $SHA -Force + $Template | Add-Member -MemberType NoteProperty -Name Source -Value $Source -Force Add-CIPPAzDataTableEntity @Table -Entity $Template -Force } else { if ($Template.mailNickname) { $Type = 'Group' } @@ -91,6 +88,7 @@ function Import-CommunityTemplate { SHA = $SHA GUID = $Template.id RowKey = $Template.id + Source = $Source } Add-CIPPAzDataTableEntity @Table -Entity $entity -Force break @@ -104,6 +102,20 @@ function Import-CommunityTemplate { $id = $Template.id $Template = $Template | Select-Object * -ExcludeProperty lastModifiedDateTime, 'assignments', '#microsoft*', '*@odata.navigationLink', '*@odata.associationLink', '*@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime', '@odata.id', '@odata.editLink', '*odata.type', 'roleScopeTagIds@odata.type', createdDateTime, 'createdDateTime@odata.type' Remove-ODataProperties -Object $Template + + $LocationInfo = [system.collections.generic.list[object]]::new() + if ($LocationData) { + $LocationData | ForEach-Object { + if ($Template.conditions.locations.includeLocations -contains $_.id -or $Template.conditions.locations.excludeLocations -contains $_.id) { + Write-Information "Adding location info for location ID $($_.id)" + $LocationInfo.Add($_) + } + } + if ($LocationInfo.Count -gt 0) { + $Template | Add-Member -MemberType NoteProperty -Name LocationInfo -Value $LocationInfo -Force + } + } + $RawJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress #Replace the ids with the displayname by using the migration table, this is a simple find and replace each instance in the JSON. $MigrationTable.objects | ForEach-Object { @@ -111,12 +123,14 @@ function Import-CommunityTemplate { $RawJson = $RawJson.Replace($_.ID, $($_.DisplayName)) } } + $entity = @{ JSON = "$RawJson" PartitionKey = 'CATemplate' SHA = $SHA GUID = $ID RowKey = $ID + Source = $Source } Add-CIPPAzDataTableEntity @Table -Entity $entity -Force break @@ -151,7 +165,13 @@ function Import-CommunityTemplate { SHA = $SHA GUID = $ID RowKey = $ID + Source = $Source } + + if ($Existing -and $Existing.Package) { + $entity.Package = $Existing.Package + } + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force } diff --git a/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 b/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 new file mode 100644 index 000000000000..34a73e947351 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 @@ -0,0 +1,109 @@ +function Measure-CippTask { + <# + .SYNOPSIS + Measure and track CIPP task execution with Application Insights telemetry + .DESCRIPTION + Wraps task execution in a timer, sends custom event to Application Insights with duration and metadata + .PARAMETER TaskName + The name of the task being executed (e.g., "New-CIPPTemplateRun") + .PARAMETER Script + The scriptblock to execute and measure + .PARAMETER Metadata + Optional hashtable of metadata to include in telemetry (e.g., Command, Tenant, TaskInfo) + .PARAMETER EventName + Optional custom event name (default: "CIPP.TaskCompleted") + .FUNCTIONALITY + Internal + .EXAMPLE + Measure-CippTask -TaskName "ApplyTemplate" -Script { + # Task logic here + } -Metadata @{ + Command = "New-CIPPTemplateRun" + Tenant = "contoso.onmicrosoft.com" + } + .EXAMPLE + Measure-CippTask -TaskName "DisableGuests" -EventName "CIPP.StandardCompleted" -Script { + # Standard logic here + } -Metadata @{ + Standard = "DisableGuests" + Tenant = "contoso.onmicrosoft.com" + } + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TaskName, + + [Parameter(Mandatory = $true)] + [scriptblock]$Script, + + [Parameter(Mandatory = $false)] + [hashtable]$Metadata, + + [Parameter(Mandatory = $false)] + [string]$EventName = 'CIPP.TaskCompleted' + ) + + # Initialize tracking variables + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $result = $null + $errorOccurred = $false + $errorMessage = $null + + try { + # Execute the actual task (use dot-sourcing to preserve parent scope variables) + $result = . $Script + } catch { + $errorOccurred = $true + $errorMessage = $_.Exception.Message + # Re-throw to preserve original error behavior + throw + } finally { + # Stop the timer + $sw.Stop() + $durationMs = [int]$sw.Elapsed.TotalMilliseconds + + # Send telemetry if TelemetryClient is available + if ($global:TelemetryClient) { + try { + # Build properties dictionary for customDimensions + $props = New-Object 'System.Collections.Generic.Dictionary[string,string]' + $props['TaskName'] = $TaskName + $props['Success'] = (-not $errorOccurred).ToString() + $props['RawPropsAsJson'] = ($Metadata | ConvertTo-Json -Compress) + if ($errorOccurred) { + $props['ErrorMessage'] = $errorMessage + } + + # Add all metadata to properties + if ($Metadata) { + foreach ($key in $Metadata.Keys) { + $value = $Metadata[$key] + # Convert value to string, handling nulls + if ($null -ne $value) { + $props[$key] = [string]$value + } else { + $props[$key] = '' + } + } + } + + # Metrics dictionary for customMeasurements + $metrics = New-Object 'System.Collections.Generic.Dictionary[string,double]' + $metrics['DurationMs'] = [double]$durationMs + + # Send custom event to Application Insights + $global:TelemetryClient.TrackEvent($EventName, $props, $metrics) + $global:TelemetryClient.Flush() + + Write-Verbose "Telemetry sent for task '$TaskName' to event '$EventName' (${durationMs}ms)" + } catch { + Write-Warning "Failed to send telemetry for task '${TaskName}': $($_.Exception.Message)" + } + } else { + Write-Verbose "TelemetryClient not initialized, skipping telemetry for task '$TaskName'" + } + } + + return $result +} diff --git a/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 b/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 new file mode 100644 index 000000000000..1b00294b8409 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 @@ -0,0 +1,56 @@ +function Send-CippConsoleLog { + <# + .SYNOPSIS + Send console log message to Application Insights + .DESCRIPTION + Helper function to send console output to Application Insights telemetry + .PARAMETER Message + The message to log + .PARAMETER Level + The log level (Debug, Verbose, Information, Warning, Error) + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Message, + + [Parameter(Mandatory = $true)] + [ValidateSet('Debug', 'Verbose', 'Information', 'Warning', 'Error')] + [string]$Level + ) + + if ($global:TelemetryClient) { + try { + # Map level names to numeric values for comparison + $levelMap = @{ + 'Debug' = 0 + 'Verbose' = 1 + 'Information' = 2 + 'Warning' = 3 + 'Error' = 4 + } + + $currentLevelValue = $levelMap[$Level] + $minLevelValue = $levelMap[$global:CippConsoleLogMinLevel] + + # Check if this level should be logged + if ($null -ne $minLevelValue -and $currentLevelValue -ge $minLevelValue) { + $props = New-Object 'System.Collections.Generic.Dictionary[string,string]' + $props['Message'] = $Message + $props['Level'] = $Level + $props['Timestamp'] = (Get-Date).ToString('o') + + # Add InvocationId if available (from AsyncLocal storage) + if ($script:CippInvocationIdStorage -and $script:CippInvocationIdStorage.Value) { + $props['InvocationId'] = $script:CippInvocationIdStorage.Value + } + + $global:TelemetryClient.TrackEvent('CIPP.ConsoleLog', $props, $null) + } + } catch { + # Silently fail to avoid infinite loops + } + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 index 28e35e5abeda..3bc4693fe6ed 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 @@ -4,6 +4,8 @@ function Invoke-CippGraphWebhookRenewal { 'expirationDateTime' = "$RenewalDate" } | ConvertTo-Json + $Tenants = Get-Tenants -IncludeErrors + $WebhookTable = Get-CIPPTable -TableName webhookTable try { $WebhookData = Get-AzDataTableEntity @WebhookTable | Where-Object { $null -ne $_.SubscriptionID -and $_.SubscriptionID -ne '' -and ((Get-Date($_.Expiration)) -le ((Get-Date).AddHours(2))) } @@ -16,6 +18,12 @@ function Invoke-CippGraphWebhookRenewal { foreach ($UpdateSub in $WebhookData) { try { $TenantFilter = $UpdateSub.PartitionKey + if ($Tenants.defaultDomainName -notcontains $TenantFilter -and $Tenants.customerId -notcontains $TenantFilter) { + Write-LogMessage -API 'Renew_Graph_Subscriptions' -message "Removing Subscription Renewal for $($UpdateSub.SubscriptionID) as tenant $TenantFilter is not in the tenant list." -Sev 'Warning' -tenant $TenantFilter + Remove-AzDataTableEntity -Force @WebhookTable -Entity $UpdateSub + continue + } + try { $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/subscriptions/$($UpdateSub.SubscriptionID)" -tenantid $TenantFilter -type PATCH -body $body -Verbose $UpdateSub.Expiration = $RenewalDate diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 index 076f30aeeaa0..528d0bdf0735 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 @@ -9,7 +9,7 @@ function Invoke-CippPartnerWebhookProcessing { $AuditLog = New-GraphGetRequest -uri $Data.AuditUri -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' } - Switch ($Data.EventName) { + switch ($Data.EventName) { 'test-created' { Write-LogMessage -API 'Webhooks' -message 'Partner Center webhook test received' -Sev 'Info' } @@ -62,16 +62,23 @@ function Invoke-CippPartnerWebhookProcessing { # Check for partner webhook onboarding settings $ConfigTable = Get-CIPPTable -TableName Config $WebhookConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq 'PartnerWebhookOnboarding'" - if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { - $OnboardItem.StandardsExcludeAllTenants = $true - } - # Add onboarding entry to the table - $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' - Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + # Only proceed if automated onboarding is enabled + if ($WebhookConfig.Enabled -eq $true) { + if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { + $OnboardItem.StandardsExcludeAllTenants = $true + } + + # Add onboarding entry to the table + $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop - # Start onboarding - Push-ExecOnboardTenantQueue -Item $OnboardItem + # Start onboarding + Push-ExecOnboardTenantQueue -Item $OnboardItem + Write-LogMessage -API 'Webhooks' -message "Automated onboarding started for relationship $Id" -Sev 'Info' + } else { + Write-LogMessage -API 'Webhooks' -message "Automated onboarding is disabled. GDAP relationship $Id approved but not onboarded automatically." -Sev 'Info' + } } else { if ($AuditLog) { Write-LogMessage -API 'Webhooks' -message "Partner Center $($Data.EventName) audit log webhook received" -LogData $AuditObj -Sev 'Alert' diff --git a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 index f6d5b73a7ebf..cbd8229cf7fe 100644 --- a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 @@ -126,49 +126,98 @@ function Test-CIPPAuditLogRules { $TrustedIPTable = Get-CIPPTable -TableName 'trustedIps' $ConfigTable = Get-CIPPTable -TableName 'WebhookRules' $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable - $Configuration = $ConfigEntries | Where-Object { ($_.Tenants -match $TenantFilter -or $_.Tenants -match 'AllTenants') } | ForEach-Object { - [pscustomobject]@{ - Tenants = ($_.Tenants | ConvertFrom-Json) - Excluded = ($_.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue) - Conditions = $_.Conditions - Actions = $_.Actions - LogType = $_.Type + $Configuration = foreach ($ConfigEntry in $ConfigEntries) { + if ([string]::IsNullOrEmpty($ConfigEntry.Tenants)) { + continue } - } - - # Collect bulk data for users/groups/devices/applications - $Requests = @( - @{ - id = 'users' - url = '/users?$select=id,displayName,userPrincipalName,accountEnabled&$top=999' - method = 'GET' - } - @{ - id = 'groups' - url = '/groups?$select=id,displayName,mailEnabled,securityEnabled&$top=999' - method = 'GET' + $Tenants = $ConfigEntry.Tenants | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($null -eq $Tenants) { + continue } - @{ - id = 'devices' - url = '/devices?$select=id,displayName,deviceId&$top=999' - method = 'GET' - } - @{ - id = 'servicePrincipals' - url = '/servicePrincipals?$select=id,displayName&$top=999' - method = 'GET' + # Expand tenant groups to get actual tenant list + $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $Tenants + # Check if the TenantFilter matches any tenant in the expanded list or AllTenants + if ($ExpandedTenants.value -contains $TenantFilter -or $ExpandedTenants.value -contains 'AllTenants') { + [pscustomobject]@{ + Tenants = $Tenants + Excluded = ($ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue) + Conditions = $ConfigEntry.Conditions + Actions = $ConfigEntry.Actions + LogType = $ConfigEntry.Type + } } - ) - $Response = New-GraphBulkRequest -TenantId $TenantFilter -Requests $Requests + } + + $Table = Get-CIPPTable -tablename 'cacheauditloglookups' + $1dayago = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $Lookups = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$TenantFilter' and Timestamp gt datetime'$1dayago'" + if (!$Lookups) { + # Collect bulk data for users/groups/devices/applications + $Requests = @( + @{ + id = 'users' + url = '/users?$select=id,displayName,userPrincipalName,accountEnabled&$top=999' + method = 'GET' + } + @{ + id = 'groups' + url = '/groups?$select=id,displayName,mailEnabled,securityEnabled&$top=999' + method = 'GET' + } + @{ + id = 'devices' + url = '/devices?$select=id,displayName,deviceId&$top=999' + method = 'GET' + } + @{ + id = 'servicePrincipals' + url = '/servicePrincipals?$select=id,displayName&$top=999' + method = 'GET' + } + ) + $Response = New-GraphBulkRequest -TenantId $TenantFilter -Requests $Requests + $Users = ($Response | Where-Object { $_.id -eq 'users' }).body.value ?? @() + $Groups = ($Response | Where-Object { $_.id -eq 'groups' }).body.value ?? @() + $Devices = ($Response | Where-Object { $_.id -eq 'devices' }).body.value ?? @() + $ServicePrincipals = ($Response | Where-Object { $_.id -eq 'servicePrincipals' }).body.value ?? @() + # Cache the lookups for 1 day + $Entities = @( + @{ + PartitionKey = $TenantFilter + RowKey = 'users' + Data = [string]($Users | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'groups' + Data = [string]($Groups | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'devices' + Data = [string]($Devices | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'servicePrincipals' + Data = [string]($ServicePrincipals | ConvertTo-Json -Compress) + } + ) + # Save the cached lookups + Add-CIPPAzDataTableEntity @Table -Entity $Entities -Force + Write-Information "Cached directory lookups for tenant $TenantFilter" + } else { + # Use cached lookups + $Users = (($Lookups | Where-Object { $_.RowKey -eq 'users' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $Groups = (($Lookups | Where-Object { $_.RowKey -eq 'groups' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $Devices = (($Lookups | Where-Object { $_.RowKey -eq 'devices' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $ServicePrincipals = (($Lookups | Where-Object { $_.RowKey -eq 'servicePrincipals' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + Write-Information "Using cached directory lookups for tenant $TenantFilter" + } # partner users $PartnerUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$select=id,displayName,userPrincipalName,accountEnabled&`$top=999" -AsApp $true -NoAuthCheck $true - $Users = ($Response | Where-Object { $_.id -eq 'users' }).body.value - $Groups = ($Response | Where-Object { $_.id -eq 'groups' }).body.value ?? @() - $Devices = ($Response | Where-Object { $_.id -eq 'devices' }).body.value ?? @() - $ServicePrincipals = ($Response | Where-Object { $_.id -eq 'servicePrincipals' }).body.value - Write-Warning '## Audit Log Configuration ##' Write-Information ($Configuration | ConvertTo-Json -Depth 10) @@ -185,12 +234,15 @@ function Test-CIPPAuditLogRules { throw $_ } + $AuditLogUserExclusions = Get-CIPPTable -TableName 'AuditLogUserExclusions' + $ExcludedUsers = Get-CIPPAzDataTableEntity @AuditLogUserExclusions -Filter "PartitionKey eq '$TenantFilter'" + if ($LogCount -gt 0) { $LocationTable = Get-CIPPTable -TableName 'knownlocationdbv2' $ProcessedData = foreach ($AuditRecord in $SearchResults) { $RecordStartTime = Get-Date - Write-Information "Processing RowKey $($AuditRecord.id)" - $RootProperties = $AuditRecord | Select-Object * -ExcludeProperty auditData + Write-Information "Processing RowKey $($AuditRecord.id) - $($TenantFilter)." + $RootProperties = $AuditRecord $Data = $AuditRecord.auditData | Select-Object *, CIPPAction, CIPPClause, CIPPGeoLocation, CIPPBadRepIP, CIPPHostedIP, CIPPIPDetected, CIPPLocationInfo, CIPPExtendedProperties, CIPPDeviceProperties, CIPPParameters, CIPPModifiedProperties, AuditRecord -ErrorAction SilentlyContinue try { # Attempt to locate GUIDs in $Data and match them with their corresponding user, group, device, or service principal recursively by checking each key/value once located lets store these mapped values in a CIPP$KeyName property @@ -341,6 +393,13 @@ function Test-CIPPAuditLogRules { if ($condition.Property.label -eq 'CIPPGeoLocation' -and !$AddedLocationCondition) { $conditionStrings.Add("`$_.HasLocationData -eq `$true") $CIPPClause.Add('HasLocationData is true') + $ExcludedUsers = $ExcludedUsers | Where-Object { $_.Type -eq 'Location' } + # Build single -notin condition against all excluded user keys + $ExcludedUserKeys = @($ExcludedUsers.RowKey) + if ($ExcludedUserKeys.Count -gt 0) { + $conditionStrings.Add("`$(`$_.CIPPUserKey) -notin @('$($ExcludedUserKeys -join "', '")')") + $CIPPClause.Add("CIPPUserKey not in [$($ExcludedUserKeys -join ', ')]") + } $AddedLocationCondition = $true } $value = if ($condition.Input.value -is [array]) { diff --git a/Modules/CIPPCore/build.psd1 b/Modules/CIPPCore/build.psd1 new file mode 100644 index 000000000000..793b0a6ba53b --- /dev/null +++ b/Modules/CIPPCore/build.psd1 @@ -0,0 +1,11 @@ +@{ + Path = 'CIPPCore.psd1' + OutputDirectory = '../../Output' + VersionedOutputDirectory = $false + CopyPaths = @( + 'lib' + ) + Encoding = 'UTF8' + Prefix = $null + Suffix = $null +} diff --git a/Modules/CIPPCore/Public/AdditionalPermissions.json b/Modules/CIPPCore/lib/data/AdditionalPermissions.json similarity index 100% rename from Modules/CIPPCore/Public/AdditionalPermissions.json rename to Modules/CIPPCore/lib/data/AdditionalPermissions.json diff --git a/Modules/CIPPCore/Public/ConversionTable.csv b/Modules/CIPPCore/lib/data/ConversionTable.csv similarity index 99% rename from Modules/CIPPCore/Public/ConversionTable.csv rename to Modules/CIPPCore/lib/data/ConversionTable.csv index 9407f70d6cb7..27ee53d2fe35 100644 --- a/Modules/CIPPCore/Public/ConversionTable.csv +++ b/Modules/CIPPCore/lib/data/ConversionTable.csv @@ -65,6 +65,7 @@ Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e087 Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government @@ -3770,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery @@ -4421,6 +4423,44 @@ Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,7 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics diff --git a/Modules/CIPPCore/Public/OrganizationManagementRoles.json b/Modules/CIPPCore/lib/data/OrganizationManagementRoles.json similarity index 100% rename from Modules/CIPPCore/Public/OrganizationManagementRoles.json rename to Modules/CIPPCore/lib/data/OrganizationManagementRoles.json diff --git a/Modules/CIPPCore/Public/PermissionsTranslator.json b/Modules/CIPPCore/lib/data/PermissionsTranslator.json similarity index 100% rename from Modules/CIPPCore/Public/PermissionsTranslator.json rename to Modules/CIPPCore/lib/data/PermissionsTranslator.json diff --git a/Modules/CIPPCore/Public/SAMManifest.json b/Modules/CIPPCore/lib/data/SAMManifest.json similarity index 96% rename from Modules/CIPPCore/Public/SAMManifest.json rename to Modules/CIPPCore/lib/data/SAMManifest.json index ea87fa1ee51e..534b0a29e5de 100644 --- a/Modules/CIPPCore/Public/SAMManifest.json +++ b/Modules/CIPPCore/lib/data/SAMManifest.json @@ -11,6 +11,15 @@ ] }, "requiredResourceAccess": [ + { + "resourceAppId": "c5393580-f805-4401-95e8-94b7a6ef2fc2", + "resourceAccess": [ + { + "id": "594c1fb6-4f81-4475-ae41-0c394909246c", + "type": "Scope" + } + ] + }, { "resourceAppId": "aeb86249-8ea3-49e2-900b-54cc8e308f85", "resourceAccess": [ @@ -538,6 +547,18 @@ { "id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", "type": "Role" + }, + { + "id": "2d9bd318-b883-40be-9df7-63ec4fcdc424", + "type": "Role" + }, + { + "id": "c8948c23-e66b-42db-83fd-770b71ab78d2", + "type": "Role" + }, + { + "id": "a94a502d-0281-4d15-8cd2-682ac9362c4c", + "type": "Role" } ] }, diff --git a/Modules/CIPPCore/Public/blank.json b/Modules/CIPPCore/lib/data/blank.json similarity index 100% rename from Modules/CIPPCore/Public/blank.json rename to Modules/CIPPCore/lib/data/blank.json diff --git a/Modules/CippEntrypoints/CippEntrypoints.psm1 b/Modules/CippEntrypoints/CippEntrypoints.psm1 index 963614aa0aad..cda294332f1a 100644 --- a/Modules/CippEntrypoints/CippEntrypoints.psm1 +++ b/Modules/CippEntrypoints/CippEntrypoints.psm1 @@ -21,6 +21,7 @@ function Receive-CippHttpTrigger { if ($Request.Headers.'x-ms-coldstart' -eq 1) { Write-Information '** Function app cold start detected **' } + Write-Debug "CIPP_ACTION=$($Request.Params.CIPPEndpoint)" $ConfigTable = Get-CIPPTable -tablename Config $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" @@ -171,7 +172,7 @@ function Receive-CippOrchestrationTrigger { Entrypoint #> param($Context) - + Write-Debug "CIPP_ACTION=$($Item.Command ?? $Item.FunctionName)" try { if (Test-Json -Json $Context.Input) { $OrchestratorInput = $Context.Input | ConvertFrom-Json @@ -180,6 +181,7 @@ function Receive-CippOrchestrationTrigger { } Write-Information "Orchestrator started $($OrchestratorInput.OrchestratorName)" Write-Warning "Receive-CippOrchestrationTrigger - $($OrchestratorInput.OrchestratorName)" + Set-DurableCustomStatus -CustomStatus $OrchestratorInput.OrchestratorName $DurableRetryOptions = @{ FirstRetryInterval = (New-TimeSpan -Seconds 5) MaxNumberOfAttempts = if ($OrchestratorInput.MaxAttempts) { $OrchestratorInput.MaxAttempts } else { 1 } @@ -195,6 +197,10 @@ function Receive-CippOrchestrationTrigger { $DurableMode = 'Sequence' $NoWait = $false } + 'NoScaling' { + $DurableMode = 'NoScaling' + $NoWait = $false + } default { $DurableMode = 'FanOut (Default)' $NoWait = $true @@ -203,36 +209,65 @@ function Receive-CippOrchestrationTrigger { Write-Information "Durable Mode: $DurableMode" $RetryOptions = New-DurableRetryOptions @DurableRetryOptions - - if ($Context.IsReplaying -ne $true -and $OrchestratorInput.SkipLog -ne $true) { - Write-LogMessage -API $OrchestratorInput.OrchestratorName -tenant $OrchestratorInput.TenantFilter -message "Started $($OrchestratorInput.OrchestratorName)" -sev info - } - if (!$OrchestratorInput.Batch -or ($OrchestratorInput.Batch | Measure-Object).Count -eq 0) { - $Batch = (Invoke-ActivityFunction -FunctionName 'CIPPActivityFunction' -Input $OrchestratorInput.QueueFunction -ErrorAction Stop) + $Batch = (Invoke-ActivityFunction -FunctionName 'CIPPActivityFunction' -Input $OrchestratorInput.QueueFunction -ErrorAction Stop) | Where-Object { $null -ne $_.FunctionName } } else { - $Batch = $OrchestratorInput.Batch + $Batch = $OrchestratorInput.Batch | Where-Object { $null -ne $_.FunctionName } } if (($Batch | Measure-Object).Count -gt 0) { Write-Information "Batch Count: $($Batch.Count)" - $Tasks = foreach ($Item in $Batch) { - $DurableActivity = @{ - FunctionName = 'CIPPActivityFunction' - Input = $Item - NoWait = $NoWait - RetryOptions = $RetryOptions - ErrorAction = 'Stop' + $Output = foreach ($Item in $Batch) { + if ($DurableMode -eq 'NoScaling') { + $Activity = @{ + FunctionName = 'CIPPActivityFunction' + Input = $Item + ErrorAction = 'Stop' + } + Invoke-ActivityFunction @Activity + } else { + $DurableActivity = @{ + FunctionName = 'CIPPActivityFunction' + Input = $Item + NoWait = $NoWait + RetryOptions = $RetryOptions + ErrorAction = 'Stop' + } + Invoke-DurableActivity @DurableActivity } - Invoke-DurableActivity @DurableActivity } - if ($NoWait -and $Tasks) { - $null = Wait-ActivityFunction -Task $Tasks + + if ($NoWait -and $Output) { + $Output = $Output | Where-Object { $_.GetType().Name -eq 'ActivityInvocationTask' } + if (($Output | Measure-Object).Count -gt 0) { + Write-Information "Waiting for ($($Output.Count)) activity functions to complete..." + $Results = foreach ($Task in $Output) { + try { + Wait-ActivityFunction -Task $Task + } catch {} + } + } else { + $Results = @() + } + } else { + $Results = $Output } } - if ($Context.IsReplaying -ne $true -and $OrchestratorInput.SkipLog -ne $true) { - Write-LogMessage -API $OrchestratorInput.OrchestratorName -tenant $tenant -message "Finished $($OrchestratorInput.OrchestratorName)" -sev Info + if ($Results -and $OrchestratorInput.PostExecution) { + Write-Information "Running post execution function $($OrchestratorInput.PostExecution.FunctionName)" + $PostExecParams = @{ + FunctionName = $OrchestratorInput.PostExecution.FunctionName + Parameters = $OrchestratorInput.PostExecution.Parameters + Results = @($Results) + } + if ($null -ne $PostExecParams.FunctionName) { + $null = Invoke-ActivityFunction -FunctionName CIPPActivityFunction -Input $PostExecParams + Write-Information "Post execution function $($OrchestratorInput.PostExecution.FunctionName) completed" + } else { + Write-Information 'No post execution function name provided' + Write-Information ($PostExecParams | ConvertTo-Json -Depth 10) + } } } catch { Write-Information "Orchestrator error $($_.Exception.Message) line $($_.InvocationInfo.ScriptLineNumber)" @@ -252,12 +287,21 @@ function Receive-CippActivityTrigger { Entrypoint #> param($Item) + Write-Debug "CIPP_ACTION=$($Item.Command ?? $Item.FunctionName)" Write-Warning "Hey Boo, the activity function is running. Here's some info: $($Item | ConvertTo-Json -Depth 10 -Compress)" try { - $Start = Get-Date $Output = $null Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName - + $metric = @{ + Kind = 'CIPPCommandStart' + InvocationId = "$($ExecutionContext.InvocationId)" + Command = $Item.Command + Tenant = $Item.TenantFilter.defaultDomainName + TaskName = $Item.TaskName + JSONData = ($Item | ConvertTo-Json -Depth 10 -Compress) + } | ConvertTo-Json -Depth 10 -Compress + + Write-Information -MessageData $metric -Tag 'CIPPCommandStart' if ($Item.QueueId) { if ($Item.QueueName) { $QueueName = $Item.QueueName @@ -277,56 +321,86 @@ function Receive-CippActivityTrigger { if ($Item.FunctionName) { $FunctionName = 'Push-{0}' -f $Item.FunctionName + + # Prepare telemetry metadata + $taskName = if ($Item.Command) { $Item.Command } else { $FunctionName } + $metadata = @{ + Command = if ($Item.Command) { $Item.Command } else { $FunctionName } + FunctionName = $FunctionName + } + + # Add tenant information if available + if ($Item.TaskInfo) { + if ($Item.TaskInfo.Tenant) { + $metadata['Tenant'] = $Item.TaskInfo.Tenant + } + if ($Item.TaskInfo.Name) { + $metadata['JobName'] = $Item.TaskInfo.Name + } + if ($Item.TaskInfo.Recurrence) { + $metadata['Recurrence'] = $Item.TaskInfo.Recurrence + } + } + + # Add tenant from other common fields + if (-not $metadata['Tenant']) { + if ($Item.TenantFilter) { + $metadata['Tenant'] = $Item.TenantFilter + } elseif ($Item.Tenant) { + $metadata['Tenant'] = $Item.Tenant + } + } + + # Add queue information + if ($Item.QueueId) { + $metadata['QueueId'] = $Item.QueueId + } + if ($Item.QueueName) { + $metadata['QueueName'] = $Item.QueueName + } + try { - Write-Warning "Activity starting Function: $FunctionName." - $Output = Invoke-Command -ScriptBlock { & $FunctionName -Item $Item } - Write-Warning "Activity completed Function: $FunctionName." + Write-Verbose "Activity starting Function: $FunctionName." + Invoke-Command -ScriptBlock { & $FunctionName -Item $Item } + $Status = 'Completed' + + Write-Verbose "Activity completed Function: $FunctionName." if ($TaskStatus) { $QueueTask.Status = 'Completed' $null = Set-CippQueueTask @QueueTask } } catch { $ErrorMsg = $_.Exception.Message + $Status = 'Failed' if ($TaskStatus) { $QueueTask.Status = 'Failed' + $QueueTask.Message = $ErrorMsg $null = Set-CippQueueTask @QueueTask } } } else { $ErrorMsg = 'Function not provided' + $Status = 'Failed' if ($TaskStatus) { $QueueTask.Status = 'Failed' $null = Set-CippQueueTask @QueueTask } } - - $End = Get-Date - - try { - $Stats = @{ - FunctionType = 'Durable' - Entity = $Item - Start = $Start - End = $End - ErrorMsg = $ErrorMsg - } - Write-CippFunctionStats @Stats - } catch { - Write-Information "Error adding activity stats: $($_.Exception.Message)" - } } catch { - Write-Information "Error in Receive-CippActivityTrigger: $($_.Exception.Message)" + Write-Error "Error in Receive-CippActivityTrigger: $($_.Exception.Message)" + $Status = 'Failed' + $Output = $null if ($TaskStatus) { $QueueTask.Status = 'Failed' $null = Set-CippQueueTask @QueueTask } } - # Return the captured output if it exists and is not null, otherwise return $true + # Return the captured output if it exists and is not null if ($null -ne $Output -and $Output -ne '') { return $Output } else { - return $true + return "Activity function ended with status $($Status)." } } @@ -372,7 +446,41 @@ function Receive-CIPPTimerTrigger { $Parameters = $Function.Parameters | ConvertTo-Json | ConvertFrom-Json -AsHashtable } - $Results = Invoke-Command -ScriptBlock { & $Function.Command @Parameters } + # Prepare telemetry metadata + $metadata = @{ + Command = $Function.Command + Cron = $Function.Cron + FunctionId = $Function.Id + TriggerType = 'Timer' + } + + # Add parameters if available + if ($Parameters.Count -gt 0) { + $metadata['ParameterCount'] = $Parameters.Count + # Add specific known parameters + Write-Host "CIPP TIMER PARAMETERS: $($Parameters | ConvertTo-Json -Depth 10 -Compress)" + if ($Parameters.Tenant) { + $metadata['Tenant'] = $Parameters.Tenant + } + if ($Parameters.TenantFilter) { + $metadata['Tenant'] = $Parameters.TenantFilter + } + if ($Parameters.TenantFilter.value) { + $metadata['Tenant'] = $Parameters.TenantFilter.value + } + if ($Parameters.Tenant.value) { + $metadata['Tenant'] = $Parameters.Tenant.value + } + if ($Parameters.Tenant.defaultDomainName) { + $metadata['Tenant'] = $Parameters.Tenant.defaultDomainName + } + } + + # Wrap the timer function execution with telemetry + + Invoke-Command -ScriptBlock { & $Function.Command @Parameters } + + if ($Results -match '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') { $FunctionStatus.OrchestratorId = $Results -join ',' $Status = 'Started' diff --git a/Modules/CippExtensions/CippExtensions.psm1 b/Modules/CippExtensions/CippExtensions.psm1 index ce47d5f7e719..633b97d8e97c 100644 --- a/Modules/CippExtensions/CippExtensions.psm1 +++ b/Modules/CippExtensions/CippExtensions.psm1 @@ -1,3 +1,5 @@ +# ModuleBuilder will concatenate all function files into this module +# This block is only used when running from source (not built) $Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Public\*.ps1") -Recurse -ErrorAction SilentlyContinue) $Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Private\*.ps1") -Recurse -ErrorAction SilentlyContinue) $Functions = $Public + $Private diff --git a/Modules/CippExtensions/ConversionTable.csv b/Modules/CippExtensions/ConversionTable.csv index 9407f70d6cb7..27ee53d2fe35 100644 --- a/Modules/CippExtensions/ConversionTable.csv +++ b/Modules/CippExtensions/ConversionTable.csv @@ -65,6 +65,7 @@ Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e087 Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government @@ -3770,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery @@ -4421,6 +4423,44 @@ Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,7 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics diff --git a/Modules/CippExtensions/Public/ConversionTable.csv b/Modules/CippExtensions/Public/ConversionTable.csv index 9407f70d6cb7..27ee53d2fe35 100644 --- a/Modules/CippExtensions/Public/ConversionTable.csv +++ b/Modules/CippExtensions/Public/ConversionTable.csv @@ -65,6 +65,7 @@ Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e087 Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government @@ -3770,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery @@ -4421,6 +4423,44 @@ Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,7 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 index b44dadbb2234..5d85b9d5c54b 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 @@ -21,16 +21,7 @@ function Get-ExtensionAPIKey { $APIKey = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq '$Extension' and RowKey eq '$Extension'").APIKey } else { $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Get-AzContext - if ($Context.Subscription) { - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - $APIKey = (Get-AzKeyVaultSecret -VaultName $keyvaultname -Name $Extension -AsPlainText) + $APIKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -AsPlainText) } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue } diff --git a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 index eb4aca60cc4b..f8b0975bc963 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 @@ -24,16 +24,7 @@ function Set-ExtensionAPIKey { Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $Context = Get-AzContext - if ($Context.Subscription) { - if ($Context.Subscription.Id -ne $SubscriptionId) { - Write-Information "Setting context to subscription $SubscriptionId" - $null = Set-AzContext -SubscriptionId $SubscriptionId - } - } - $null = Set-AzKeyVaultSecret -VaultName $keyvaultname -Name $Extension -SecretValue (ConvertTo-SecureString -AsPlainText -Force -String $APIKey) + $null = Set-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -SecretValue (ConvertTo-SecureString -AsPlainText -Force -String $APIKey) } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue } diff --git a/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 index d08a46c09027..3ddeb244de00 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 @@ -228,6 +228,15 @@ function Sync-CippExtensionData { $Data = $Data.Value } + # Filter out excluded licenses to respect the ExcludedLicenses table + if ($_.id -eq 'Licenses') { + $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses + $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable + if ($ExcludedSkuList) { + $Data = $Data | Where-Object { $_.skuId -notin $ExcludedSkuList.GUID } + } + } + $Entity = @{ PartitionKey = $TenantFilter RowKey = $_.id diff --git a/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 b/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 index 28c114d3d968..df7b1dec76a4 100644 --- a/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 +++ b/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 @@ -12,7 +12,12 @@ function Invoke-GitHubApiRequest { ) $Table = Get-CIPPTable -TableName Extensionsconfig - $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).GitHub + $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config + if ($ExtensionConfig -and (Test-Json -Json $ExtensionConfig)) { + $Configuration = ($ExtensionConfig | ConvertFrom-Json).GitHub + } else { + $Configuration = @{ Enabled = $false } + } if ($Configuration.Enabled) { $APIKey = Get-ExtensionAPIKey -Extension 'GitHub' @@ -59,6 +64,8 @@ function Invoke-GitHubApiRequest { Body = $Body Accept = $Accept } - (Invoke-RestMethod -Uri 'https://cippy.azurewebsites.net/api/ExecGitHubAction' -Method POST -Body ($Action | ConvertTo-Json -Depth 10) -ContentType 'application/json').Results + $Body = $Action | ConvertTo-Json -Depth 10 + + (Invoke-RestMethod -Uri 'https://cippy.azurewebsites.net/api/ExecGitHubAction' -Method POST -Body $Body -ContentType 'application/json').Results } } diff --git a/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 index 5965ec745c10..fc9968070e66 100644 --- a/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 +++ b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 @@ -3,11 +3,8 @@ function Get-GradientToken { $Configuration ) if ($Configuration.vendorKey) { - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - $partnerApiKey = (Get-AzKeyVaultSecret -VaultName $keyvaultname -Name 'Gradient' -AsPlainText) + $partnerApiKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name 'Gradient' -AsPlainText) $authorizationToken = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("$($configuration.vendorKey):$($partnerApiKey)")) $headers = [hashtable]@{ diff --git a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 index 48c566363a67..365b387e09fc 100644 --- a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 +++ b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 @@ -9,23 +9,16 @@ function Get-HIBPAuth { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'HIBP' and RowKey eq 'HIBP'").APIKey } else { - $null = Connect-AzAccount -Identity - $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 - $null = Set-AzContext -SubscriptionId $SubscriptionId - $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] try { - $Secret = Get-AzKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText -ErrorAction Stop + $Secret = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText -ErrorAction Stop } catch { $Secret = $null } if ([string]::IsNullOrEmpty($Secret) -and $env:CIPP_HOSTED -eq 'true') { $VaultName = 'hibp-kv' - if ($SubscriptionId -ne $env:CIPP_HOSTED_KV_SUB -and $env:CIPP_HOSTED_KV_SUB -match '^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$') { - $null = Set-AzContext -SubscriptionId $env:CIPP_HOSTED_KV_SUB - } - $Secret = Get-AzKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText + $Secret = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText } } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 index 87f708d156a4..c5f16239f905 100644 --- a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 @@ -7,9 +7,21 @@ function Invoke-NinjaOneTenantSync { $StartQueueTime = Get-Date Write-Information "$(Get-Date) - Starting NinjaOne Sync" - # Stagger start - # Check Global Rate Limiting - $CurrentMap = Get-ExtensionRateLimit -ExtensionName 'NinjaOne' -ExtensionPartitionKey 'NinjaOneMapping' -RateLimit 5 -WaitTime 10 + $MappingTable = Get-CIPPTable -TableName CippMapping + $CurrentMap = (Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq 'NinjaOneMapping'") + $CurrentMap | ForEach-Object { + if ($Null -ne $_.lastEndTime -and $_.lastEndTime -ne '') { + $_.lastEndTime = (Get-Date($_.lastEndTime)) + } else { + $_ | Add-Member -NotePropertyName lastEndTime -NotePropertyValue $Null -Force + } + + if ($Null -ne $_.lastStartTime -and $_.lastStartTime -ne '') { + $_.lastStartTime = (Get-Date($_.lastStartTime)) + } else { + $_ | Add-Member -NotePropertyName lastStartTime -NotePropertyValue $Null -Force + } + } $StartTime = Get-Date @@ -1642,7 +1654,7 @@ function Invoke-NinjaOneTenantSync { $ParsedAdmins = [PSCustomObject]@{} $AdminUsers | Select-Object displayname, userPrincipalName -Unique | ForEach-Object { - $ParsedAdmins | Add-Member -NotePropertyName $_.displayname -NotePropertyValue $_.userPrincipalName + $ParsedAdmins | Add-Member -NotePropertyName $_.displayname -NotePropertyValue $_.userPrincipalName -Force } $TenantDetailsItems = [PSCustomObject]@{ @@ -1840,7 +1852,7 @@ function Invoke-NinjaOneTenantSync { $StandardsDefinitions = Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP/refs/heads/main/src/data/standards.json' $AppliedStandards = Get-CIPPStandards -TenantFilter $Customer.defaultDomainName $Templates = Get-CIPPTable 'templates' - $StandardTemplates = Get-CIPPAzDataTableEntity @Templates | Where-Object { $_.PartitionKey -eq 'StandardsTemplateV2' } + $StandardTemplates = Get-CIPPAzDataTableEntity @Templates -Filter "PartitionKey eq 'StandardsTemplateV2'" $ParsedStandards = foreach ($Standard in $AppliedStandards) { Write-Information "Processing Standard: $($Standard | ConvertTo-Json -Depth 10)" diff --git a/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 b/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 index f5e5198a1633..c0f429863035 100644 --- a/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 +++ b/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 @@ -1,7 +1,7 @@ function Get-PwPushAccount { $Table = Get-CIPPTable -TableName Extensionsconfig $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).PWPush - if ($Configuration.Enabled -eq $true -and $Configuration.PWPushPro -eq $true) { + if ($Configuration.Enabled -eq $true -and $Configuration.UseBearerAuth -eq $true) { Set-PwPushConfig -Configuration $Configuration Get-PushAccount } else { diff --git a/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 b/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 index 5a44c7b5cf4d..1fdc01e00176 100644 --- a/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 +++ b/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 @@ -8,7 +8,7 @@ function Test-SherwebMigrationAccounts { $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json $Config = $ExtensionConfig.Sherweb #First get a list of all subscribed skus for this tenant, that are in the transfer window. - $Licenses = (Get-CIPPLicenseOverview -TenantFilter $TenantFilter) | ForEach-Object { $_.terminfo = ($_.terminfo | ConvertFrom-Json -ErrorAction SilentlyContinue) ; $_ } | Where-Object { $_.terminfo -ne $null -and $_.terminfo.TransferWindow -le 7 } + $Licenses = (Get-CIPPLicenseOverview -TenantFilter $TenantFilter) | Where-Object { $null -ne $_.terminfo -and $_.terminfo.TransferWindow -le 7 } #now check if this exact count of licenses is available at Sherweb, if not, we need to migrate them. $SherwebLicenses = Get-SherwebCurrentSubscription -TenantFilter $TenantFilter diff --git a/Modules/CippExtensions/build.psd1 b/Modules/CippExtensions/build.psd1 new file mode 100644 index 000000000000..ca804a1fbdb1 --- /dev/null +++ b/Modules/CippExtensions/build.psd1 @@ -0,0 +1,11 @@ +@{ + Path = 'CippExtensions.psd1' + OutputDirectory = '../../Output' + VersionedOutputDirectory = $false + CopyPaths = @( + 'ConversionTable.csv' + ) + Encoding = 'UTF8' + Prefix = $null + Suffix = $null +} diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 deleted file mode 100644 index 075a9c7bd300..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 +++ /dev/null @@ -1,247 +0,0 @@ -@{ - GUID = '82b0bf19-c5cd-4c30-8db4-b458a4b84495' - RootModule = './Microsoft.Teams.ConfigAPI.Cmdlets.psm1' - ModuleVersion = '8.0808.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 -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDRM6myi7t9athz -# U9gg0Y3Gr3xrSqEo6dsPK90+XvTmRaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL4JYMHlbbLNyOraR1N/anXv -# Hp1lTW0FXQrcSv+YEDlBMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAjRyiIGZPErrtlraTo39VP7MO2AeC+rji73UV2wz0JSXnzkz6pAhM5/dv -# rdP6SpuybOHBDNTlOPkdzFJyytnLfPR5RLW0ZZ/ocBJvJOnBVDYh9q+31U+1aFmh -# fC/bqa2ryw6i4UX8Pz0e174M1zaPD9tH7vZ2KoLuyh3fXc3v4DBtYKof48CHh9pI -# R9rDWGnaiCwxogQ1Hu8MAtC7oKxkyK47J2vnIduSQ2TAyzcWpl3EXGMFVnjI3GND -# 6o70t5rfWyjck8jFLNZDGH02IhMJ9hzw+cIbukZTjjoA+54bP11TzhbfmBvNrT/n -# 1i63o8uCl1s6/cSTb4Tqg4O9i7Qvn6GCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBDXXwTZkHsX6VJE4+O8IaDK4ytGMUpS151uZzDTBeW+QIGaKNYMHOH -# GBMyMDI1MDgyMTA2NTExMi4yNTdaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9oMvJmpUXSLBAAEAAAH2MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNFoXDTI1MTAyMjE4MzEwNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZCMDUt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0UJeLMR/N9WPBZhuKVFF -# +eWJZ68Wujdj4X6JR05cxO5CepNXo17rVazwWLkm5AjaVh19ZVjDChHzimxsoaXx -# Nu8IDggKwpXvpAAItv4Ux50e9S2uVwfKv57p9JKG+Q7VONShujl1NCMkcgSrPdmd -# /8zcsmhzcNobLomrCAIORZ8IwhYy4siVQlf1NKhlyAzmkWJD0N+60IiogFBzg3yI -# SsvroOx0x1xSi2PiRIQlTXE74MggZDIDKqH/hb9FT2kK/nV/aXjuo9LMrrRmn44o -# YYADe/rO95F+SG3uuuhf+H4IriXr0h9ptA6SwHJPS2VmbNWCjQWq5G4YkrcqbPMa -# x7vNXUwu7T65E8fFPd1IuE9RsG4TMAV7XkXBopmPNfvL0hjxg44kpQn384V46o+z -# dQqy5K9dDlWm/J6vZtp5yA1PyD3w+HbGubS0niEQ1L6wGOrPfzIm0FdOn+xFo48E -# Rl+Fxw/3OvXM5CY1EqnzEznPjzJc7OJwhJVR3VQDHjBcEFTOvS9E0diNu1eocw+Z -# Ckz4Pu/oQv+gqU+bfxL8e7PFktfRDlM6FyOzjP4zuI25gD8tO9zJg6g6fRpaZc43 -# 9mAbkl3zCVzTLDgchv6SxQajJtvvoQaZxQf0tRiPcbr2HWfMoqqd9uiQ0hTUEhG4 -# 4FBSTeUPZeEenRCWadCW4G8CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRIwZsJuOcJ -# fScPWcXZuBA4B89K8jAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA13kBirH1cHu1 -# WYR1ysj125omGtQ0PaQkEzwGb70xtqSoI+svQihsgdTYxaPfp2IVFdgjaMaBi81w -# B8/nu866FfFKKdhdp3wnMZ91PpP4Ooe7Ncf6qICkgSuwgdIdQvqE0h8VQ5QW5sDV -# 4Q0Jnj4f7KHYx4NiM8C4jTw8SQtsuxWiTH2Hikf3QYB71a7dB9zgHOkW0hgUEeWO -# 9mh2wWqYS/Q48ASjOqYw/ha54oVOff22WaoH+/Hxd9NTEU/4vlvsRIMWT0jsnNI7 -# 1jVArT4Q9Bt6VShWzyqraE6SKUoZrEwBpVsI0LMg2X3hOLblC1vxM3+wMyOh97aF -# Os7sFnuemtI2Mfj8qg16BZTJxXlpPurWrG+OBj4BoTDkC9AxXYB3yEtuwMs7pRWL -# yxIxw/wV9THKUGm+x+VE0POLwkrSMgjulSXkpfELHWWiCVslJbFIIB/4Alv+jQJS -# KAJuo9CErbm2qeDk/zjJYlYaVGMyKuYZ+uSRVKB2qkEPcEzG1dO9zIa1Mp32J+zz -# W3P7suJfjw62s3hDOLk+6lMQOR04x+2o17G3LceLkkxJm41ErdiTjAmdClen9yl6 -# HgMpGS4okjFCJX+CpOFX7gBA3PVxQWubisAQbL5HgTFBtQNEzcCdh1GYw/6nzzNN -# t+0GQnnobBddfOAiqkzvItqXjvGyK1QwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAFU9eSpdxs0a06JFIuGFHIj/I+36ggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxRIiowIhgPMjAyNTA4MjEwNDQyMThaGA8yMDI1MDgyMjA0NDIxOFowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FEiKgIBADAHAgEAAgIJMzAHAgEAAgIS5TAK -# AgUA7FJzqgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQAnRU6c/CwB4LJz -# vEucq5Q3iW1rouq1E+CzOW11i/XkDS/b3BxgJW8XKjHI0P/d7f8b0CcShThov5GW -# vB4VIklfrOAXFIascQi6kV6AJiCWjCBogR85HNeFvPi7VexUKL6gBht/bCNZlZ4r -# NCECe3EkVBgPOyYT6LbjqcnZ8eAaVBFNu7KNzJE+RvX4NmydfEn5N7nD2sB3PzQh -# KPE/8TfuIt+7OD8yJFPKu5cFW9DzI/R+1uBaFdeS0PC5vCIs3CgheZWfkJMDraxG -# n5gX8LjGB0t4C+879vohHazJKwTkABUQRkGViUakILC0VQ+lR+3hazBKUKc+g931 -# ILC2Cnm3MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH2gy8malRdIsEAAQAAAfYwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgbAjp411W/ifJ -# tiJ3ojkmAwitxvgn/NWCyBt4ohVcTbEwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCArYUzxlF6m5USLS4f8NXL/8aoNEVdsCZRmF+LlQjG2ojCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9oMvJmpUXSLBAAEAAAH2 -# MCIEIE6Qz7707wQy8wDkv5hauUent2Es6/wVb2s77V5v5gSlMA0GCSqGSIb3DQEB -# CwUABIICACecD/0b0hNJKEQ13DIeC4nrgxfedvpExnz3z9uceY53qKGrtJu/jxBi -# meINrUmrUS4rmV+Rg9XWRG0p1z8Y/jHCiwVQDGoj+XVRBVr9FL+26B+HoDfDd5wH -# k/t9pi3oCo1yVKQmNYkFkD6anPZXOisBJPtAgTvC23Y4v9Ah2/sYwvqjOOnlqAAg -# 292uO6GJ7jHnwrt0DCof3Iy96yf9lOn1+0oisNtgRrXA1lwZ1gsnpCEZ73A5mOEn -# A/umUtFkFPgydqIxN65Ezee+rTHOvKxF4Uherxy4nJGqieS0gPelMD48kpFl9gIK -# b6bL+2SpyrQitGJec/+y2hQa+HhOv+Sw1zw9d/4RzDiSefqwbXtFQItZX1Hbky1Q -# 7RonoqVjYDCDv9N4+B6uOxgGrC++wmTISng9AjTiORkZVeb/JeuyownOSR+Gz0oK -# KTxq9jFkiPzLAJHYe1VVh8AUJTxdYkOoimt4x6N0AbllY/7+aQAfZqoyLk3Azlze -# +yDCLC/xQtmWkPrRY7KnZhQlW4fzOs98/Ba7TZZlwnfmvEnBZgmci3zcOT525xJk -# zIO6aPKG/VC8NdQEOHnhTrKlVM9ScPJ1k5gym5X2qQsKa6ZP/sCVlMWpZtnohbRh -# 1Tm+RUd1wzr01FckHzixxuC2y80wN7h2YmiYGNWF13/Wpb4Lc5Iw -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 deleted file mode 100644 index 64d0a62100e1..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 +++ /dev/null @@ -1,267 +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 -# MIIoRQYJKoZIhvcNAQcCoIIoNjCCKDICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA11zYyqhtEZno0 -# vnR835d32vg185cJKudkjxJ9lgIViKCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiUwghohAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/XKtNBJBHJGGbe7wFtIYIf -# MWxPHreyoYsrh/7+1ayVMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEALcMjwIU6Ke4U03bIBkzCnNJ0OyHjOG41FOf6MEFy3ONq/7Te70iKCd4k -# SAjQQzalsPXe+YOj/dnM5XRdXI2zif7T3H6dpXFayz0d8n5Pl6/tDNreLILY/JQ5 -# PTLp5ISaIarx3vh030SKRRYc5Hnr1w08asaTFo1ILK9CykaRW4l4097oom9OE543 -# XYRsw96V8rbvJ2tHaDxyevxR+wWW5P1o5TgFW9u9eRa/sbB9nCGxgpM8HJWB3mgo -# 2gMlrB4wFHBWtS2Z8zfiznCyZ0FUJwiwbpQYDH1xc8xLwkPWRTOXQ/lzdessO9wI -# /ceUZUGYuKrqJwK4hXDGkt3bug6xSqGCF68wgherBgorBgEEAYI3AwMBMYIXmzCC -# F5cGCSqGSIb3DQEHAqCCF4gwgheEAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFZBgsq -# hkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCB/Inq4uiuVqhyFX0/3hOh5jXpC1xKq+mBj3yQfKluJDQIGaKSLO6PE -# GBIyMDI1MDgyMTA2NTEwOS45NFowBIACAfSggdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloIIR/jCCBygwggUQoAMCAQICEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJ -# KoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjQw -# NzI1MTgzMTEzWhcNMjUxMDIyMTgzMTEzWjCB0zELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3Bl -# cmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NTcxQS0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCowlZB5YCrgvC9KNiyM/RS -# +G+bSPRoA4mIwuDSwt/EqhNcB0oPqgy6rmsXmgSI7FX72jHQf3lDx+GhmrfH2XGC -# 5nJM4riXbG1yC0kK2NdGWUzZtOmM6DflFSsHLRwCWgFT0YkGzssE2txsfqsGI6+o -# NA2Jw9FnCrXrHKMyJ1TUnUAm5q33Iufu1qJ+gPnxuVgRwG+SPl0fWVr3NTzjpAN4 -# 6hE7o1yocuwPHz/NUpnE/fSZbpjtEyyq0HxwYKAbBVW6s6do0tezfWpNFPJUdfym -# k52hKKEJd6p5uAkJHMbzMb97+TShoGMUUaX7y4UQvALKHjAr1nn5rNPN9rYYPinq -# KG2yRezeWdbTlQp8MmEAAO3q+I5zRGT9zzM6KrOHSUql/95ZRjaj+G9wM9k2Atoe -# /J8OpvwBZoq87fqJFlJeqFLDxLEmjRMKmxsKOa3HQukeeptvVQXtyrT2QJx9ZMM9 -# w3XaltgupyTRsgh88ptzseeuQ1CSz+ZJtVlOcPJPc7zMX2rgMJ9Z6xKvVqTJwN24 -# bEJ0oG+C0mHVjEOrWyRPB5jHmIBZecHsozKWzdZBltO5tMIsu3xefy36yVwqbkOS -# +hu5uYdKuK5MDfBPIjLgXFqZMqbRUO72ZZ2zwy2NRIlXA1VWUFdpDdkxxWOKPJWh -# Q1W4Fj0xzBhwhArrbBDbQQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFEdVIZhQ1DdH -# A6XvXMgC5SMgqDUqMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDDOggo5jZ2dSN9 -# a4yIajP+i+hzV7zpXBZpk0V2BGY6hC5F7ict21k421Mc2TdKPeeTIGzPPFJtkRDQ -# N27Ioccjk/xXzuMW20aeVHTA8/bYUB5tu8Bu62QwxVAwXOFUFaJYPRUCe73HR+OJ -# 8soMBVcvCi6fmsIWrBtqxcVzsf/QM+IL4MGfe1TF5+9zFQLKzj4MLezwJintZZel -# nxZv+90GEOWIeYHulZyawHze5zj8/YaYAjccyQ4S7t8JpJihCGi5Y6vTuX8ozhOd -# 3KUiKubx/ZbBdBwUTOZS8hIzqW51TAaVU19NMlSrZtMMR3e2UMq1X0BRjeuucXAd -# PAmvIu1PggWG+AF80PeYvV55JqQp/vFMgjgnK3XlJeEd3mgj9caNKDKSAmtYDnus -# acALuu7f9lsU0Iwr8mPpfxfgvqYE5hrY0YrAfgDftgYOt5wn+pddZRi98tiocZ/x -# OFiXXZiDWvBIqlYuiUD8HV6oHDhNFy9VjQi802Lmyb7/8cn0DDo0m5H+4NHtfu8N -# eJylcyVE2AUzIANvwAUi9A90epxGlGitj5hQaW/N4nH/aA1jJ7MCiRusWEAKwnYF -# /J4vIISjoC7AQefnXU8oTx0rgm+WYtKgePtUVHc0cOTfNGTHQTGSYXxo52m+gqG7 -# AELGhn8mFvNLOu9nvgZWMoojK3kUDTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNZMIICQQIBATCCAQGhgdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQAEcefs0Ia6xnPZF9VvK7BjA/KQFaCBgzCB -# gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUA -# AgUA7FED0TAiGA8yMDI1MDgyMTAyMzI0OVoYDzIwMjUwODIyMDIzMjQ5WjB3MD0G -# CisGAQQBhFkKBAExLzAtMAoCBQDsUQPRAgEAMAoCAQACAhrSAgH/MAcCAQACAhMq -# MAoCBQDsUlVRAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAI -# AgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAHcM1+PhWV0k -# xgLGd7/kCIuE2o5QtS31WxQq5OSeS1guuqKT5kJT6xrB3AY+RydJmUGTnEiVRa8+ -# SJhq5AraU+BL0AdRPpYeX+g3bqXJU6tQ0j+MtpGlC9hym6zMJt/O9C6KNj3omCux -# M414UFZAyD/ikKghpdEfA7uCokIzv+VP4DDQWCiWgKqiRVrnpBZNdNXpTn8sRWvG -# 3tAvlIsUGoZVwMagJQACq7/AkjyFQ/UvF5GGSUDtEbzcXpSvS4HeGKkvqkXtOW7D -# JDLJsIDO6g4vz30YWC+oQJDdvjHexS+vzlcBWKPX+FXTJ4wVYkoRb69dSC+s63f7 -# P0X4IxGYX4oxggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg -# MjAxMAITMwAAAfvLy2w3Z+UwlQABAAAB+zANBglghkgBZQMEAgEFAKCCAUowGgYJ -# KoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCDOGlwvvb92 -# iXOMfr1G8RZxpr89qERLlAXER3nsQsuzNTCB+gYLKoZIhvcNAQkQAi8xgeowgecw -# geQwgb0EIDnbAqv8oIWVU1iJawIuwHiqGMRgQ/fEepioO7VJJOUYMIGYMIGApH4w -# fDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl -# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd -# TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAA -# AfswIgQgRNXvAqXCxMwoTWAo1pAE0VJtxsQXjqx0ZtqSrS5hlskwDQYJKoZIhvcN -# AQELBQAEggIARk6sdgzkvUsQVuMUmk8aaRIQRtCuIBcHm4bYu/ZV1pf1r4o/uE1l -# PfTAHHgDUXLpHHsW5wAeAvX2LCSHKbuUbBBww7BF7X2smJltcQacM5uLeNwoeQ49 -# Yj2S060/yB+QcJZKSkjhp1JK3j9heWZhoOc5srXi3LNSjNRyV2G1Kw2A9+vDZ2i+ -# uXJkX5jTdEB6mRc2IO9f1JukLDKhTHD89KK+1kRk49yZZ0AGDFR3Ga9saam1P8O6 -# HoirFVxZo0V1F8Cfq9WLCuAsq3SPlvKxZTkWxRMT6mCq0k10AnhPhZpZE8EwsjXH -# D5VjMOToGE9tL9WgQHN0lAknkAs6TXYEK+m5zk3vXeAzm3VIoO/ctVhEuBvOmkTP -# SUVFI/n7Iqv3jNsWK4vLj4rQ2dPKLuqMWXiHRUE6uj98MvCO0JhklFVPYBLt3vhX -# 0LQM8G3qxoc3TDc9Z0fjWnGrmT/vQWzbm5IhD4R4Nau6JXLN497ySoLUpTuz8ekO -# 2QgaRksOzks4H7WZdeH1djBHTM82mLJWc3JTaDVFUR7oaGScN/U2fg89D51/vPU0 -# 9yBf2xapBOxRn9vRcfnFkoj4x1cEOHFx/WNzPcXbNaD1HftQulIlpMZeoKq8zM9H -# Br3AgaAsSjwi5S9kDHSDniX0Fj41SIZpOb+uy/ctb5JeGzrJmoI6wL0= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml deleted file mode 100644 index 0ddb2bfb317f..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/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.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml deleted file mode 100644 index 3b0f408c8d0e..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/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.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml deleted file mode 100644 index b34acf496520..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/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.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml deleted file mode 100644 index 7610c6464ed9..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml +++ /dev/null @@ -1,297 +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.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml deleted file mode 100644 index eb27c8811a4f..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml +++ /dev/null @@ -1,251 +0,0 @@ - - - - - OnlineVoicemailValidationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration - - - - - - - - - Identity - - - - AudioFileValidationEnabled - - - - AudioFileValidationUri - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 deleted file mode 100644 index f2d984bfab9f..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 +++ /dev/null @@ -1,535 +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 -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDZT140sYjdx0xT -# /LXVDzxAIHBwkBc+dXfdw3U0HvLrt6CCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF513pH+UdCT12R9jVwu74EH -# cpGG7d4aN3iDZEQNfgxdMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAjTY+4pjW6Sfvz24jRR/AWCulWw1lExJfI+ARa8ZMd6zBqgXalx33hpUX -# bi5TNXrVTKMosUJYXVbefECUf+351eGVP6EYitDQ7GICscJ9xak30pI8rV8qtJbX -# yPm2M9I++8MwXsqBz93J8PTqUuBL4enmsVacwvgrwn4BZ/WTHXz2bas8jZfrhPpt -# 1YncxEk4b6BJfGPurSZ3khO8D598UnUHsNoRFOFBmvcABcS5zWy8alql9CMmtr3/ -# 99HRVWVnyPEE4EAdwLtv9Xz+qSbQU8Wrfaoz5g8pzISYxvZkGnDFWT+LsVFdx1sc -# BqgchfOwHzrkNsVi8RuTepWGVn3kf6GCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDt4crULjqkG+6aWfz7RqBGZutMgIeJwku86ixVThm6WwIGaKOtOLF7 -# GBMyMDI1MDgyMTA2NTE1OS4wOTNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB/xI4fPfBZdahAAEAAAH/MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzExOVoXDTI1MTAyMjE4MzExOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjRDMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyeiV0pB7bg8/qc/mkiDd -# JXnzJWPYgk9mTGeI3pzQpsyrRJREWcKYHd/9db+g3z4dU4VCkAZEXqvkxP5QNTtB -# G5Ipexpph4PhbiJKwvX+US4KkSFhf1wflDAY1tu9CQqhhxfHFV7vhtmqHLCCmDxh -# ZPmCBh9/XfFJQIUwVZR8RtUkgzmN9bmWiYgfX0R+bDAnncUdtp1xjGmCpdBMygk/ -# K0h3bUTUzQHb4kPf2ylkKPoWFYn2GNYgWw8PGBUO0vTMKjYD6pLeBP0hZDh5P3f4 -# xhGLm6x98xuIQp/RFnzBbgthySXGl+NT1cZAqGyEhT7L0SdR7qQlv5pwDNerbK3Y -# SEDKk3sDh9S60hLJNqP71iHKkG175HAyg6zmE5p3fONr9/fIEpPAlC8YisxXaGX4 -# RpDBYVKpGj0FCZwisiZsxm0X9w6ZSk8OOXf8JxTYWIqfRuWzdUir0Z3jiOOtaDq7 -# XdypB4gZrhr90KcPTDRwvy60zrQca/1D1J7PQJAJObbiaboi12usV8axtlT/dCeP -# C4ndcFcar1v+fnClhs9u3Fn6LkHDRZfNzhXgLDEwb6dA4y3s6G+gQ35o90j2i6am -# aa8JsV/cCF+iDSGzAxZY1sQ1mrdMmzxfWzXN6sPJMy49tdsWTIgZWVOSS9uUHhSY -# kbgMxnLeiKXeB5MB9QMcOScCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBTD+pXk/rT/ -# d7E/0QE7hH0wz+6UYTAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAOSNN5MpLiyun -# m866frWIi0hdazKNLgRp3WZPfhYgPC3K/DNMzLliYQUAp6WtgolIrativXjOG1lI -# jayG9r6ew4H1n5XZdDfJ12DLjopap5e1iU/Yk0eutPyfOievfbsIzTk/G51+uiUJ -# k772nVzau6hI2KGyGBJOvAbAVFR0g8ppZwLghT4z3mkGZjq/O4Z/PcmVGtjGps2T -# CtI4rZjPNW8O4c/4aJRmYQ/NdW91JRrOXRpyXrTKUPe3kN8N56jpl9kotLhdvd89 -# RbOsJNf2XzqbAV7XjV4caCglA2btzDxcyffwXhLu9HMU3dLYTAI91gTNUF7BA9q1 -# EvSlCKKlN8N10Y4iU0nyIkfpRxYyAbRyq5QPYPJHGA0Ty0PD83aCt79Ra0IdDIMS -# uwXlpUnyIyxwrDylgfOGyysWBwQ/js249bqQOYPdpyOdgRe8tXdGrgDoBeuVOK+c -# RClXpimNYwr61oZ2/kPMzVrzRUYMkBXe9WqdSezh8tytuulYYcRK95qihF0irQs6 -# /WOQJltQX79lzFXE9FFln9Mix0as+C4HPzd+S0bBN3A3XRROwAv016ICuT8hY1In -# yW7jwVmN+OkQ1zei66LrU5RtAz0nTxx5OePyjnTaItTSY4OGuGU1SXaH49JSP3t8 -# yGYA/vorbW4VneeD721FgwaJToHFkOIwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqROMbMS8JcUlcnPkwRLFRPXFspmggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxQznowIhgPMjAyNTA4MjAyMjQ1MTRaGA8yMDI1MDgyMTIyNDUxNFowdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA7FDOegIBADAKAgEAAgIcYQIB/zAHAgEAAgIT -# NjAKAgUA7FIf+gIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQAEJqmJaAlH -# 7KgqiZzsVhKfJjZRwFRP2cwSCQZAsaAYabXrNmgEQ7r9vG76iVMFmI9YEY8XGU+5 -# C/b4D53m+02hntkEa4Td9/BPN+atfqf7Q17SSEw074cJwahYAINURlw31MUqzGi3 -# wu/rho0fXnlXJrHIDBnVB/q3ePea3BrjMd6sDvHCbg2IbuchIq9BwZByDe0n0Xgr -# CnCrTwiwOEQPwmLwTPwVBuJyPi19tcyUjfpcQLEnxgoJ9xiyYgCx+JFbga7BRoyQ -# Zltp1fo+XecLz2MIP5A+/E2OY1ixt9Ek1zPg0Vde9sYlM+C1RAUQjse4W9WezQYu -# hqy5CgRdHPE8MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAH/Ejh898Fl1qEAAQAAAf8wDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgrjNHu4tS -# IOE0Tj7hfSgUy0jnZZlEZ3U3CCXSqa99FrEwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCDkMu++yQJ3aaycIuMT6vA7JNuMaVOI3qDjSEV8upyn/TCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB/xI4fPfBZdahAAEA -# AAH/MCIEINwZfYlyWy0/hq+SY2Kgwoh4Yg52qCCtfwh0tioR+vRxMA0GCSqGSIb3 -# DQEBCwUABIICAEeU5LHS+xETd7nHeV1H93SVgRwEdScWwYdEccs1ytOmPdLH5X4D -# WYOrUG3zzj3LPUAg/4LPN3PnWJFhNcjv8FCVDN7HdnreNzYOEndYfPGHYNzML7pG -# 9KVFdorpKKzFuCHl1Cystk0OHf/ydqCfP0M03WVA4q8ZkveF4/lyxw4SiHi/MJML -# S3KkEC7mRX9mZLFTZcdV6tqUmKq4zcXGbuYQObpF0QGCVBC66noPEEVFRiRpqOqI -# pS42xG99voG64hEL7pIRAZUXTJl6b3o4fAvLx08eZAR8p2hJq/Re9R6H14AbMlHP -# dnUh0dgOgl1FRabUBuzqqaqiGroXk7xAqVRXs0MmIsXZTfeEBR/DQejqgo7Yit9j -# oN7vcNi8Z9siqL4PbIlAhEbxTWqNU7SlzPzBkz88Ec1Rl1QdaxB+oPePnNEbgU0x -# mz/sLdppS/21S4jHpt/KHVoe6YVHPDGfuPiPplCg09XEksO6/CKOejt3mXPA+YSJ -# WpKdknax9q7qKfcQ3+XfaJkyKLPP6xw2pK+nyiDQyq1CteGRS+UmY/es5KNYJ/EZ -# hHbNshQDYCWhcihyuktyMM37FVjmVCInvpFCBQghfo5wfsNQxN2gJsHISQBy5B2n -# 3Ri0/545E3juiEvwH6gAKcedfcEAmfgVK2hDA3TZuM7mDz/v8T5IvFGa -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 deleted file mode 100644 index ffb5900f1af2..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 +++ /dev/null @@ -1,237 +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 -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAkAcLpsaJGFDbZ -# eSS41J6zw7DVHNDwNlPCWsROSiOFqaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPfanlNFBOVfSygxXiGchjDo -# SjX9DIEVGb2vyXmTS6s/MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEALf4WtDsRdJG3HcU4/1oHX5q0aZYz/tsrbEnqUqKV/fmKuv39raz8M7XU -# 4uC4gJepIC98UaYVWSCuUK4rYyHbnvP2SnaZ4sgRv7ah3fSkcNuw9QQS5ngC5Wim -# RNkmc+cKXG992W8KGde7sghIgkHGt+4KocdwTNwcZunRpShe+LOQOpc8gZO/D/oc -# cXAtZ1tIs9glIMguVthoLSAGXY2L1sW3ezyC/2To67WsVeGd7JTnVeG+5b18eqw5 -# PDUbdhufl7bWNrOoMqMtDpze6ZXJmIu+3XKJvArsVqmPjAtwiHccCmWzMeKcTVMP -# /A1NOrgT06q7hAGKibA8ZaZ2tRIcbqGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBFXAi4kVMsYcdWLX5/KvcF8ZmGg5S6y7DzApRAUvnkKQIGaKOrl8OL -# GBMyMDI1MDgyMTA2NTEwNi4wODNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtD1MH3yAHWHNVslC+CBT -# j/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BOJUiYg7fDJ2AxGVGyovUt -# gGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONWy6lOyGZwZpxfV2EX4qAh -# 6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2ps8Nc1xr41N8Qi3KVJLY -# X0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2KDJ2sQRFFF/egCxKgogd -# F3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN8hiMc8Z47RRJuIWCOeyI -# J1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57ITXsD9DPOob8tjtsefPc -# QJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5DHM4ovCmD3lifgYnzjOry -# 4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby44kGVK8MzY9s32Dy1THn -# Jg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRVUx2G/0Tr7Dk3fpCU8u+5 -# olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1HvNIBpSNNuTBQk7FBvu+ -# Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSJ7aO6nJXJ -# I9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAZiAJgFbkf7jf -# hx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG2CcdoXaq7VgpVkNf1uvI -# hrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0ktH+EkEuGXs9DBLyt71iut -# Vkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2q5TjmrgEKyPe3TApAio8 -# cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/uizP1NuHSxF/V1ks/2tCEo -# riicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+Ud9Va3Iw9Bs4ccrkgBjLt -# g3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y6Si3AaNINt/pOMKU6l4A -# W0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qIVBZJ2XQpnhEuRbh+Agpm -# Rn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhncFetJ0ZK36wxAa3FiPgBe -# bRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B0s8RiFBMf/W7+O7EPZ+w -# MH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojzuCEahSAcq86yjwQeTPN9 -# YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxQzNkwIhgPMjAyNTA4MjAyMjM4MTdaGA8yMDI1MDgyMTIyMzgxN1owdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FDM2QIBADAHAgEAAgIjvDAHAgEAAgITBjAK -# AgUA7FIeWQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCqb0hAWw+vOWh0 -# a8c8xk/NNK98kT8/IMxVvl1u+B1cU9BupbJbR4wYaurGJOQFACl6hm1tnvoTYuVt -# 1cIXS8UVQXDkxszPQWge4gs+ucPlwL2MOtl41HkveYJ61/h3J7ACxT6K5OCZtUFE -# YMhSebORyohHZOhDaFbWX85VFOulLsO6vE/ULhiXFF0jW6Rot6ZmQUFNVDE/yA5D -# gIF04iPEATpq22Y56RjfsHet8Sp5v5ulaHzGdBKYKwxCghFUt2miUxCMBlyYtzdb -# pliPiVydVU/sNb5ovmsAL4ulKrYCjHT+x0t05o/5RVEFGtu4mXWpUVowj8bzE11R -# Wy9kV2R1MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgYsiba3zllUJj -# RRP0q/uWgJbwZ8mat7kEcSUISin4GkYwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEAAAH5 -# MCIEIAVHL/0uz3DzAN+F1sUiBfZmS1OlMqsCVswI135feVeBMA0GCSqGSIb3DQEB -# CwUABIICAKj9co5hARo7SvjYVPd6PRSXCRCrMr2YlIuIrWvAWh57z9XiSZFRjUl3 -# D1ZjL1J6aMo3fnnVaIW/6q7DgqEdk/DJzY+a0yttnFzrT4GCXP2i7oa5QgOiZolt -# B7kUwEIY85QS93amphwJE7oY5aB2mS0QosTsqeNOnI5VSeWJNZtuxjaao6TVR1CZ -# ntF2/y6OApjC+qGM8KmX1mtLagUzmOu8DtPv700sBtT+O0WXsqT1KVmKkdKuNK8u -# FWui+aDggTRMFdKdzoE/UKyuUsUkqGjkec5zos6Ss5aTwflQm/Q6LmgSWQiitC3T -# JJs384Ve3a3JkWEX9tvwEYkats3A8mLmNGPXMtCmVOn+REQ6uitDkb6Hgj2VmjNx -# roZhZqWwPvV6rCFfp59EMwd/zIbavxpAH8dF/lrCyAls8FvIHOrvZdQAA1HmVoSo -# +RAhtWYkUFnArYxDz2OiceKmQpORARfKQ9dF2M4xTTDmp/Js6lM8VovJ7RBpLB+I -# Hy2aJICSWXu7khpbvgf7nZ7UlrnjzUm6zzqagogqdrsOkPFGRyVH8CrCcUq/yDWZ -# KobJUVB+n0v3d1FD5hO6P/9bzK0Z01XvvvZdGuQ1DxRehUhB5Alb2AibrROxIJKh -# VwKs0GXaVQ87ihzX7r6cKmu3N0YHk/S9z3txg68Bs/iMjwuu4/Fg -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml deleted file mode 100644 index 3fb3c5114093..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml +++ /dev/null @@ -1,251 +0,0 @@ - - - - - TeamsAudioConferencingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.TeamsAudioConferencingPolicy - - - - - - - - - Identity - - - - MeetingInvitePhoneNumbers - - - - AllowTollFreeDialin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml deleted file mode 100644 index b8ea9d7b1aca..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/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.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml deleted file mode 100644 index 64d1df9d4ceb..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml +++ /dev/null @@ -1,275 +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.3.1/Microsoft.Teams.Policy.Administration.psd1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.psd1 deleted file mode 100644 index 05f0ad768245..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.psd1 +++ /dev/null @@ -1,318 +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 -# MIIoRQYJKoZIhvcNAQcCoIIoNjCCKDICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAizEF7EthEfKhr -# v64YI3/+SMJkAC9oh3WCsRWG4pdusqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiUwghohAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIN0sHqoqWu/70zfwRQjHbRI9 -# tcwpjpUnzXMkIHBvxTZHMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEALFWTDIj7Q8nH2CqeYtNCFhLsVnM3Q7TsBpruc3FJjtRGg8edHevPodB4 -# GVdLzu1fWKfMSOVsji0Ol4sEpA11gq9Bg8GoMKYWElJE+F8KJ+sfLp+0N2KHVsiv -# yc7vLCGmL2FcEkh/AvN8XqLOJMzwBzb/7TY8yc8fIZVMniD1NyckvzPD1fbpUk1b -# K0KjfsHLsmTgMCp60v9lRGk7vTySTtmkDRLdTNDN3Ytzf82x7mM007uzshFXNSSu -# 3X1shE+CzFlwxkBCqmtasrtkd17YOwh/3TigH/jHtFkFvBtONip74DVmvK9V6IuI -# wJhPlrqQxJDSu1e7EPtPE9rWh+82kaGCF68wgherBgorBgEEAYI3AwMBMYIXmzCC -# F5cGCSqGSIb3DQEHAqCCF4gwgheEAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFZBgsq -# hkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCD7Nv4GAbegUpKS6nH5I2wUQd74OfV1bTXU5enYKD1lwgIGaKOtOKsL -# GBIyMDI1MDgyMTA2NTEwNS41NlowBIACAfSggdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjRDMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloIIR/jCCBygwggUQoAMCAQICEzMAAAH/Ejh898Fl1qEAAQAAAf8wDQYJ -# KoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjQw -# NzI1MTgzMTE5WhcNMjUxMDIyMTgzMTE5WjCB0zELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3Bl -# cmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NEMxQS0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw -# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ6JXSkHtuDz+pz+aSIN0l -# efMlY9iCT2ZMZ4jenNCmzKtElERZwpgd3/11v6DfPh1ThUKQBkReq+TE/lA1O0Eb -# kil7GmmHg+FuIkrC9f5RLgqRIWF/XB+UMBjW270JCqGHF8cVXu+G2aocsIKYPGFk -# +YIGH39d8UlAhTBVlHxG1SSDOY31uZaJiB9fRH5sMCedxR22nXGMaYKl0EzKCT8r -# SHdtRNTNAdviQ9/bKWQo+hYVifYY1iBbDw8YFQ7S9MwqNgPqkt4E/SFkOHk/d/jG -# EYubrH3zG4hCn9EWfMFuC2HJJcaX41PVxkCobISFPsvRJ1HupCW/mnAM16tsrdhI -# QMqTewOH1LrSEsk2o/vWIcqQbXvkcDKDrOYTmnd842v398gSk8CULxiKzFdoZfhG -# kMFhUqkaPQUJnCKyJmzGbRf3DplKTw45d/wnFNhYip9G5bN1SKvRneOI461oOrtd -# 3KkHiBmuGv3Qpw9MNHC/LrTOtBxr/UPUns9AkAk5tuJpuiLXa6xXxrG2VP90J48L -# id1wVxqvW/5+cKWGz27cWfouQcNFl83OFeAsMTBvp0DjLezob6BDfmj3SPaLpqZp -# rwmxX9wIX6INIbMDFljWxDWat0ybPF9bNc3qw8kzLj212xZMiBlZU5JL25QeFJiR -# uAzGct6Ipd4HkwH1Axw5JwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFMP6leT+tP93 -# sT/RATuEfTDP7pRhMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G -# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv -# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs -# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy -# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH -# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA5I03kykuLK6eb -# zrp+tYiLSF1rMo0uBGndZk9+FiA8Lcr8M0zMuWJhBQCnpa2CiUitq2K9eM4bWUiN -# rIb2vp7DgfWfldl0N8nXYMuOilqnl7WJT9iTR660/J86J699uwjNOT8bnX66JQmT -# vvadXNq7qEjYobIYEk68BsBUVHSDymlnAuCFPjPeaQZmOr87hn89yZUa2MamzZMK -# 0jitmM81bw7hz/holGZhD811b3UlGs5dGnJetMpQ97eQ3w3nqOmX2Si0uF293z1F -# s6wk1/ZfOpsBXteNXhxoKCUDZu3MPFzJ9/BeEu70cxTd0thMAj3WBM1QXsED2rUS -# 9KUIoqU3w3XRjiJTSfIiR+lHFjIBtHKrlA9g8kcYDRPLQ8PzdoK3v1FrQh0MgxK7 -# BeWlSfIjLHCsPKWB84bLKxYHBD+Ozbj1upA5g92nI52BF7y1d0auAOgF65U4r5xE -# KVemKY1jCvrWhnb+Q8zNWvNFRgyQFd71ap1J7OHy3K266VhhxEr3mqKEXSKtCzr9 -# Y5AmW1Bfv2XMVcT0UWWf0yLHRqz4Lgc/N35LRsE3cDddFE7AC/TXogK5PyFjUifJ -# buPBWY346RDXN6LroutTlG0DPSdPHHk54/KOdNoi1NJjg4a4ZTVJdofj0lI/e3zI -# ZgD++ittbhWd54PvbUWDBolOgcWQ4jCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb -# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj -# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy -# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT -# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE -# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI -# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo -# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y -# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v -# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG -# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS -# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr -# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM -# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL -# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF -# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu -# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE -# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn -# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW -# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 -# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi -# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV -# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js -# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx -# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 -# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv -# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn -# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 -# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 -# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU -# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF -# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ -# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU -# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi -# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm -# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq -# ELQdVTNYs6FwZvKhggNZMIICQQIBATCCAQGhgdmkgdYwgdMxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs -# YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO -# OjRDMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT -# ZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCpE4xsxLwlxSVyc+TBEsVE9cWymaCBgzCB -# gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUA -# AgUA7FDOejAiGA8yMDI1MDgyMDIyNDUxNFoYDzIwMjUwODIxMjI0NTE0WjB3MD0G -# CisGAQQBhFkKBAExLzAtMAoCBQDsUM56AgEAMAoCAQACAhxhAgH/MAcCAQACAhM2 -# MAoCBQDsUh/6AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAI -# AgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAAQmqYloCUfs -# qCqJnOxWEp8mNlHAVE/ZzBIJBkCxoBhptes2aARDuv28bvqJUwWYj1gRjxcZT7kL -# 9vgPneb7TaGe2QRrhN338E835q1+p/tDXtJITDTvhwnBqFgAg1RGXDfUxSrMaLfC -# 7+uGjR9eeVcmscgMGdUH+rd495rcGuMx3qwO8cJuDYhu5yEir0HBkHIN7SfReCsK -# cKtPCLA4RA/CYvBM/BUG4nI+LX21zJSN+lxAsSfGCgn3GLJiALH4kVuBrsFGjJBm -# W2nV+j5d5wvPYwg/kD78TY5jWLG30STXM+DRV172xiUz4LVEBRCOx7hb1Z7NBi6G -# rLkKBF0c8TwxggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg -# MjAxMAITMwAAAf8SOHz3wWXWoQABAAAB/zANBglghkgBZQMEAgEFAKCCAUowGgYJ -# KoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCD/M2LbpekG -# k95iz6i3MHxtqBUdKmFWw8HFS40E+QdMPTCB+gYLKoZIhvcNAQkQAi8xgeowgecw -# geQwgb0EIOQy777JAndprJwi4xPq8Dsk24xpU4jeoONIRXy6nKf9MIGYMIGApH4w -# fDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl -# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd -# TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH/Ejh898Fl1qEAAQAA -# Af8wIgQg3Bl9iXJbLT+Gr5JjYqDCiHhiDnaoIK1/CHS2KhH69HEwDQYJKoZIhvcN -# AQELBQAEggIAhecM33nphChzi4L+EWe8R8hEfxwHBzEcLrvFNhXKG4mhn9Wlq/1t -# yHsJ+0SAOObPURnbc8VJVFCE+7o2dSOS3fKkvV338A1UnGrUcjzy/BPeuN9PznwW -# ICVeRFfnlh1rkRC7w8U8dRGbNeDFLscUKxyZUMPfqQNYrzTeg/jgJ/MJsvOH+fkf -# DJftdk+ieMtXIHpE4ANKMytkLGM3uXpQvT9lEU/aTUn3Xnr0EseIuAREj92RsnIZ -# 7LyMC9hGH1AAP9K6jlE8xQcbTG8mOaqU5f+fkzW1shhw1pAGXQ35rPvnD/zDWzVy -# R1eZ9LQWN5C+0FulzaGk7+8NNnD0+3Cf4e/Cwk8ZkoAdmy//KMzadU3US9zEIgWD -# WIABfn/vuuPMlMBDah7fWWrP8bqIMgzO0hFM31bTXNhiCuyVNx8+5NgG48FiRG3r -# hsfqQekIurbMbkNX/xPMJktrQsyxhd9PpnwbQfr20YmmBOnjmlPxy0EiVD+Ku5yF -# QWiKtFt5dbV/SUV/9EamE9JmabOe9w5NOKIkJWmzAHNIqXjoOmQDCSHRSYd2HFGb -# oaDaz7E/3Lis83OcJw8xh5LFo5Nh6IEWOEqCbE8/b2ZhjLdCGbTZ1mbCGCEbaYy7 -# A6IJKIK2MYxYNXJopQHlQQp8kr589iBJE91PVLspBuOZxfjrEe1UilY= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.psm1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.psm1 deleted file mode 100644 index 34589ed3b9c7..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.psm1 +++ /dev/null @@ -1,247 +0,0 @@ -# Define which modules to load based on the environment -# These environment variables are set in TPM - -if ($env:MSTeamsContextInternal -eq "IsOCEModule") { - $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1' -} -elseif ($env:MSTeamsReleaseEnvironment -eq 'TeamsPreview') { - $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1' -} -else { - $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1' -} - -$path = (Join-Path $PSScriptRoot $mpaModule) - -if (test-path $path) -{ - $null = Import-Module -Name $path -} -else -{ - if ($PSEdition -ne 'Desktop') - { - $null = Import-Module -Name (Join-Path $PSScriptRoot "netcoreapp3.1\$mpaModule") - } - else - { - $null = Import-Module -Name (Join-Path $PSScriptRoot "net472\$mpaModule") - } -} -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCY/3SaRU5aX7aK -# TQZJ6IK4Qt60ySomlFTBejL/fus5QaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBMwq7DKEXveX/tYp75+TAPn -# yE5ZJziyHVTCrrAiSia5MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAQy5x643i4RMxkFpSZi5PkdnIGy9nkxzKY0qyE+1wnizVp/8PUXEYF9Ni -# wxSw0h4oJ28gQr1ZZXjlZn+S7CRlwNlndt9Z9E1cwY0Fx19x2t9yLV96CSPO7suR -# TOcAijHAtcSskez6cetI3DMdLAyEHbnbU6/1yDS3O+Wr53KNunLA1PLib8iCs/nj -# jWP/BZAhGD8hHssyduQcUowwIvQ/nb9BAJHmOo8VqbNiD0MUSlh3Wn3W/1ede8KP -# uN/4reuiz2GCCZt+ebkJwZK3ZVBq9NLM+mhQ/EgyRHXbbtwmyy3P1Ygg6sPmz8X2 -# KAaiBt6k2WJEbaE2DVVCUipy2W9rwqGCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAEktQ42ahtJpTLF/UaVw5zNoG+LbtZJDWkSF2Ziezl3wIGaKORhHDL -# GBMyMDI1MDgyMTA2NTExMS4yMDVaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAgJ5UHQhFH24oQABAAACAjANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNTAxMzAxOTQy -# NDRaFw0yNjA0MjIxOTQyNDRaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTQwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQC3eSp6cucUGOkcPg4vKWKJfEQeshK2ZBsYU1tDWvQu -# 6L9lp+dnqrajIdNeH1HN3oz3iiGoJWuN2HVNZkcOt38aWGebM0gUUOtPjuLhuO5d -# 67YpQsHBJAWhcve/MVdoQPj1njiAjSiOrL8xFarFLI46RH8NeDhAPXcJpWn7AIzC -# yIjZOaJ2DWA+6QwNzwqjBgIpf1hWFwqHvPEedy0notXbtWfT9vCSL9sdDK6K/HH9 -# HsaY5wLmUUB7SfuLGo1OWEm6MJyG2jixqi9NyRoypdF8dRyjWxKRl2JxwvbetlDT -# io66XliTOckq2RgM+ZocZEb6EoOdtd0XKh3Lzx29AhHxlk+6eIwavlHYuOLZDKod -# POVN6j1IJ9brolY6mZboQ51Oqe5nEM5h/WJX28GLZioEkJN8qOe5P5P2Yx9HoOqL -# ugX00qCzxq4BDm8xH85HKxvKCO5KikopaRGGtQlXjDyusMWlrHcySt56DhL4dcVn -# n7dFvL50zvQlFZMhVoehWSQkkWuUlCCqIOrTe7RbmnbdJosH+7lC+n53gnKy4OoZ -# zuUeqzCnSB1JNXPKnJojP3De5xwspi5tUvQFNflfGTsjZgQAgDBdg/DO0TGgLRDK -# vZQCZ5qIuXpQRyg37yc51e95z8U2mysU0XnSpWeigHqkyOAtDfcIpq5Gv7HV+da2 -# RwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFNoGubUPjP2f8ifkIKvwy1rlSHTZMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCD83aFQUxN37HkOoJDM1maHFZVUGcqTQcP -# nOD6UoYRMmDKv0GabHlE82AYgLPuVlukn7HtJPF2z0jnTgAfRMn26JFLPG7O/XbK -# K25hrBPJ30lBuwjATVt58UA1BWo7lsmnyrur/6h8AFzrXyrXtlvzQYqaRYY9k0UF -# Y5GM+n9YaEEK2D268e+a+HDmWe+tYL2H+9O4Q1MQLag+ciNwLkj/+QlxpXiWou9K -# vAP0tIk+fH8F3ww5VOTi9aZ9+qPjszw31H4ndtivBZaH5s5boJmH2JbtMuf2y7hS -# dJdE0UW2B0FEZPLImemlKhslJNVqEO7RPgl7c81QuVSO58ffpmbwtSxhYrES3VsP -# glXn9ODF7DqmPMG/GysB4o/QkpNUq+wS7bORTNzqHMtH+ord2YSma+1byWBr/izI -# KggOCdEzaZDfym12GM6a4S+Iy6AUIp7/KIpAmfWfXrcMK7V7EBzxoezkLREEWI4X -# tPwpEBntOa1oDH3Z/+dRxsxL0vgya7jNfrO7oizTAln/2ZBYB9ioUeobj5AGL45m -# 2mcKSk7HE5zUReVkILpYKBQ5+X/8jFO1/pZyqzQeI1/oJ/RLoic1SieLXfET9EWZ -# IBjZMZ846mDbp1ynK9UbNiCjSwmTF509Yn9M47VQsxsv1olQu51rVVHkSNm+rTrL -# wK1tvhv0mTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE0MDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQBJ -# iUhpCWA/3X/jZyIy0ye6RJwLzqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7FCyvDAiGA8yMDI1MDgyMDIwNDY1 -# MloYDzIwMjUwODIxMjA0NjUyWjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDsULK8 -# AgEAMAoCAQACAhIHAgH/MAcCAQACAhJaMAoCBQDsUgQ8AgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBADMVTrbBFTrmz0QRP4owomMYoo2gLfjdol2l7ousXkDi -# XJ/gPh+HUOfduk4hoMJ7OGj5kKD4QCskXfdMxhBXE5bzlN70t9ip7kqZVsQtNIjM -# dyDzicP7kNBc0LR5Oa1iTGFeXhV6oPmO51pBAqgwpS+VqIo0mRpu2CqaIPGRBvua -# EVQ/y5tvW0rR+CiMzXMPXrnJqlJQrXBmD58TGpwGTGKAmXZs556Qiw3l/sJ0T9tA -# NhJ4uFkhK2LXJG1ICYIEcrkjAhvfYK0Zk/gnoXXeGEWMsfts8LwpLzxSs+0YTiyu -# QcaMaJqmXytIyqe/7Adp1B0YRhkEp+AJ9BzSunMqtdMxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgJ5UHQhFH24oQABAAAC -# AjANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCCVeKXxqKAuu7cmRzaE0Xl7+W/3vr1T60VYAtRqG8/o -# cDCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPON6gEYB5bLzXLWuUmL8Zd8 -# xXAsqXksedFyolfMlF/sMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAICeVB0IRR9uKEAAQAAAgIwIgQgAEhoSTgQs/L4C5eksarc4eE7 -# UsLCfZAtCHRf5qoYczUwDQYJKoZIhvcNAQELBQAEggIAftxuWMkjTPPN55FHjzOs -# XOPS4R/9UCTrmpVd93YUgbzTd1Z5RK2Ydh0tm8vFlvB0KiK64wTHUCp5m8vUcrrx -# LblX8skhz1BOeGBZoPnUf321GRfcp0jeiRaGlFzKBKs5Bue5ZvYFyQ2RoXx1xgSU -# gply9ZxkqCLXSoHkFparhOVZNnW95nHzt8UuTHeyc9ULKQJboDWhHj4PF2i8bU13 -# 5JuXczkiatvRIeEj1px1FoEI6sgzgphggPt/CvD2tkLcEPF6vA7iB7jjsQ2xRXoM -# Sjzc3bVDQOvN55ffsud+PAp/Tp5T/YW2N9e7nIW06TbpA89rQznzpK83T8jOLSBH -# TXUcPU9+3dS5VvOkvUR/niTObUhqBh2VzhSaGxS2FSqc0uCcNNnCOOOjmFcuppXm -# a635PcNPlfOjM6UQMd2ac10fYYFyTh6NDyylpW5iZkwp8uctUVRGnjD4dksrK+nJ -# DZUrMn6sNwPGMc/r8kPVFIp2Z+EMfG26T7lfmT220m2qH0qNnOjCpKebIBBPxkPB -# BsSS4NLJgUFDB3Hal/OvoHjUEvoi1mIeIiqWIG6q+iGT5HfZb1pAZ3L/9pJcaTEL -# cY6mic/9BZWf/Rs5Iqm4S0C4gvLoQR4TJwFnOkTbPLMSrzUXOKIGEzjVQOlXEFDG -# L3UzDK/y2QtLEMrT3x/tDUo= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 deleted file mode 100644 index ba3ddaa44ced..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 +++ /dev/null @@ -1,354 +0,0 @@ -# -# Module manifest for module 'Microsoft.Teams.PowerShell.TeamsCmdlets' -# -# Generated by: Microsoft Corporation -# -# Updated on: 6/30/2020 -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './Microsoft.Teams.PowerShell.TeamsCmdlets.psm1' - -# Version number of this module. -# There's a string replace for the actual module version in the build pipeline -ModuleVersion = '1.5.3' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '3dfbed68-91ab-432e-b8bf-affe360d2c2f' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams cmdlets sub module for Windows PowerShell and PowerShell Core. - -For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @('GetTeamSettings.format.ps1xml') - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'Add-TeamChannelUser' - ,'Add-TeamUser' - ,'Get-AssociatedTeam' - ,'Get-MultiGeoRegion' - ,'Get-Operation' - ,'Get-SharedWithTeam' - ,'Get-SharedWithTeamUser' - ,'Get-Team' - ,'Get-TeamAllChannel' - ,'Get-TeamChannel' - ,'Get-TeamChannelUser' - ,'Get-TeamIncomingChannel' - ,'Get-TeamsApp' - ,'Get-TeamUser' - ,'Get-M365TeamsApp' - ,'Get-AllM365TeamsApps' - ,'Get-M365UnifiedTenantSettings' - ,'Get-M365UnifiedCustomPendingApps' - ,'New-Team' - ,'New-TeamChannel' - ,'New-TeamsApp' - ,'Remove-SharedWithTeam' - ,'Remove-Team' - ,'Remove-TeamChannel' - ,'Remove-TeamChannelUser' - ,'Remove-TeamsApp' - ,'Remove-TeamUser' - ,'Set-Team' - ,'Set-TeamArchivedState' - ,'Set-TeamChannel' - ,'Set-TeamPicture' - ,'Set-TeamsApp' - ,'Update-M365TeamsApp' - ,'Update-M365UnifiedTenantSettings' - ,'Update-M365UnifiedCustomPendingApp' - ,'Add-TeamsAppInstallation' - ,'Get-TeamsAppInstallation' - ,'Get-TeamTargetingHierarchyStatus' - ,'Remove-TeamsAppInstallation' - ,'Remove-TeamTargetingHierarchy' - ,'Set-TeamTargetingHierarchy' - ,'Update-TeamsAppInstallation' - ,'Get-LicenseReportForChangeNotificationSubscription' - ) - -# Variables to export from this module -VariablesToExport = '*' - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = '*' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB+tz1gI/FJnUAj -# j/PyE9AOrl1Stsv3I/ToAum2dyT2iaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIAWIb4fxUhsJ3yXBBDCuyDLu -# M6NC+ZGfvKSdj2B8tNU3MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEALidsyJftd1wdIHqHwK4424ARs02KTD0txbNZnhxfoRNOYez4HUaybnnc -# BmXdiAKOkjwXlSdK3CngCc4SC9ZXnXuz2MJaI+Jsff+ID4tTCvQ4IlIxLNxmb77T -# HxP9uzb3iK5kJICVpr4BJlyrFNeoK1NRbKcnvrtIGp1dy2IHB/hTJAMJIGIJsxMA -# v+VCFusV9qM3Xv87WcNoSSwFSIrnnl9BUuBc2/TZGNIOBxm2PQNVz0OLO/Ct9h8w -# n6TlHJfbgeK2xH9Xtvbjgp5GvE+3Lw+knsYWZiCnxNhdXtFm/QUNVM7Gdu/itCrj -# 9P9AXPzMkWDEVjSYij4jfSzoQqEVJ6GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAg/WiylmA4G8obp0tLZbyNAX+nB2BaXU50vlEHYdMQHQIGaKOjjHwr -# GBMyMDI1MDgyMTA2NTIxNy40NjlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RjAwMi0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAgU8dWyCRIfN/gABAAACBTANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNTAxMzAxOTQy -# NDlaFw0yNjA0MjIxOTQyNDlaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RjAwMi0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQCSkvLfd7gF1r2wGdy85CFYXHUC8ywEyD4LRLv0WYEX -# eeZ0u5YuK7p2cXVzQmZPOHTN8TWqG2SPlUb+7PldzFDDAlR3vU8piOjmhu9rHW43 -# M2dbor9jl9gluhzwUd2SciVGa7f9t67tM3KFKRSMXFtHKF3KwBB7aVo+b1qy5p9D -# Wlo2N5FGrBqHMEVlNyzreHYoDLL+m8fSsqMu/iYUqxzK5F4S7IY5NemAB8B+A3Qg -# wVIi64KJIfeKZUeiWKCTf4odUgP3AQilxh48P6z7AT4IA0dMEtKhYLFs4W/KNDMs -# Yr7KpQPKVCcC5E8uDHdKewubyzenkTxy4ff1N3g8yho5Pi9BfjR0VytrkmpDfep8 -# JPwcb4BNOIXOo1pfdHZ8EvnR7JFZFQiqpMZFlO5CAuTYH8ujc5PUHlaMAJ8NEa9T -# FJTOSBrB7PRgeh/6NJ2xu9yxPh/kVN9BGss93MC6UjpoxeM4x70bwbwiK8SNHIO8 -# D8cql7VSevUYbjN4NogFFwhBClhodE/zeGPq6y6ixD4z65IHY3zwFQbBVX/w+L/V -# HNn/BMGs2PGHnlRjO/Kk8NIpN4shkFQqA1fM08frrDSNEY9VKDtpsUpAF51Y1oQ6 -# tJhWM1d3neCXh6b/6N+XeHORCwnY83K+pFMMhg8isXQb6KRl65kg8XYBd4JwkbKo -# VQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHR6Wrs27b6+yJ3bEZ9o5NdL1bLwMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQAOuxk47b1i75V81Tx6xo10xNIr4zZxYVfk -# F5TFq2kndPHgzVyLnssw/HKkEZRCgZVpkKEJ6Y4jvG5tugMi+Wjt7hUMSipk+RpB -# 5gFQvh1xmAEL2flegzTWEsnj0wrESplI5Z3vgf2eGXAr/RcqGjSpouHbD2HY9Y3F -# 0Ol6FRDCV/HEGKRHzn2M5rQpFGSjacT4DkqVYmem/ArOfSvVojnKEIW914UxGtuh -# JSr9jOo5RqTX7GIqbtvN7zhWld+i3XxdhdNcflQz9YhoFqQexBenoIRgAPAtwH68 -# xczr9LMC3l9ALEpnsvO0RiKPXF4l22/OfcFffaphnl/TDwkiJfxOyAMfUF3xI9+3 -# izT1WX2CFs2RaOAq3dcohyJw+xRG0E8wkCHqkV57BbUBEzLX8L9lGJ1DoxYNpoDX -# 7iQzJ9Qdkypi5fv773E3Ch8A+toxeFp6FifQZyCc8IcIBlHyak6MbT6YTVQNgQ/h -# 8FF+S5OqP7CECFvIH2Kt2P0GlOu9C0BfashnTjodmtZFZsptUvirk/2HOLLjBiMj -# DwJsQAFAzJuz4ZtTyorrvER10Gl/mbmViHqhvNACfTzPiLfjDgyvp9s7/bHu/Cal -# KmeiJULGjh/lwAj5319pggsGJqbhJ4FbFc+oU5zffbm/rKjVZ8kxND3im10Qp41n -# 2t/qpyP6ETCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkYwMDItMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDV -# sH9p1tJn+krwCMvqOhVvXrbetKCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7FDExTAiGA8yMDI1MDgyMDIyMDM0 -# OVoYDzIwMjUwODIxMjIwMzQ5WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDsUMTF -# AgEAMAoCAQACAgNZAgH/MAcCAQACAhOdMAoCBQDsUhZFAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBABARFZup8ripW8lEZVbBoyMnrakyMcqnIAXdMBBrg2n9 -# TNxPKGNsB+Zg8PSdmLcvDdeXGYHqYNkoLOC44CuqBYlWPoF+bplSGgQGL5Z9LRwZ -# 815PHzSP6ZJb6NdkY25BhvIb2Yml35zqgfZZA1lddaMeE9ZgjAu6WYL3nRnP35MT -# 0Vkh2Dfz+ebIcN37xSayEmr1ly0813/otm8YoSsXYS+C7YRbToL0/cdN5nleDGKF -# qcAlT/upXny+2ofc83j9tdwwF8WwY59p/1dATVdNyfQDUlEXLD/7mNqKQ4NQ0a96 -# ET1FTCOnkO7NHkDsGC03mHdIzc3vq5OmdpGZglPFWBAxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgU8dWyCRIfN/gABAAAC -# BTANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCBLTcGX9rvbb+OiSFQxv/OsmBKCmBoJldyDcAYtrppQ -# 9jCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIIANAz3ceY0umhdWLR2sJpq0 -# OPqtJDTAYRmjHVkwEW9IMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAIFPHVsgkSHzf4AAQAAAgUwIgQgjj9mqdYx2e4d6uy2OLKkpaT6 -# YurQKArULaF2VgMuSHowDQYJKoZIhvcNAQELBQAEggIAKj81t5Qb6XKMpnOr9LYR -# BonuYSUJBZla13icLh4TbIiZHAsw/mjpUaFwugC91qrdgFeTYeHpBcPE1+0C+J74 -# YsKm9EOfAsQYfMDtNh2b29bcd6bftJ0miEr4D1ux3xSWDcP4P4/WoSJLQfKhmnR7 -# 15FYBi0vebFowd+WimfHG4CyieoT4HcFxDhIFU1p9Ja6nR+bRf3PQR5nTL1uqxaa -# j1vUiu0mQeTqBxtGk+WXWubGuzOCaNeEeYb/EAeWyT6aVwYMY5fb48R697kmRSEx -# 3zabBjkmjBxW+WScl0w3gSTv1FiK5AE52XXgeCfRfOHIV5wwci8JiL2xuGraVcss -# IegmPVHwD4zlbMLWPI4oG4XT7lgDbz/0OalF+aLg5mZGM2qAOfECVGYn9JDCSyiz -# alprq0u5YiFHKm2XWNyAnf4GDm9njadK9A9z088zYNPqcorhDqpM2mSksNTHoF+h -# xaoipv0DaiYZ8TUi91IIaYI+VxiU7XTgsYux1W6Fu5UW89O9iUN7ocaPmWMJKlMr -# dMkwEyc/6FwdMK8SV7ZkflLq3GK/+b7uPOvGkzkhfhgpwebM3iPM/veHmfGVzIPB -# 5Uwlk99aWXbg7aqKcYATizMcimL2kUapa+K3ZiWeoTUMn1IXtnJBc3Ovb92HS9AG -# gYSWEdwy80oAwXP0eeLZ7dI= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 b/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 deleted file mode 100644 index 09a08b705d65..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 +++ /dev/null @@ -1,225 +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 -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCtJNoep0vYvS0u -# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF3FviB5I/Ax1ZFPXrSiQ9Vf -# Q9tIZcCOZ+89t8Pe2ekmMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEARpAj8ElLkmgn6Yw6yPW9f6NKPaSA6Uu9E//KQqYm39pPrIae7ibdLZAG -# 7kmeINnGZ4SraPKkyA+Zg/5YY+nfUV3x6qqFg9KcG+rCBW+YKH0pREPcJnLbxjbT -# 42tIPd6Cn6PxpScESogda5Cv1Mfmr50uYSz9upAg28IFKKFM2cwi/JOzjpmsZIgh -# Kev5JbFZLiS8xwXhRqvIXxHxwBW+OrzoYNzGo7A26m8JkQP+lVVYFNJzYcXtwQ6H -# fskM4bhi+GpO0btBXG2638lOiSja1zW+TcoFUOp6uGxv6NwXh+8VYMeewLZAnwMP -# RZ201U8mXk/4X/iYdkBdjXhOJ28dBKGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBKZy/K5edOWKA1GD8QnJdIJ/uU98WdM3m9eUE8zOxdyQIGaKOoJ29J -# GBMyMDI1MDgyMTA2NTExMy4xMTVaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+KOhJgwMQEj+AAEAAAH4MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOFoXDTI1MTAyMjE4MzEwOFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxR23pXYnD2BuODdeXs2C -# u/T5kKI+bAw8cbtN50Cm/FArjXyL4RTqMe6laQ/CqeMTxgckvZr1JrW0Mi4F15rx -# /VveGhKBmob45DmOcV5xyx7h9Tk59NAl5PNMAWKAIWf270SWAAWxQbpVIhhPWCnV -# V3otVvahEad8pMmoSXrT5Z7Nk1RnB70A2bq9Hk8wIeC3vBuxEX2E8X50IgAHsyaR -# 9roFq3ErzUEHlS8YnSq33ui5uBcrFOcFOCZILuVFVTgEqSrX4UiX0etqi7jUtKyp -# gIflaZcV5cI5XI/eCxY8wDNmBprhYMNlYxdmQ9aLRDcTKWtddWpnJtyl5e3gHuYo -# j8xuDQ0XZNy7ESRwJIK03+rTZqfaYyM4XSK1s0aa+mO69vo/NmJ4R/f1+KucBPJ4 -# yUdbqJWM3xMvBwLYycvigI/WK4kgPog0UBNczaQwDVXpcU+TMcOvWP8HBWmWJQIm -# TZInAFivXqUaBbo3wAfPNbsQpvNNGu/12pg0F8O/CdRfgPHfOhIWQ0D8ALCY+Lsi -# wbzcejbrVl4N9fn2wOg2sDa8RfNoD614I0pFjy/lq1NsBo9V4GZBikzX7ZjWCRgd -# 1FCBXGpfpDikHjQ05YOkAakdWDT2bGSaUZJGVYtepIpPTAs1gd/vUogcdiL51o7s -# huHIlB6QSUiQ24XYhRbbQCECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBS9zsZzz57Q -# lT5nrt/oitLv1OQ7tjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAYfk8GzzpEVnG -# l7y6oXoytCb42Hx6TOA0+dkaBI36ftDE9tLubUa/xMbHB5rcNiRhFHZ93RefdPpc -# 4+FF0DAl5lP8xKAO+293RWPKDFOFIxgtZY08t8D9cSQpgGUzyw3lETZebNLEA17A -# /CTpA2F9uh8j84KygeEbj+bidWDiEfayoH2A5/5ywJJxIuLzFVHacvWxSCKoF9hl -# SrZSG5fXWS3namf4tt690UT6AGyWLFWe895coFPxm/m0UIMjjp9VRFH7nb3Ng2Q4 -# gPS9E5ZTMZ6nAlmUicDj0NXAs2wQuQrnYnbRAJ/DQW35qLo7Daw9AsItqjFhbMcG -# 68gDc4j74L2KYe/2goBHLwzSn5UDftS1HZI0ZRsqmNHI0TZvvUWX9ajm6SfLBTEt -# oTo6gLOX0UD/9rrhGjdkiCw4SwU5osClgqgiNMK5ndk2gxFlDXHCyLp5qB6BoPpc -# 82RhO0yCzoP9gv7zv2EocAWEsqE5+0Wmu5uarmfvcziLfU1SY240OZW8ld4sS8fn -# ybn/jDMmFAhazV1zH0QERWEsfLSpwkOXaImWNFJ5lmcnf1VTm6cmfasScYtElpjq -# Z9GooCmk1XFApORPs/PO43IcFmPRwagt00iQSw+rBeIH00KQq+FJT/62SB70g9g/ -# R8TS6k6b/wt2UWhqrW+Q8lw6Xzgex/YwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAtkQt/ebWSQ5DnG+aKRzPELCFE9GggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxQyWgwIhgPMjAyNTA4MjAyMjIzMzZaGA8yMDI1MDgyMTIyMjMzNlowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FDJaAIBADAHAgEAAgIVlDAHAgEAAgIS0DAK -# AgUA7FIa6AIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBgKHKamkpq0bjD -# yqwvKqJIh4MpErIorqas9UeflW4WuaBqfgZfRHLcGpHlqtym1lhV2dZ2ogn0xT9k -# blrYknIIa0VY/rw/5EJPSN3AU8QT66EflMjIdtZ1mRTIbhhSG507VUy0Ma03wsa4 -# ZgxrzsrC2Akqbo0sE4EHk6u48gr9EuouVyFCu2NmDge0NNYKlfEIOBhoXBCjFGyp -# XzyiOUHxGw5DNQ5LuCKh85oPcT35guLgYF4ooRfmIeBZ5XvCljB0/FAyCPXkrkz/ -# +O/SgmsoHiihw4dKupgzu3wAvU9zXC9OpiMg/42yXZEKK6UGjsBJGLapGoOR/oN8 -# ULas4ousMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH4o6EmDAxASP4AAQAAAfgwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgHJWki70sigPt -# 7ptxsnjffP1yPuUYcyEjJXn95PXk9G4wgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCDvzDPyXw1UkAUFYt8bR4UdjM90Qv5xnVaiKD3I0Zz3WjCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+KOhJgwMQEj+AAEAAAH4 -# MCIEIACSAjjfH4EbGV3zJvpJyYuWul9UZtGP8mFk8LjT1VLUMA0GCSqGSIb3DQEB -# CwUABIICAC0aqrtDHAT1KsTF1+Zmg32dqnMOMbHas3g93G93wd8p1trkESfv9O2w -# ddDn4n0+ErUsrNErnNeUmlWksm+gZfMl2Y+pf8JKR2AbZKbt3/C2kH1FjGSoZuQl -# YhARxCdV5ioM4E4p+WwR7eqxSa9STXz4kb7G93wY5qIw82Spojp/MCFz/OoIdWcm -# aZja0dSe1ZofpxCd3P1SKHA51+h4iuKBx5iQNovzZlMtCCCYs0jjebbZIUUfGg/g -# sOPnkGaxXUvtdB9IW/3P78sAGRpbf/xcy9/SHzhLGTRXF8Qnl9G3Z+JWWd05lPl1 -# P3GxUtkB3nCzQhm7dlm69bys6ox8Fh80em+UburCftnqVM0XNGVtt9oC16/Dm3B4 -# 6S8X7tPx6E6CHfRXPg7Yi1tuqJA3f1OSygitllL04Br7ijT/MKN9S4ycsqWNlNgj -# fA5GM3H7kxUqrGzXqlXlAoS+HtBzn9zuHXeD5zvGVqsisNO369uny4zSJPELb99E -# NadszexcwK4KRn3QnhqolUSvYt+mKbVYGILmTCnjK1tkCXzMIF24Tlhwyu3pPA+B -# uH92cS6P8Flsn9VPmRyWDMBPaaB+7dnkoTqkNj0peq1shmJaqPOV//gpdeH74c7T -# aU2OUGh4OlLZ6yzBGbZ/JP1hX+wWiObYKBKT8DTl6BUa5flup0G3 -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/MicrosoftTeams.psm1 b/Modules/MicrosoftTeams/7.3.1/MicrosoftTeams.psm1 deleted file mode 100644 index 2bb6de4e43e7..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/MicrosoftTeams.psm1 +++ /dev/null @@ -1,259 +0,0 @@ -#Check for the source module - Common Denominator -$moduleInfo = Get-Module -name "CommonDenominator" -#Check for the cmdlet -if($moduleInfo -ne $null) { -$dmsIdentifier = Get-command "Get-ClientType" -module "CommonDenominator" -ErrorAction SilentlyContinue -} -if($dmsIdentifier -ne $null) { -$isDms = & Get-ClientType - -if($isDms -eq "DMS") { - $env:MSTeamsContextInternal = "IsOCEModule" -} - -} -if($PSEdition -ne 'Desktop') -{ - Import-Module $('{0}\netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) - if ($env:MSTeamsContextInternal -ne "IsOCEModule") { - Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) - } - else - { - Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) - } - Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) - -} -else -{ - Import-Module $('{0}\net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) - [Reflection.Assembly]::Loadfrom($('{0}\net472\Newtonsoft.Json.dll' -f $PSScriptRoot)) - if ($env:MSTeamsContextInternal -ne "IsOCEModule") { - Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) - } - else - { - Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) - } - Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) -} -Import-Module $('{0}\Microsoft.Teams.Policy.Administration.psd1' -f $PSScriptRoot) -Import-Module $('{0}\Microsoft.Teams.ConfigAPI.Cmdlets.psd1' -f $PSScriptRoot) -# SIG # Begin signature block -# MIIoLQYJKoZIhvcNAQcCoIIoHjCCKBoCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJponIg6/1vb48 -# stXuS4z8oBYcN1DNZwuhwmt7j7P5CaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIADBpasuVHSfoJTNR02qga8z -# 3vkaj9V4PoBJXQ16dJ5RMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAa2hXjgMefcDVoAmaPGISkjFnMZvnSZp2+8XpvkIt26MNvqjpinahiNi0 -# J8kmvRoT/SN09g+u4NvbwH3AwGFvfkIX9vSp5cF+6bzi3NCL6Cqx/Lj31qF9HEOo -# OwLK0g5nAfk+nr6bwEeqZA3WquM20xEuAEh8tykASdFrkUUDJAYdqnBUJMPkA1JS -# 7lEt3ek5aW6o3sNx9PYYBx5Jq3G3iy5YTIGTLWOXlKoPIEqZndLgp3CVwQVZGgfJ -# sVZtc/kVrdyBl2jYRqkZilDI4RKJaZ8R1B/Lhp/aJcxGMFDKbyYAHWXNxng3Z+5q -# BSnDGAcGeECjq+kYE1TVQ+euYOxm36GCF5cwgheTBgorBgEEAYI3AwMBMYIXgzCC -# F38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCDhsAkGSA1+h7Y+5dAMX+AETdGkV85nRZBJgo3+DGl0ZAIGaKOdGv+1 -# GBMyMDI1MDgyMTA2NTExMC41NDlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHtMIIHIDCCBQigAwIBAgITMwAAAgO7HlwAOGx0ygABAAACAzANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNTAxMzAxOTQy -# NDZaFw0yNjA0MjIxOTQyNDZaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQChl0MH5wAnOx8Uh8RtidF0J0yaFDHJYHTpPvRR16X1 -# KxGDYfT8PrcGjCLCiaOu3K1DmUIU4Rc5olndjappNuOgzwUoj43VbbJx5PFTY/a1 -# Z80tpqVP0OoKJlUkfDPSBLFgXWj6VgayRCINtLsUasy0w5gysD7ILPZuiQjace5K -# xASjKf2MVX1qfEzYBbTGNEijSQCKwwyc0eavr4Fo3X/+sCuuAtkTWissU64k8rK6 -# 0jsGRApiESdfuHr0yWAmc7jTOPNeGAx6KCL2ktpnGegLDd1IlE6Bu6BSwAIFHr7z -# OwIlFqyQuCe0SQALCbJhsT9y9iy61RJAXsU0u0TC5YYmTSbEI7g10dYx8Uj+vh9I -# nLoKYC5DpKb311bYVd0bytbzlfTRslRTJgotnfCAIGMLqEqk9/2VRGu9klJi1j9n -# VfqyYHYrMPOBXcrQYW0jmKNjOL47CaEArNzhDBia1wXdJANKqMvJ8pQe2m8/ciby -# DM+1BVZquNAov9N4tJF4ACtjX0jjXNDUMtSZoVFQH+FkWdfPWx1uBIkc97R+xRLu -# PjUypHZ5A3AALSke4TaRBvbvTBYyW2HenOT7nYLKTO4jw5Qq6cw3Z9zTKSPQ6D5l -# yiYpes5RR2MdMvJS4fCcPJFeaVOvuWFSQ/EGtVBShhmLB+5ewzFzdpf1UuJmuOQT -# TwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFLIpWUB+EeeQ29sWe0VdzxWQGJJ9MB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCQEMbesD6TC08R0oYCdSC452AQrGf/O89G -# Q54CtgEsbxzwGDVUcmjXFcnaJSTNedBKVXkBgawRonP1LgxH4bzzVj2eWNmzGIwO -# 1FlhldAPOHAzLBEHRoSZ4pddFtaQxoabU/N1vWyICiN60It85gnF5JD4MMXyd6pS -# 8eADIi6TtjfgKPoumWa0BFQ/aEzjUrfPN1r7crK+qkmLztw/ENS7zemfyx4kGRgw -# Y1WBfFqm/nFlJDPQBicqeU3dOp9hj7WqD0Rc+/4VZ6wQjesIyCkv5uhUNy2LhNDi -# 2leYtAiIFpmjfNk4GngLvC2Tj9IrOMv20Srym5J/Fh7yWAiPeGs3yA3QapjZTtfr -# 7NfzpBIJQ4xT/ic4WGWqhGlRlVBI5u6Ojw3ZxSZCLg3vRC4KYypkh8FdIWoKirji -# dEGlXsNOo+UP/YG5KhebiudTBxGecfJCuuUspIdRhStHAQsjv/dAqWBLlhorq2OC -# aP+wFhE3WPgnnx5pflvlujocPgsN24++ddHrl3O1FFabW8m0UkDHSKCh8QTwTkYO -# wu99iExBVWlbYZRz2qOIBjL/ozEhtCB0auKhfTLLeuNGBUaBz+oZZ+X9UAECoMhk -# ETjb6YfNaI1T7vVAaiuhBoV/JCOQT+RYZrgykyPpzpmwMNFBD1vdW/29q9nkTWoE -# hcEOO0L9NzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy -# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg -# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF -# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 -# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp -# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu -# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E -# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 -# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q -# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ -# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA -# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw -# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG -# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV -# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj -# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK -# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG -# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x -# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC -# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 -# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM -# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS -# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d -# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn -# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs -# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL -# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL -# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNQ -# MIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkRDMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQDN -# rxRX/iz6ss1lBCXG8P1LFxD0e6CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7FC+UzAiGA8yMDI1MDgyMDIxMzYx -# OVoYDzIwMjUwODIxMjEzNjE5WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDsUL5T -# AgEAMAoCAQACAhB7AgH/MAcCAQACAhN8MAoCBQDsUg/TAgEAMDYGCisGAQQBhFkK -# BAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJ -# KoZIhvcNAQELBQADggEBAB8il0pQw06M0mCCdf5LGhHWidCcbIPZIcW6cUA/KtLt -# XApWGVJkIA8Wil8TU/A6dhMbCtypXFBOY0niDy42h3fcJDJ8aSdvIeONkAMbdqgW -# MUZ4wtT6vdXGJ7ju1g/ur7L+CEMhX6RwieLVmVAuELh/S3bFITDQc/mHdFlJoSOj -# CtI7rOh5XbdZ0oZ3z+ix/FUylcljqQKf5tM2K3SGXOHYSouguxUNM/aYlB2GOUqD -# WhDhUmNRTzWkV0ujBkxdz1+Q34ylmYacSfSlAVLeUMVPpmjn0VA+Quu7au1lLiIP -# oMZkStVSxPayQHiGBArMxCCAud0Oq39ptq9SiAG1DvIxggQNMIIECQIBATCBkzB8 -# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk -# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N -# aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgO7HlwAOGx0ygABAAAC -# AzANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEE -# MC8GCSqGSIb3DQEJBDEiBCD9P4PuHtKf0nWN28BvL1+7Zh1ud4g81IDUpxluHuJy -# PzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIEsD3RtxlvaTxFOZZnpQw0Dk -# sPmVduo5SyK9h9w++hMtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAIDux5cADhsdMoAAQAAAgMwIgQgo8ACeKtY9jBWOMau4YVEC6+x -# LbcvG6UZYeL7Q6wrWTYwDQYJKoZIhvcNAQELBQAEggIATj35KFEv2Fhz/o+MjmeQ -# NdY9Oxm8IKaBbBnHheAtalU7drGG80oZ0ocU+JKTVtnWr6XUTRgETJerQCxIpkmm -# cTORTijqJbC7qAXC2ZwpUa23t3XF8/Q5TlHwUlyUSQBp9A1Kcx8d0C7TfjqiPXo7 -# O39SShvFgx2i2Fpe/046/TXTDfjN8E7tXtxwCEtS5KZlx7sIxbmuH+/6zjERZGpi -# e+GLQXm9ZMa+uhR2ktTqy8dcNwMY4k1jNKztA9sQuD0CftXKhllVkFTLKg0Wxwex -# L7bKXelFLQrcupJXv/gnoqbzl9TIEH0Kk50yCv7NDf/DhGXJpPtlfQ9nJFOfB4Xj -# uRt63IBZKItoPd79+vdu2ke9X8j0aCwATSYQyFF8RZAcj+lI7yuq63BsbD6jmS4a -# v/QLu5zpEkHSXLGewuUeyskTaFTA4zbzsJ67qsiwKtr9XpOvj6uwQQByQMo58/g3 -# WW2KBgQ1B8FoKYiQOBY2tqXmOtSwS2W4uOqTg7LKlz0+ploDiUCgdxhg/T5V/vYc -# 1j2FBX3eJkp3ewDIkJHSPP2ggdOJE4a+LvHw5M8gGH+W8v0vgfMzYKBfqNFuAxx+ -# BdL4dhiZ1h2TRxkSv1+K791H1GTVvy9bO14vCCY6yVgy1JIMJ1pXIs0CGP1HPIr5 -# bgAq/RqSU1J8PAEm4DgYc4Y= -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/SetMSTeamsReleaseEnvironment.ps1 b/Modules/MicrosoftTeams/7.3.1/SetMSTeamsReleaseEnvironment.ps1 deleted file mode 100644 index 5beabcb95b00..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/SetMSTeamsReleaseEnvironment.ps1 +++ /dev/null @@ -1,236 +0,0 @@ -#This file is setting HostingEnvironment environment variable using which we can decide in nested modules, that which cmdlets it has to export. - -# We don't have access to the module at load time, since loading occurs last -# Instead we set up a one-time event to set the OnRemove scriptblock once the module has been loaded -$null = Register-EngineEvent -SourceIdentifier PowerShell.OnIdle -MaxTriggerCount 1 -Action { - $m = Get-Module MicrosoftTeams - $m.OnRemove = { - Write-Verbose "Removing MSTeamsReleaseEnvironment" - $env:MSTeamsReleaseEnvironment = $null - Disconnect-MicrosoftTeams - } -} - -$env:MSTeamsReleaseEnvironment = 'TeamsGA' - -#The below line will be uncommented by build process if its preview module - -#preview $env:MSTeamsReleaseEnvironment = 'TeamsPreview' - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6QSrbNq5qY4CX -# 15x6qVrEe3OnMqckrZDKvtChfXP5jaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKwhnAu5OLUmTWVzGDxzwu87 -# ECHdTJ+a4iX/WmYDn6qeMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAXeUx+hHa9BTTxPy21dKmsrynd3wR8gTxSOk5lokyto/BPF9LSbvGovpu -# WrtDg3+tYma3ye4lritHYPEr3gz+Qgd7giFL1n1a5uSDKGVNsQlZh0S+0az3q+oK -# 8wxT0ENrXVwzP4nnRrsdkx0zbXe0bvsmItiL6rrHBT/xsvSJHRzEJp0KDBHWZxOm -# b/Yb6oAvjLpV6yeGgdt4XEUPWSl/yd8IpHd9hmMKbqXCgBCrwKchdEwe/MvhfDGj -# 9rJNcYRp7VGWxmW/SUsIUrvaFQ5Mzj44C3+Gy6o9SLKcWvTcKN1PbOH2Xl1ppam9 -# yiezpRZUWu2zTTx7x2np2wZnlPYSjaGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCA2iF5naCuCLpl4NmZ34Aq0ngbLpBuPuzmUW5tbcd13VQIGaKR0EBZa -# GBMyMDI1MDgyMTA2NTEwNS43MTJaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7RNN3M8bTAAEAAAH6MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjQzMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyhZVBM3PZcBfEpAf7fII -# hygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpGyDGX+EbCbHhS5Td4J0Yl -# c83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJdenpQ6UciM4nMYZvdQjyb -# A4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ45oQIp7Sx57RPQ/0O6qay -# J2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVKrRV5YelRvWNTg1pH4EC2 -# KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah14t7Yk+xl5P4Tw3xfAGg -# Hsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1NroJKwBCW11Pwi0z/ki9 -# 0ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7Lk0Z/pATRwAINqwdvzpdt -# X2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8pSwGewrffwgAbNKm82ZDF -# vqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbNh5tDv3GeJ3EKvC4vNSAx -# tGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG3zcsYHaa4+w+YmMrhTEz -# D4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRjjHKbL5WV -# 6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAuFbCorFrvodG -# +ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xWdL1kygaW5BOZ3xBlPY7V -# puf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJfUQRThDL4zxI2pYc1wnPp -# 7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yatcm4kBqIH6db1+weM4q46 -# NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJSKcJ3nMVyfNlnv6yvttYz -# LK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0VCM11rHM11ZmN0euJbbBC -# VfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6CqLKjtHSoeoAGPeeX24f -# 5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRstZajbYEeX/N7RvSbkn0d -# jD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M0TKOduihhKxAt/6Yyk17 -# Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe5N0e4HWFf8WW2ZL0+c83 -# Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87ZymXG3MO2wUjhL9HvSQzj -# oquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKwBvII6sg0Ny7aPDaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxQ7KMwIhgPMjAyNTA4MjEwMDUzNTVaGA8yMDI1MDgyMjAwNTM1NVowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FDsowIBADAHAgEAAgI2HDAHAgEAAgIShDAK -# AgUA7FI+IwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCGz9gaKsjCCzoQ -# HI21QlCnbFac8ftm3gk0WWFJkidgtF3EKv1b6rCea/jpv8xRvqlGSUC0qjt5iT5U -# Wrd3lbvWd2PdY98kH8tEr6OL8C5U3aMct4xm1coaALrO9uf25gcbcggXX4Ygstud -# UNRtUyip1qwanz6YQv5rycXKNLbC/BRLVSa01f4dcOEs/Q5kXMQdPM2CaSMXQ9H/ -# 7gYtmD8ihXpcXZnPQGSJOpv56iB/7/2kdibqQctgAg5XnIFwCn+kLFLainGNrktL -# wZMlz2aNZ+UgDfvZTjSoIrG/OegBP53vd/wYX2/x0Rb8VhssGraLrgNGYrkPERp/ -# MYC0pHHrMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgQB5RBE49OAGb -# 05fhKHBUIhuwgalqarqc5AShbufl6KgwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNStYocbkOeVjCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+vs7RNN3M8bTAAEAAAH6 -# MCIEIBKx+tT+2HeXI5uIQBaGTouuw8OOCm7bTqO0ZEoYQ09MMA0GCSqGSIb3DQEB -# CwUABIICAD6J/w3I/o+OmYLoGV5n6KcXRpWU8E8ExUEtDSvbjur1B1WgM46Nc6Mk -# YM5SV9sEGDkXViTWuTEtpcOCQNJdaOxPW4k7943kRckVRB0hlQscAbW0fRvdkmjV -# CZyo90e22SZ44UYOvhKUhfXRYP+uqVuSA4oxhd1uWuhHjt02Ewb/bOFFskm03PRu -# 7xvDAru1jCuxDr18J/tCx3dUZwjecpX9ksRY3g9cOCmY+FWu/ohqsD+7tVEtSlZl -# 8ZMTNBEesLRUSAT/xDNS+GhXz6ZQSEMhsNZVaclD7RtX+Gihbyb3B4dSZiOIIr4K -# /RLoryjrWf/WIEtWslTzySviG/y4fBs0aWCmiZ47dK9kUJKB63j0/Hxu0i9ERe2F -# o79mfBjGLjndimZToWuM7FNvuq12qtsIZE15Kf9kYbcHz/DAwArzb0DxwL63d9Du -# 1TyJjB+nY2Cjo2Y7oT3vMDFGvrm8LjTUnaarNSSHLOjVNNeQyZ/zOBr3IkbpaVJa -# Hx5i2oZOrTSv7nQNcVXE0NZqLTB8+0rNgRS8n4jFJwtxvIx7UY4RRyZp3yDtZU50 -# GFb0RLggpdQnKuRsRCTdn2RuMvzXAMwJFr0gst//bikUaVneuzeBwuto8B6BYQtg -# 4T0S+mxww0QLBBSMGIOJ2t0asDp1uCv+msP7Otav+vilM6xFYqAD -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/ESRPClientLogs0821070850426.json b/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/ESRPClientLogs0821070850426.json deleted file mode 100644 index afb760a79d5e..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/ESRPClientLogs0821070850426.json +++ /dev/null @@ -1 +0,0 @@ -{"StdOut":"******************************************************************************\r\nMachine Information\r\nMachine Name: at-blue9YHALR\r\nMachine Ip: 10.211.0.48\r\nOperating System: Microsoft Windows NT 10.0.26100.0\r\nUser Name: at-blue9YHALR$\r\nProcessor Count: 16\r\nProcess Name: EsrpClient\r\nProcess Id: 10364\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\\vctmp2068_387769.json | -p | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp9728_524567.json | -c | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp9728_245715.json | -i | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp2068_581852.json | -o | c:\\Temp\\AzureTemp\\TFSTemp\\v38DC4C.tmp | -l | Verbose ESRP session Id is: c9721781-8a08-4f5f-b91c-9634bed961f1\r\n2025-08-21T07:08:39.6437989Z:Command you are trying to use is: Sign\r\n2025-08-21T07:08:39.6500710Z:Correlation Vector for this run is: 46cce419-d274-4419-a063-1d6e70104d58\r\n2025-08-21T07:08:39.6500710Z:Groupid for this run is empty\r\n2025-08-21T07:08:39.7445063Z:request signing cert being used is this thumbprint: 3B55270D33E5E718ADF65261CFBF8502E6AAAF34 in store LocalMachine\\My\r\n2025-08-21T07:08:39.7445063Z:Both certificates validation passed.\r\n2025-08-21T07:08:39.7470121Z:The auth cert we choose to use, subject name is: CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f.microsoft.com, thumbprint is: 63998A6F0D9729635587887EEBFD3863C03B13A0\r\n2025-08-21T07:08:39.8114013Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-08-21 07:08:39Z] ConfidentialClientApplication 37368736 created\r\n2025-08-21T07:08:39.8114013Z: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-08-21T07:08:39.8271514Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-08-21T07:08:39.8295969Z: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-08-21T07:08:39.9707536Z:Global cached token is valid from 8/21/2025 7:03:30 AM to 8/22/2025 7:08:30 AM (UTC). Total validity from current time is 86390.0292464 seconds\r\n2025-08-21T07:08:39.9707536Z:Validate and Renew Token if necessary finished: 00:00:00.1400712\r\n2025-08-21T07:08:40.0631230Z: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-08-21T07:08:40.0922936Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-08-21 07:08:40Z] ConfidentialClientApplication 64879470 created\r\n2025-08-21T07:08:40.0922936Z: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-08-21T07:08:40.0986395Z:Gateway Client: a new client and client id is created: 292404ae-82bf-4a19-846a-f9817b95e866\r\n2025-08-21T07:08:40.1119795Z:Existing Token Acquisition Time: 00:00:00.0046984\r\n2025-08-21T07:08:40.1516805Z:Gateway Client: the client id that is sending a request is: 292404ae-82bf-4a19-846a-f9817b95e866\r\n2025-08-21T07:08:41.8897820Z:Gateway Client: response send time from cloud gateway: 2025-08-21T07:08:41.4830946+00:00\r\n2025-08-21T07:08:41.8897820Z:Gateway Client: response receive time from client SendAsync: 2025-08-21T07:08:41.8897820+00:00\r\n2025-08-21T07:08:41.8897820Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.4066874\r\n2025-08-21T07:08:41.9970313Z:Session request requestid: 93f7e55e-270f-4f6a-90af-0434c22c3f39, and submission status is: Pass\r\n2025-08-21T07:08:42.0439327Z:Provision storage complete. Total shards: 100\r\n2025-08-21T07:08:42.0467717Z:Loading DigestSignErrorMappingCache mapping info\r\n2025-08-21T07:08:42.0560609Z:DigestSignErrorMappingCache from server, # of DigestSignOperationErrorPatterns object we get is :: \r\n2025-08-21T07:08:42.0650783Z:Consolidate DigestSignErrorMappingCache, # of DigestSignOperationErrorPatterns object we get is :: 34\r\n2025-08-21T07:08:42.0650783Z:Successfully retrieved policy: policy is {\"policy\":{\"id\":\"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f-0\",\"workflowExecutionType\":3}}\r\n2025-08-21T07:08:42.0748832Z:Successfully get telemetry connection string: Endpo......\r\n2025-08-21T07:08:42.0762206Z:Warning: \r\n2025-08-21T07:08:42.0789088Z: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-08-21T07:08:42.0809186Z: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-08-21T07:08:42.0869424Z: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-08-21T07:08:42.3639562Z:Client Telemetry: Xpert agent is not running on the machine. Using events hub for processing client telemetry.\r\n2025-08-21T07:08:42.5498161Z:Key: TotalSignOperationDataCount, Value: 1\r\n2025-08-21T07:08:42.5633011Z:Start Time:8/21/2025 7:08:42 AM, Starting the sign workflow...\r\n2025-08-21T07:08:42.5719179Z:some input info: {\r\n \"contextData\": {\r\n \"build_buildnumber\": \"AzureDevOps_M260_20250729.13\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.48\",\r\n \"userAgent\": \"at-blue9YHALR\"\r\n },\r\n \"sourceDirectory\": null,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\wve2fjng.2x1\\\\manifest.cat\",\r\n \"destinationDirectory\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\wve2fjng.2x1\\\\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\": 10364,\r\n \"processVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"customerCorrelationId\": null,\r\n \"esrpClientSessionGuid\": \"c9721781-8a08-4f5f-b91c-9634bed961f1\",\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_M260_20250729.13\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.48\",\r\n \"userAgent\": \"at-blue9YHALR\"\r\n },\r\n \"groupId\": null,\r\n \"correlationVector\": \"46cce419-d274-4419-a063-1d6e70104d58\",\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.48\"\r\n}\r\n2025-08-21T07:08:42.6201019Z:Executing SignWorkflowType is DigestSignStaticAzure\r\n2025-08-21T07:08:42.6405262Z:Source file \"c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\" hashed in 9 ms\r\n2025-08-21T07:08:42.6835238Z:Thread: 1 - Certificate file mutex \"otO4HcyJsqWLEqRwJtNFvU4mGLAMX/Dp8Hy8VAq/NAU=_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-08-21 07:08:42Z] ConfidentialClientApplication 44123454 created\r\n2025-08-21T07:08:42.6939720Z: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-08-21T07:08:42.6949786Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-08-21T07:08:42.6949786Z: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-08-21T07:08:42.6949786Z:Global cached token is valid from 8/21/2025 7:03:30 AM to 8/22/2025 7:08:30 AM (UTC). Total validity from current time is 86387.3050214 seconds\r\n2025-08-21T07:08:42.6949786Z:Validate and Renew Token if necessary finished: 00:00:00.0006247\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-08-21 07:08:42Z] ConfidentialClientApplication 17230008 created\r\n2025-08-21T07:08:42.6957453Z: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-08-21T07:08:42.6957453Z:Gateway Client: a new client and client id is created: b0e30890-1a73-4cd8-a81e-a285c13fad1e\r\n2025-08-21T07:08:42.6957453Z:8/21/2025 7:08:42 AM +00:00:Digest Signing Factory Client type loaded is - [AzureGatewaySubmitter].\r\n2025-08-21T07:08:42.7029363Z:Existing Token Acquisition Time: 00:00:00.0002790\r\n2025-08-21T07:08:42.7654864Z:Gateway Client: the client id that is sending a request is: b0e30890-1a73-4cd8-a81e-a285c13fad1e\r\n2025-08-21T07:08:43.4947227Z:Gateway Client: response send time from cloud gateway: 2025-08-21T07:08:43.4048626+00:00\r\n2025-08-21T07:08:43.4947227Z:Gateway Client: response receive time from client SendAsync: 2025-08-21T07:08:43.4947227+00:00\r\n2025-08-21T07:08:43.4947227Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0898601\r\n2025-08-21T07:08:43.4947227Z:Gateway Client: response time after converting from http response to object: 2025-08-21T07:08:43.4947227+00:00\r\n2025-08-21T07:08:44.0217113Z:Existing Token Acquisition Time: 00:00:00.0005227\r\n2025-08-21T07:08:44.0259009Z:Gateway Client: the client id that is sending a request is: b0e30890-1a73-4cd8-a81e-a285c13fad1e\r\n2025-08-21T07:08:44.5370143Z:Gateway Client: response send time from cloud gateway: 2025-08-21T07:08:44.4410295+00:00\r\n2025-08-21T07:08:44.5370143Z:Gateway Client: response receive time from client SendAsync: 2025-08-21T07:08:44.5370143+00:00\r\n2025-08-21T07:08:44.5370143Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0959848\r\n2025-08-21T07:08:44.5460509Z:Gateway Client: response time after converting from http response to object: 2025-08-21T07:08:44.5460509+00:00\r\n2025-08-21T07:08:44.5521522Z:Reading thumbprint from \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_c97217818a084f5fb91c9634bed961f1\\Certificates\\CP-464321.p7b\" (9692 bytes)...\r\n2025-08-21T07:08:44.5859121Z:Thread: 1 - Wrote new certificate file to \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_c97217818a084f5fb91c9634bed961f1\\Certificates\\CP-464321.p7b\".\r\n2025-08-21T07:08:44.5859121Z:Thread: 1 - Certificate file mutex \"otO4HcyJsqWLEqRwJtNFvU4mGLAMX/Dp8Hy8VAq/NAU=_CP-464321\" released (held for 1902 ms).\r\n2025-08-21T07:08:44.5865607Z:digest sign request expire time is: 8/21/2025 7:09:42 AM\r\n2025-08-21T07:08:45.3139901Z:Client Telemetry: Events published in this batch: 4\r\n2025-08-21T07:08:45.3139901Z:Client Telemetry: Events received so far in this session: 4\r\n2025-08-21T07:08:45.3139901Z:Client Telemetry: Events published so far in this session: 4\r\n2025-08-21T07:08:48.8275353Z:Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe sign /NPH /fd \"SHA256\" /f \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_c97217818a084f5fb91c9634bed961f1\\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_c97217818a084f5fb91c9634bed961f1\\7344552A7280420EA8D7B24CAB3F9606.json\" \"c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\" completed in 4239 ms\r\nExit Code: 0\r\nStdOut:\r\nDone Adding Additional Store\r\n\r\nESRP Digest Signing\r\n\r\n2025-08-21T07:08:45.6455613Z: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-08-21 07:08:45Z] ConfidentialClientApplication 654897 created\r\n2025-08-21T07:08:45.8277504Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-08-21T07:08:45.8282033Z: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-08-21T07:08:45.9414253Z:Global cached token is valid from 8/21/2025 7:03:30 AM to 8/22/2025 7:08:30 AM (UTC). Total validity from current time is 86384.0585747 seconds\r\n2025-08-21T07:08:45.9414253Z:Validate and Renew Token if necessary finished: 00:00:00.1114199\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-08-21 07:08:45Z] ConfidentialClientApplication 49044892 created\r\n2025-08-21T07:08:46.0025458Z:Existing Token Acquisition Time: 00:00:00.0024776\r\n2025-08-21T07:08:47.3384225Z:Gateway Submission Request Signing Time: 00:00:00.1093777\r\n2025-08-21T07:08:47.3384225Z:Gateway Submission Request Send Time: 00:00:01.2076796\r\n2025-08-21T07:08:47.3384225Z:Gateway Submission Overall Submission Time: 00:00:01.3334671\r\n2025-08-21T07:08:47.3384225Z:Operation ID: 43ba9e21-ee29-4089-b5e1-63d6eeb78df2\r\n2025-08-21T07:08:47.8415174Z:Gateway Status Delay Time: 00:00:00.5016854\r\n2025-08-21T07:08:47.8500465Z:Existing Token Acquisition Time: 00:00:00.0005657\r\n2025-08-21T07:08:48.5325877Z:Gateway Status Request Send Time: 00:00:00.6778267\r\n2025-08-21T07:08:48.5325877Z:Gateway Status Overall Time: 00:00:00.6799780\r\n2025-08-21T07:08:48.5426677Z:Gateway Submission Duration: 1692\r\n2025-08-21T07:08:48.5430785Z:Gateway Submission Attempts: 1\r\n2025-08-21T07:08:48.5430785Z:Gateway GetStatus Duration: 692\r\n2025-08-21T07:08:48.5430785Z:Gateway GetStatus Attempts: 1\r\n2025-08-21T07:08:48.5430785Z:$$5a9f5111cf8f42a0a0edc419862b95dc##_ThrottleCount: 0\r\n2025-08-21T07:08:48.5430785Z:$$65265a48891640eb86e148d3c9a627fa##_ThrottledTimeInSec: 0\r\n2025-08-21T07:08:48.5430785Z:Service Call: 3027.869 ms\r\nSuccessfully signed: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\r\n\r\n\r\n\r\nStdErr:\r\n\r\n\r\n\r\n\r\n2025-08-21T07:08:48.9930118Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\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-08-21T07:08:48.9948378Z:Warning: Warning: Operation Error (1) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\" - Retrying in 500 ms...\r\n2025-08-21T07:08:49.0007551Z:Client Telemetry: Events published in this batch: 1\r\n2025-08-21T07:08:49.0007551Z:Client Telemetry: Events received so far in this session: 5\r\n2025-08-21T07:08:49.0007551Z:Client Telemetry: Events published so far in this session: 5\r\n2025-08-21T07:08:49.1176643Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\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-08-21T07:08:49.1176643Z:Warning: Warning: Operation Error (2) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\" - Retrying in 500 ms...\r\n2025-08-21T07:08:49.6609744Z:Client Telemetry: Events published in this batch: 2\r\n2025-08-21T07:08:49.6609744Z:Client Telemetry: Events received so far in this session: 7\r\n2025-08-21T07:08:49.6609744Z:Client Telemetry: Events published so far in this session: 7\r\n2025-08-21T07:08:49.7254870Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\wve2fjng.2x1\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\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-08-21T07:08:49.7533155Z:\r\n2025-08-21T07:08:49.7544580Z: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\\wve2fjng.2x1\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\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\\wve2fjng.2x1\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\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-08-21T07:08:49.7917459Z:Constructing EsrpClientResponse\r\n2025-08-21T07:08:49.7937513Z:EsrpClientResponse is constructed\r\n2025-08-21T07:08:49.8226449Z:OperationDurationMs: 7181\r\n2025-08-21T07:08:49.8226449Z:DynamicCertGenerationTimeMs: 0\r\n2025-08-21T07:08:49.8226449Z:TimeToGetStorageShradsMs: 0\r\n2025-08-21T07:08:49.8226449Z:TotalScanSubmissionTimeMs: 0\r\n2025-08-21T07:08:49.8226449Z:ThrottleCount: 0\r\n2025-08-21T07:08:49.8226449Z:ThrottledTimeInSec: 0\r\n2025-08-21T07:08:49.8226449Z:\r\n2025-08-21T07:08:49.8226449Z:0/1 files signed in 00:00:07.181 (0 files/s, total number of certs refreshed: 0)\r\n2025-08-21T07:08:49.8247171Z:result json is: {\r\n \"submissionResponses\": [\r\n {\r\n \"fileStatusDetail\": [\r\n {\r\n \"sourceHash\": \"IQkH0qqmmODbFQt+wrg/Z/rmR6HflHef+mJcuFmUya8=\",\r\n \"hashType\": \"sha256\",\r\n \"destinationHash\": null,\r\n \"certificateThumbprint\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\wve2fjng.2x1\\\\manifest.cat\",\r\n \"destinationFileSizeInBytes\": 0,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\wve2fjng.2x1\\\\manifest.cat\"\r\n }\r\n ],\r\n \"operationId\": \"43ba9e21-ee29-4089-b5e1-63d6eeb78df2\",\r\n \"customerCorrelationId\": \"46cce419-d274-4419-a063-1d6e70104d58\",\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\\\\wve2fjng.2x1\\\\manifest.cat\\\"\",\r\n \"exitCode\": \"1\",\r\n \"stdOut\": \"File: c:\\\\Temp\\\\AzureTemp\\\\wve2fjng.2x1\\\\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\": \"c9721781-8a08-4f5f-b91c-9634bed961f1\",\r\n \"version\": \"1.0.0\"\r\n}\r\n2025-08-21T07:08:49.8580561Z:Warning: \r\n\r\n2025-08-21T07:08:49.8580561Z:esrp-client-finalTime: 11141.6846\r\n2025-08-21T07:08:49.8580561Z:Final return code is: 1\r\n2025-08-21T07:08:49.8580561Z:ClientTelemetryDispose started, this is not affecting Exe reliability, only lost telemetry if error happens ***********************\r\n2025-08-21T07:08:49.8620662Z:Client Telemetry: Flushing telemetry buffer with timeout 0 ms\r\n2025-08-21T07:08:49.8653318Z:Client Telemetry: Flushing telemetry buffer completed within timeout (true/false): False\r\n2025-08-21T07:08:49.8653318Z:Client Telemetry: Disposing telemetry buffer and event hub client\r\n2025-08-21T07:08:50.3657723Z:Warning: event lost number: 4\r\n2025-08-21T07:08:50.3662196Z:total event processed number: 7\r\n2025-08-21T07:08:50.3662196Z:total event received number: 11\r\n2025-08-21T07:08:50.3662196Z:##EsrpClientTelemetry.TotalEventsProcessed##: 7\r\n2025-08-21T07:08:50.3662196Z:##EsrpClientTelemetry.TotalEventsReceived##: 11\r\n2025-08-21T07:08:50.3662196Z:##EsrpClientTelemetry.DisposeTimeMilliseconds##: 507\r\n2025-08-21T07:08:50.3662196Z:ClientTelemetryDispose ended ***********************\r\n","StdErr":"2025-08-21T07:08:49.7544580Z: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\\wve2fjng.2x1\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\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\\wve2fjng.2x1\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\wve2fjng.2x1\\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:12.3780479"} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.json.sha256 b/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.json.sha256 deleted file mode 100644 index 146986202f4e..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.json.sha256 +++ /dev/null @@ -1 +0,0 @@ -40f58dfb8a37a3361c5f0d6b83e4c27d54bb09b990241beb92f64a48d4051691 \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.3.1/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 b/Modules/MicrosoftTeams/7.3.1/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 deleted file mode 100644 index fbf1e57e3390..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 +++ /dev/null @@ -1,235 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') - - # Load the internal module - $internalModulePath = Join-Path $PSScriptRoot '..\internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1' - if(Test-Path $internalModulePath) { - $null = Import-Module -Name $internalModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export script cmdlets - Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) -# endregion - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBOycrzQVq6CnNY -# rK5l5Eg2CcKYocwkesaom45CeipKo6CCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJjwtTQPVUIPxEfl/cH44G64 -# tSZU5xH8iTxSrE/PWkOGMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAloZh+KX30r3kYSXHsbUTAqrO2DV+ou2UvQvPoOBc71qQNE7ZXAxmjH6N -# 9nVbV7Vr61amyosdytpQS79DgWI76r+qqjWfMYs72Pvl8Hy+LC+uOU7OEExJjLPZ -# FXUxcrx7tfNvQxVW1JgSjkPFNO5m69pT6OtuB8KzJt9NhzQb9248yTtFFeEL1T47 -# wGjuwAPq6HXJei+fg3isJ8F+mLuln8g663LW+rMLVJ479P76t5shwyZcyFivxcnZ -# 4de5uD64CBUv+uvMoK5kSl53Q6SjYgK/MabvTI2/254sAfCw1flawmmNWFOHKN6E -# ehZ/O0+1hHsbJhlWhIhDDCHTgesQm6GCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAL8ZJL5SVbCzJ/s7rtstEUKQAyLKYohuW/6Us/i28yxAIGaKNYMHLA -# GBMyMDI1MDgyMTA2NTEwNi4yNDFaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9oMvJmpUXSLBAAEAAAH2MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNFoXDTI1MTAyMjE4MzEwNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZCMDUt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0UJeLMR/N9WPBZhuKVFF -# +eWJZ68Wujdj4X6JR05cxO5CepNXo17rVazwWLkm5AjaVh19ZVjDChHzimxsoaXx -# Nu8IDggKwpXvpAAItv4Ux50e9S2uVwfKv57p9JKG+Q7VONShujl1NCMkcgSrPdmd -# /8zcsmhzcNobLomrCAIORZ8IwhYy4siVQlf1NKhlyAzmkWJD0N+60IiogFBzg3yI -# SsvroOx0x1xSi2PiRIQlTXE74MggZDIDKqH/hb9FT2kK/nV/aXjuo9LMrrRmn44o -# YYADe/rO95F+SG3uuuhf+H4IriXr0h9ptA6SwHJPS2VmbNWCjQWq5G4YkrcqbPMa -# x7vNXUwu7T65E8fFPd1IuE9RsG4TMAV7XkXBopmPNfvL0hjxg44kpQn384V46o+z -# dQqy5K9dDlWm/J6vZtp5yA1PyD3w+HbGubS0niEQ1L6wGOrPfzIm0FdOn+xFo48E -# Rl+Fxw/3OvXM5CY1EqnzEznPjzJc7OJwhJVR3VQDHjBcEFTOvS9E0diNu1eocw+Z -# Ckz4Pu/oQv+gqU+bfxL8e7PFktfRDlM6FyOzjP4zuI25gD8tO9zJg6g6fRpaZc43 -# 9mAbkl3zCVzTLDgchv6SxQajJtvvoQaZxQf0tRiPcbr2HWfMoqqd9uiQ0hTUEhG4 -# 4FBSTeUPZeEenRCWadCW4G8CAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRIwZsJuOcJ -# fScPWcXZuBA4B89K8jAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA13kBirH1cHu1 -# WYR1ysj125omGtQ0PaQkEzwGb70xtqSoI+svQihsgdTYxaPfp2IVFdgjaMaBi81w -# B8/nu866FfFKKdhdp3wnMZ91PpP4Ooe7Ncf6qICkgSuwgdIdQvqE0h8VQ5QW5sDV -# 4Q0Jnj4f7KHYx4NiM8C4jTw8SQtsuxWiTH2Hikf3QYB71a7dB9zgHOkW0hgUEeWO -# 9mh2wWqYS/Q48ASjOqYw/ha54oVOff22WaoH+/Hxd9NTEU/4vlvsRIMWT0jsnNI7 -# 1jVArT4Q9Bt6VShWzyqraE6SKUoZrEwBpVsI0LMg2X3hOLblC1vxM3+wMyOh97aF -# Os7sFnuemtI2Mfj8qg16BZTJxXlpPurWrG+OBj4BoTDkC9AxXYB3yEtuwMs7pRWL -# yxIxw/wV9THKUGm+x+VE0POLwkrSMgjulSXkpfELHWWiCVslJbFIIB/4Alv+jQJS -# KAJuo9CErbm2qeDk/zjJYlYaVGMyKuYZ+uSRVKB2qkEPcEzG1dO9zIa1Mp32J+zz -# W3P7suJfjw62s3hDOLk+6lMQOR04x+2o17G3LceLkkxJm41ErdiTjAmdClen9yl6 -# HgMpGS4okjFCJX+CpOFX7gBA3PVxQWubisAQbL5HgTFBtQNEzcCdh1GYw/6nzzNN -# t+0GQnnobBddfOAiqkzvItqXjvGyK1QwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAFU9eSpdxs0a06JFIuGFHIj/I+36ggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxRIiowIhgPMjAyNTA4MjEwNDQyMThaGA8yMDI1MDgyMjA0NDIxOFowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FEiKgIBADAHAgEAAgIJMzAHAgEAAgIS5TAK -# AgUA7FJzqgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQAnRU6c/CwB4LJz -# vEucq5Q3iW1rouq1E+CzOW11i/XkDS/b3BxgJW8XKjHI0P/d7f8b0CcShThov5GW -# vB4VIklfrOAXFIascQi6kV6AJiCWjCBogR85HNeFvPi7VexUKL6gBht/bCNZlZ4r -# NCECe3EkVBgPOyYT6LbjqcnZ8eAaVBFNu7KNzJE+RvX4NmydfEn5N7nD2sB3PzQh -# KPE/8TfuIt+7OD8yJFPKu5cFW9DzI/R+1uBaFdeS0PC5vCIs3CgheZWfkJMDraxG -# n5gX8LjGB0t4C+879vohHazJKwTkABUQRkGViUakILC0VQ+lR+3hazBKUKc+g931 -# ILC2Cnm3MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH2gy8malRdIsEAAQAAAfYwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgqxtSOMXKjqgk -# Mt7onr8U6vP7HVBapEvY+JqqVEXuREwwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCArYUzxlF6m5USLS4f8NXL/8aoNEVdsCZRmF+LlQjG2ojCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9oMvJmpUXSLBAAEAAAH2 -# MCIEIE6Qz7707wQy8wDkv5hauUent2Es6/wVb2s77V5v5gSlMA0GCSqGSIb3DQEB -# CwUABIICAFjcTcVsLyH5exuxOorg50Xf1PP2xrbxHSmozCeHPMOAQ+Wj0C2tOYLv -# AJ5WbKs3vp/GgP8ho9Dlghh0kpAdfJbYu8hqe2ZC+Rc0+fKvOmlSo4L7pcnzOhY1 -# IGWD4xpBJdT7fUfRxRCgkd9ERD7N3LQ+ZYQ1bn5nRtTzOWdE82foui0VAzNriKns -# ygmgWa8Tdo0u0EDQh3sEL1MVOhwc45PHZ3Zza83rn9atYAoYJLHqHkZuT173tIco -# 2lOSEcQd/1Ze1a27SN8k7pUvUKZEd+bISK7YTlfJ4TbWFbvVOPDP3jwJuVyOZwne -# TxOH0g0J/iPgFYfdT0poDegfU5KDGp53WKV8tM22wKpdvzy+J1Mmae75FFTBl0b2 -# C3rFcuvrMN9UY/E/J4aW+oitujk2LE+/sHnm8cBn1gjrJ1oY0yZvj8bnbcd+xv17 -# IgD8XYXITf4npyOAff56JryuRGRy7JTD/8HvkxnE1GfyvzdL8mLGTu98V12XCxaL -# A5z8INEyaHDKQGD2euQ9lnni41gwFSQCigt08WRmjrxUFGN65jB+kR+zkKAXkrjs -# ucVArLCnVB3/33rrTDIzMNw6yiMcpkhrtp7XYJQTX9P6BjRlK7CL2kMhGphRaNcw -# Og+0/96xESZjUvMnm4fmB6EYGKbIPGkTGopohz2ScvM63+AUmlFb -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 b/Modules/MicrosoftTeams/7.3.1/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 deleted file mode 100644 index 82876039dc27..000000000000 --- a/Modules/MicrosoftTeams/7.3.1/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 +++ /dev/null @@ -1,256 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = $PSScriptRoot - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } -# endregion - -# SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBinYxDco4Ms/jt -# y2SUOAGGFlsJymQ7B0Ay6+tcGLbG9KCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIATtakQutmXgLMF/GbL8NirD -# QVtbkIOFqy28LZj0qbtlMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAEE7/5jFmywjDmb31p99lQvE0vqPQzJeibzF2gNfh+wHBTOyfqxNaMA4l -# l5m2XUsyc1aOSeXGY6Eq4CVLxdtgqSxX5cCoVqpdGRPtdqRg6LoCNFvNKtBctOVY -# oTbWhOK1hWza3QCMsr1E6/ZC0SIiWhVU/ekrTN+uCP5HHbAsXrYVqz/AeCmr0dlp -# 6dTOzsgvm+oWnz4Ybx6w2ydjMVSZWwwXH+ajtyehBCGJG4MLzVpVsXeGZyjSK5xK -# mtLuonrzO7vP9Na7bwdBjq7U8samMiKCQ+5OVsQZugf35r7bWtL6o1qJL+0r4K/K -# lyfI1KXrXNzj4cVYs8gMNHtn5eNeMKGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAozekfEXuQvJ6w2B8Ehs61wtpFC7lCmTKF1/jSiQxWrAIGaKOrl8pL -# GBMyMDI1MDgyMTA2NTIwMC44MjNaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtD1MH3yAHWHNVslC+CBT -# j/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BOJUiYg7fDJ2AxGVGyovUt -# gGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONWy6lOyGZwZpxfV2EX4qAh -# 6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2ps8Nc1xr41N8Qi3KVJLY -# X0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2KDJ2sQRFFF/egCxKgogd -# F3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN8hiMc8Z47RRJuIWCOeyI -# J1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57ITXsD9DPOob8tjtsefPc -# QJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5DHM4ovCmD3lifgYnzjOry -# 4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby44kGVK8MzY9s32Dy1THn -# Jg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRVUx2G/0Tr7Dk3fpCU8u+5 -# olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1HvNIBpSNNuTBQk7FBvu+ -# Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSJ7aO6nJXJ -# I9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAZiAJgFbkf7jf -# hx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG2CcdoXaq7VgpVkNf1uvI -# hrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0ktH+EkEuGXs9DBLyt71iut -# Vkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2q5TjmrgEKyPe3TApAio8 -# cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/uizP1NuHSxF/V1ks/2tCEo -# riicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+Ud9Va3Iw9Bs4ccrkgBjLt -# g3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y6Si3AaNINt/pOMKU6l4A -# W0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qIVBZJ2XQpnhEuRbh+Agpm -# Rn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhncFetJ0ZK36wxAa3FiPgBe -# bRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B0s8RiFBMf/W7+O7EPZ+w -# MH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojzuCEahSAcq86yjwQeTPN9 -# YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxQzNkwIhgPMjAyNTA4MjAyMjM4MTdaGA8yMDI1MDgyMTIyMzgxN1owdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FDM2QIBADAHAgEAAgIjvDAHAgEAAgITBjAK -# AgUA7FIeWQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQCqb0hAWw+vOWh0 -# a8c8xk/NNK98kT8/IMxVvl1u+B1cU9BupbJbR4wYaurGJOQFACl6hm1tnvoTYuVt -# 1cIXS8UVQXDkxszPQWge4gs+ucPlwL2MOtl41HkveYJ61/h3J7ACxT6K5OCZtUFE -# YMhSebORyohHZOhDaFbWX85VFOulLsO6vE/ULhiXFF0jW6Rot6ZmQUFNVDE/yA5D -# gIF04iPEATpq22Y56RjfsHet8Sp5v5ulaHzGdBKYKwxCghFUt2miUxCMBlyYtzdb -# pliPiVydVU/sNb5ovmsAL4ulKrYCjHT+x0t05o/5RVEFGtu4mXWpUVowj8bzE11R -# Wy9kV2R1MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg6aSswoIGdehx -# xjszi/b/x+r60Y+97qrMRcheBXXDOucwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEAAAH5 -# MCIEIAVHL/0uz3DzAN+F1sUiBfZmS1OlMqsCVswI135feVeBMA0GCSqGSIb3DQEB -# CwUABIICAHm5UGR8zNw9YSMBCqzM1MxmlIpNa6fgdji9JXVjdie/Y93OISXXM5A7 -# hASWvX8Jbn06peEH+iMblyQ9xqo+3VVfysdmoLioEuyelf7VHzdJtNdu3jOE9JJg -# W4M4vQel2PrsGU0XTN26g4Inojo4AwvPn1ejLyP0PJ/QdHbf8uLnhDwk8FV/m8tK -# 51YuZbkSzaLQmjFn2ZvDLq/c7n7LpPSkSn84FKxPnXwbwCh88l5bLGOG/drWBDjg -# 9fMfo6AYKnbJBoWsfURqSiyHyEyqwIIkXuYJbEOFcdx8/EHwCbUnjaFPQqpeINKP -# zTdxM04VFuvEZ+Hx+DfVNyXaknNrnqq1f1fN/60H+YKA/nw3m75cL05mF0jZqm/f -# rbxsr7dEkVKj+S+PLSjgkWEWBojWpBXRIdJg2bqltvzuYCPIq+5R/xJEHyE4h5KH -# zjJ1E5yYWVkUB1PLGucbKW9uUeIZF6nT3a/QTyOBvCBj0/6Alslrk5z0JmxQs7Zx -# m4E8cnQalJEEBJEyR3tFBAebWPOh3A6KuZA6exji2MaJncVmC9dErRqY5ePP45lL -# iCcJhpn8lw2x/R/GKps7+LmMnuZ35BSeN9tK8xUNqs8ZUTx3ZZgtRfQpbVhAuPoi -# VWATrTktqj8MubprHq+umnEYTyHMoo2saOheTvGDQ9PJ519p5g3q -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll deleted file mode 100644 index d88f5a153559..000000000000 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll b/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll deleted file mode 100644 index cd1baa2b4974..000000000000 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll b/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll deleted file mode 100644 index ba4b9d5aa53e..000000000000 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml similarity index 55% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml index 9448b6e00653..d2ff920950f6 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml @@ -1,90 +1,64 @@ - - - - - TeamsRoutingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.TeamsRoutingConfiguration - - - - - - - - - Identity - - - - VoiceGatewayFqdn - - - - EnableMessagingGatewayProxy - - - - MessagingConversationRequestUrl - - - - MessagingConversationResponseUrl - - - - MgwRedirectUrlTemplate - - - - EnablePoollessTeamsOnlyUserFlighting - - - - EnablePoollessTeamsOnlyCallingFlighting - - - - EnablePoollessTeamsOnlyMessagingFlighting - - - - EnablePoollessTeamsOnlyConferencingFlighting - - - - EnablePoollessTeamsOnlyPresenceFlighting - - - - HybridEdgeFqdn - - - - DisableTeamsOnlyUsersConfCreateFlighting - - - - TenantDisabledForTeamsOnlyUsersConfCreate - - - - EnableTenantLevelPolicyCheck - - - - - - - - - - + + + + TeamSettings + + Microsoft.Teams.PowerShell.TeamsCmdlets.Model.TeamSettings + + + + + 36 + + + 18 + + + 11 + + + 9 + + + 18 + + + 18 + + + + + + + GroupId + + + DisplayName + + + Visibility + + + Archived + + + MailNickName + + + Description + + + + + + + + - - + + @@ -161,62 +135,62 @@ - - + + - - - - - - + + + + + + - - + + - - - + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -260,41 +234,41 @@ - - - + + + - - - + + + - - - - - - + + + + + + - + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/LICENSE.txt b/Modules/MicrosoftTeams/7.4.0/LICENSE.txt similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/LICENSE.txt rename to Modules/MicrosoftTeams/7.4.0/LICENSE.txt diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml similarity index 83% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml index e52d7d90d98e..a44cdaf81c63 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml and b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml differ diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml similarity index 95% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml index e20177a1a708..4c0e60bf87d4 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml @@ -1694,6 +1694,9 @@ + + + @@ -1737,6 +1740,9 @@ LanguageId + + MainlineAttendantAgentVoiceId + MainlineAttendantEnabled @@ -3899,9 +3905,6 @@ - - - @@ -4023,9 +4026,6 @@ ErrorReportId - - FlowId - GroupId @@ -4621,6 +4621,52 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAppointmentBookingFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAppointmentBookingFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + Description + + + Name + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAutoAttendantRequest @@ -4637,6 +4683,9 @@ + + + @@ -4668,6 +4717,9 @@ LanguageId + + MainlineAttendantAgentVoiceId + MainlineAttendantEnabled @@ -5470,21 +5522,34 @@ - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMainlineAttendantAppointmentBookingFlowRequest + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagRequest - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMainlineAttendantAppointmentBookingFlowRequest + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagRequest - - - - - - - + + + + + + + TagName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagsTemplateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagsTemplateRequest + + + @@ -5495,15 +5560,6 @@ - - ApiAuthenticationType - - - ApiDefinition - - - CallerAuthenticationMethod - Description @@ -5525,6 +5581,15 @@ + + + + + + + + + @@ -5544,6 +5609,15 @@ Action + + AgentTarget + + + AgentTargetTagTemplateId + + + AgentTargetType + Description @@ -8087,6 +8161,62 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagDtoModel + + + + + + + + + + + + TagName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagsTemplateDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagsTemplateDtoModel + + + + + + + + + + + + + + + + + + Description + + + Id + + + Name + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.KeyValuePairStringItem @@ -8723,15 +8853,21 @@ + + + - + + + + @@ -8745,15 +8881,21 @@ CallerAuthenticationMethod + + ConfigurationId + Description - Id + Identity Name + + Type + @@ -8775,11 +8917,14 @@ + + + - + @@ -8803,11 +8948,14 @@ CallerAuthenticationMethod + + ConfigurationId + Description - Id + Identity KnowledgeBase @@ -8833,11 +8981,14 @@ + + + - + @@ -8845,6 +8996,9 @@ + + + @@ -8852,11 +9006,14 @@ ApiAuthenticationType + + ConfigurationId + Description - Id + Identity KnowledgeBase @@ -8864,6 +9021,9 @@ Name + + Type + @@ -9619,6 +9779,15 @@ + + + + + + + + + @@ -9638,6 +9807,15 @@ Action + + AgentTarget + + + AgentTargetTagTemplateId + + + AgentTargetType + Description @@ -15046,6 +15224,70 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateAppointmentBookingFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateAppointmentBookingFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + ConfigurationId + + + Description + + + Identity + + + Name + + + Type + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCallQueueRequest @@ -15828,6 +16070,64 @@ + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateQuestionAnswerFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateQuestionAnswerFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ConfigurationId + + + Description + + + Identity + + + KnowledgeBase + + + Name + + + Type + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionFieldsRequest @@ -16833,219 +17133,219 @@ - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 new file mode 100644 index 000000000000..9c7bb88202e0 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 @@ -0,0 +1,248 @@ +@{ + GUID = '82b0bf19-c5cd-4c30-8db4-b458a4b84495' + RootModule = './Microsoft.Teams.ConfigAPI.Cmdlets.psm1' + ModuleVersion = '8.0925.3' + CompatiblePSEditions = 'Core', 'Desktop' + Author="Microsoft Corporation" + CompanyName="Microsoft Corporation" + Copyright="Copyright (c) Microsoft Corporation. All rights reserved." + Description="Microsoft Teams Configuration PowerShell module" + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + FormatsToProcess = @( + './Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml', + './Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml', + './SfbRpsModule.format.ps1xml') + CmdletsToExport = '*' + FunctionsToExport = '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + # For dev test set Prerelease to preview. This will ensure devtest module get all preview ECS features. + Prerelease = 'preview' + Tags = '' + LicenseUri = '' + ProjectUri = '' + ReleaseNotes = '' + } + } +} + +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBktHhsDTXfF+ev +# CEOifc2ZOGc/dSGpB/zVLNO52F9TmKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPut +# cUIVxIBB0ImJ9vNQxSoMsyFmk7rGJjFLPFygEQ4fMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAsxdF6ENPMlJBY2pbMZwVrEjJbJIGoUXtTffs +# m5VHACdQcbJJtDlfJ8MZ53d5semg0/AHj917b4LWkILIhdFYVsZ3RuwM1aIFEzBw +# xrAM77PTv+cFXmVrYlif65+8R3tflJk2wyayruH4+qtkjjkMcW6OHQaEDWLpcwUW +# 6tk6ltgpusJebP2I9xWL5gG4oIn4XLS+FYDsizxXOTcGdaByLhMrdJxCSA003066 +# VEMapPs6sosMDnFWi37qHCbTdXYweq52x8zvOQINOclOxOucJhxoB/1BWI8ADhZ2 +# agohjS9bFJtBG6oic2iY8l+p8akRPQwHVQTrsGgmku1OFw3nSKGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCJwUibtIbzfPo/UBmxGxTeOcZrF+LqIi5L +# oeQGKL82VgIGaKOxdLnYGBMyMDI1MTAwMTA4MzMwMy4wNThaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo +# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# vLwhFxWlqA43olsE4PCegZ4mSfsH2YTSKEYv8Gn3362Bmaycdf5T3tQxpP3NWm62 +# YHUieIQXw+0u4qlay4AN3IonI+47Npi9fo52xdAXMX0pGrc0eqW8RWN3bfzXPKv0 +# 7O18i2HjDyLuywYyKA9FmWbePjahf9Mwd8QgygkPtwDrVQGLyOkyM3VTiHKqhGu9 +# BCGVRdHW9lmPMrrUlPWiYV9LVCB5VYd+AEUtdfqAdqlzVxA53EgxSqhp6JbfEKnT +# dcfP6T8Mir0HrwTTtV2h2yDBtjXbQIaqycKOb633GfRkn216LODBg37P/xwhodXT +# 81ZC2aHN7exEDmmbiWssjGvFJkli2g6dt01eShOiGmhbonr0qXXcBeqNb6QoF8jX +# /uDVtY9pvL4j8aEWS49hKUH0mzsCucIrwUS+x8MuT0uf7VXCFNFbiCUNRTofxJ3B +# 454eGJhL0fwUTRbgyCbpLgKMKDiCRub65DhaeDvUAAJT93KSCoeFCoklPavbgQya +# hGZDL/vWAVjX5b8Jzhly9gGCdK/qi6i+cxZ0S8x6B2yjPbZfdBVfH/NBp/1Ln7xb +# eOETAOn7OT9D3UGt0q+KiWgY42HnLjyhl1bAu5HfgryAO3DCaIdV2tjvkJay2qOn +# F7Dgj8a60KQT9QgfJfwXnr3ZKibYMjaUbCNIDnxz2ykCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRvznuJ9SU2g5l/5/b+5CBibbHF3TAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAiT4NUvO2lw+0dDMtsBuxmX2o3lVQqnQkuITAGIGCgI+sl7ZqZOTDd8Lq +# xsH4GWCPTztc3tr8AgBvsYIzWjFwioCjCQODq1oBMWNzEsKzckHxAzYo5Sze7OPk +# MA3DAxVq4SSR8y+TRC2GcOd0JReZ1lPlhlPl9XI+z8OgtOPmQnLLiP9qzpTHwFze +# +sbqSn8cekduMZdLyHJk3Niw3AnglU/WTzGsQAdch9SVV4LHifUnmwTf0i07iKtT +# lNkq3bx1iyWg7N7jGZABRWT2mX+YAVHlK27t9n+WtYbn6cOJNX6LsH8xPVBRYAIR +# VkWsMyEAdoP9dqfaZzwXGmjuVQ931NhzHjjG+Efw118DXjk3Vq3qUI1re34zMMTR +# zZZEw82FupF3viXNR3DVOlS9JH4x5emfINa1uuSac6F4CeJCD1GakfS7D5ayNsaZ +# 2e+sBUh62KVTlhEsQRHZRwCTxbix1Y4iJw+PDNLc0Hf19qX2XiX0u2SM9CWTTjsz +# 9SvCjIKSxCZFCNv/zpKIlsHx7hQNQHSMbKh0/wwn86uiIALEjazUszE0+X6rcObD +# fU4h/O/0vmbF3BMR+45rAZMAETJsRDPxHJCo/5XGhWdg/LoJ5XWBrODL44YNrN7F +# RnHEAAr06sflqZ8eeV3FuDKdP5h19WUnGWwO1H/ZjUzOoVGiV3gwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ +# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 +# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA +# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU +# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O +# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 +# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H +# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ +# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgFlZ2O/GRfAXYA5v3qpRwM4QCr0GSQZI0ycmuzAREOxgwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs +# tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /tCowns0IQsBAAEAAAH+MCIEIHl8bRCAEGD1nFgaXp67WN1I3z8m7ZUmowEzGTjb +# iSIqMA0GCSqGSIb3DQEBCwUABIICACKy7a3MJz+G2ukx3dDkAruMy/tF7Qgp7Xze +# fAp1nlXD5YHYePeCwWXd5Fke7/UtQhxW0xASRhCDMYmzhp3iHDj/OG87bvtUyi09 +# eVcw483MQttaqYkNQN/ICV9PBS/dmUPI/Kpi4iac1ADHTlt7COB21FGzVftfvotj +# UlveOmScT4sjAGLOcAbVZ1M5GolWEKQJ9J3GvtnMuoC1ZIupmw99AFaPmmuS9N62 +# mvaDOLnOqPi9FBg0cVS31kUNzNbePAU2dSuLLKyMy1auel/oSYFSiTPu7AVPm2hd +# 6DM98XJSfLVFIH6N1GBFGI6pmlstAw7+ZhRFRUwvJcKSTPyu9Xx2nsM7HQ3uPeGW +# D0VXVJAAj0vgBF/eUkadua5hUfRiSEzThlXyea7swcRZejZC4Lj9RW6D/q2y0bt9 +# E4h0e85IT2c5G7z3S9ZdmYsqZ9KebZoYd4UFCKQCrkP77v1JNu8oedia4hN0CiFW +# Cr2HB6eidHjjb++hXUzyUfggkmP3hFIbjw8rVojGABTveG5SiamGwwS5fUnwntah +# UOKilkF9PTI9IyppeXwTnCKnm95dbnO/eKQ0wrI+Fgq6v20GZcOOq8JtsExxrjmv +# V9JMkBOo+Gzky3qjiW7VYFAccQSG+x2emQ7yYeHccbWdMLpcZX5To3L9y6jgRu8c +# ZS80/H7S +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 new file mode 100644 index 000000000000..cf8c5fc5721f --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 @@ -0,0 +1,268 @@ +# region Generated + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance + + # Load the custom module + $customModulePath = Join-Path $PSScriptRoot './custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1' + if(Test-Path $customModulePath) { + $null = Import-Module -Name $customModulePath + } + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = Join-Path $PSScriptRoot './exports' + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + #Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } + + # Finalize initialization of this module + $instance.Init(); + Export-ModuleMember -Function $instance.FunctionsToExport.Split(",") + Write-Information "Loaded Module '$($instance.Name)'" +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA11zYyqhtEZno0 +# vnR835d32vg185cJKudkjxJ9lgIViKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/X +# KtNBJBHJGGbe7wFtIYIfMWxPHreyoYsrh/7+1ayVMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAjLRSPEgl+jV1neYu3nTNYAt12NPx9CSBS0in +# W3lTJ3li3JivLsglZyHAkpOry8UCfN85dJPmCcuA1ZaTOCb+tWpbGX391ZQki5mu +# m4278BFouVx3+kiDDClF4PoDwkUT80GSCUnkbLw4DeTuY4GdiLb+0sTv9RMcKPAn +# gdirrxrAsuUOqgJHrIxoQMQQd4xkF3Zwjdx78hYDd6aX0d1aPjlRTdEd/Op4GXN5 +# f0ogHVMc6dBNMAH1Mf7U7pDK4OfAB59j9OWRo96m9CwFfJBxVqtEr4VDq/2xQgPD +# 9eMyf6nIc/MQ9p6gQDaJbVyUbotuRcofvthfqaw+yx7cqLav+6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBtQ25Wdua/9MRhw3iNu1aZ/OELMsRHLdxZ +# y8rLeBbzfAIGaKOvjL6AGBMyMDI1MTAwMTA4MzMwMi4zMDNaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgn933r4y0jU2arKizHfLHMs2a9X1exP9Cl7jLD/ABcBAwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAB+4x6ZA5QY+bna8YicpD0DzAulLDQnL +# Hb4OxW/6OyHwQyt4vSzjsPVDcItAdm/hdII9pmhyz7jqBSMbkj1WR5K3YXKE0aUf +# V9AX4DzXE0Ea1vgwmLPTAwbF1+18An3px43SmkA3GQU9bU+XFQEreW5O0LdYHYnM +# MFk0tqMk0WU79Hc2976GrAOhNvcgrj2Rt89BE149XuOmyYLQmezqGpeH+opJXOrt +# 1SnW7LX9hl22GKO4aMsqRk/vWh+2zZZ5Htlv8uHj/Adc1VFTY9CI2FX2bQ7NPD66 +# dbtAKNPWH+OxO34MMFyXPHAMwvUTMz7cWY+t7sYf078aww/v87Du0Gd3p60fIoDF +# 5J/8L++LdHOWhGjUS6hrvqOlMxXToj/F8Yv4bqllkDUjLHTY+1MYECDnzfLzVjEe +# Bvnm7oKM5cBMeSIGg/9yJOOhbd8UdQN0D3QAfTNWeFg6CPEh1uCRj4+rv3wwTRlh +# J7H5PugpLfO2z590YxbAd4rzHQI91jZFWt+Pbz/haTCb17KbdCxKPYvg47HfZtJS +# z5/CgEfdcMRLTR8mTPHotQft0P41P9/17d9xI1hAAuqywhPEmN64ePMfRmRcISf/ +# 6NMnb7aXJuHLsdDkggrs74QqE+CbY/0tsdGUX1o7w7T4VyxYguINJy/OcMTweJ05 +# W4s9oCZxKCr3 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml new file mode 100644 index 000000000000..3599bf890d9d --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml @@ -0,0 +1,251 @@ + + + + + OnlineDialinConferencingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.OnlineDialinConferencingPolicy + + + + + + + + + Identity + + + + AllowService + + + + Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml similarity index 52% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml index 8416a026db31..fad03a18d6b6 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml @@ -73,7 +73,7 @@ - + @@ -148,7 +148,7 @@ - + @@ -161,131 +161,131 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml similarity index 75% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml index 269c20a2cabc..08e10ad35582 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml @@ -124,51 +124,51 @@ - - + + - - + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -212,40 +212,40 @@ - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml new file mode 100644 index 000000000000..6e9a622bf6bc --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml @@ -0,0 +1,307 @@ + + + + + TeamsMeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.TeamsMeetingConfiguration + + + + + + + + + Identity + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + DisableAnonymousJoin + + + + DisableAppInteractionForAnonymousUsers + + + + EnableQoS + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientMediaPortRangeEnabled + + + + LimitPresenterRolePermissions + + + + FeedbackSurveyForAnonymousUsers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml new file mode 100644 index 000000000000..ef3228e9efb1 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml @@ -0,0 +1,248 @@ + + + + + TeamsMigrationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.TeamsMigrationConfiguration + + + + + + + + + Identity + + + + EnableLegacyClientInterop + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml new file mode 100644 index 000000000000..600c43210093 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsMultiTenantOrganizationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.TeamsMultiTenantOrganizationConfiguration + + + + + + + + + Identity + + + + CopilotFromHomeTenant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml similarity index 60% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml index b435d028964d..36f60c0bfc9e 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml @@ -2,9 +2,9 @@ - TeamsMeetingConfigurationView + TeamsRoutingConfigurationView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.TeamsMeetingConfiguration + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.TeamsRoutingConfiguration @@ -16,68 +16,60 @@ Identity - - LogoURL + + VoiceGatewayFqdn - - LegalURL + + EnableMessagingGatewayProxy - - HelpURL + + MessagingConversationRequestUrl - - CustomFooterText + + MessagingConversationResponseUrl - - DisableAnonymousJoin + + MgwRedirectUrlTemplate - - DisableAppInteractionForAnonymousUsers + + EnablePoollessTeamsOnlyUserFlighting - - EnableQoS + + EnablePoollessTeamsOnlyCallingFlighting - - ClientAudioPort + + EnablePoollessTeamsOnlyMessagingFlighting - - ClientAudioPortRange + + EnablePoollessTeamsOnlyConferencingFlighting - - ClientVideoPort + + EnablePoollessTeamsOnlyPresenceFlighting - - ClientVideoPortRange + + HybridEdgeFqdn - - ClientAppSharingPort + + DisableTeamsOnlyUsersConfCreateFlighting - - ClientAppSharingPortRange + + TenantDisabledForTeamsOnlyUsersConfCreate - - ClientMediaPortRangeEnabled - - - - LimitPresenterRolePermissions - - - - FeedbackSurveyForAnonymousUsers + + EnableTenantLevelPolicyCheck @@ -89,10 +81,10 @@ - + - - + + @@ -164,67 +156,67 @@ - + - - + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -264,45 +256,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml similarity index 67% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml index 11f0fd0c1857..234bed9e33a6 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml @@ -2,9 +2,9 @@ - TeamsAIPolicyView + TeamsSipDevicesConfigurationView - Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.TeamsSipDevicesConfiguration @@ -16,20 +16,8 @@ Identity - - Description - - - - EnrollFace - - - - EnrollVoice - - - - SpeakerAttributionForBYOD + + BulkSignIn @@ -43,8 +31,8 @@ - - + + @@ -121,62 +109,62 @@ - - + + - - - - - - + + + + + + - - + + - - - + + + - - + + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -219,41 +207,41 @@ - - - + + + - - - + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml similarity index 75% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml index a5cc55128c61..94f3e5482809 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml @@ -2,9 +2,9 @@ - TeamsWorkLocationDetectionPolicyView + TenantConfigurationView - Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.TeamsWorkLocationDetectionPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantConfiguration @@ -16,8 +16,58 @@ Identity - - EnableWorkLocationDetection + + MaxAllowedDomains + + + + MaxBlockedDomains + + + + + + + + TenantLicensingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantLicensingConfiguration + + + + + + + + + Identity + + + + Status + + + + + + + + TenantWebServiceConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantWebServiceConfiguration + + + + + + + + + Identity + + + + CertificateValidityPeriodInHours @@ -31,8 +81,8 @@ - - + + @@ -109,19 +159,19 @@ - - + + - - - - - - + + + + + + - - + + @@ -213,36 +263,36 @@ - - - + + + - - - - - - + + + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml new file mode 100644 index 000000000000..0b8baea0d378 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml @@ -0,0 +1,252 @@ + + + + + OnlineVoicemailValidationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration + + + + + + + + + Identity + + + + AudioFileValidationEnabled + + + + AudioFileValidationUri + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml index 6d1a411e6f0c..7aed5a7029b5 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml @@ -7539,51 +7539,51 @@ - - + + - - + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -7627,40 +7627,40 @@ - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 similarity index 82% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 index f7f7d7088f9a..47d429e8c11d 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 @@ -361,7 +361,7 @@ PrivateData = @{} # DefaultCommandPrefix = '' } # SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDDXuHz1JaXPYkJ # QDhNbRvXPHHPibt4v/Y646nlvU08sqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z @@ -436,7 +436,7 @@ PrivateData = @{} # XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA # 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt # Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp # Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB @@ -449,54 +449,54 @@ PrivateData = @{} # oWDdRwxGtEnzUVm6AVKrJzy2dpE6j6gh+xfZfArdBH40PwwSu4nx4mNCLaiVA9KI # UgjvhgPlBCC73fkpD+5HyYncGISj7cjFVw4rfUcVJyGUj1HkwTZ6QJHHUdS2rjaG # 6OJpTMS2uVr/p9IxF33VpdFE8jGpTicuXUgShEqdDy0S0cmgVu3iGfxcYddbc0Gy -# DBcPBtTYmPXYAhQD81DlfcEK7KIogqGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq +# DBcPBtTYmPXYAhQD81DlfcEK7KIogqGCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC +# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq # hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBhv5RIaqJJyUFCk1NBe+Z7LNL5oc9PS5qo577DdQkVNwIGaKR/fROO -# GBMyMDI1MDgyMTA2NTExMS45NDVaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV +# AwQCAQUABCBhv5RIaqJJyUFCk1NBe+Z7LNL5oc9PS5qo577DdQkVNwIGaKOvjL6J +# GBMyMDI1MTAwMTA4MzMwMi40ODZaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl # bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1OTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9BdGhcDLPznlAAEAAAH0MA0G +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G # CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzA1OVoXDTI1MTAyMjE4MzA1OVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD +# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjU5MUEt +# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt # MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApwhOE6bQgC9qq4jJGX2A -# 1yoObfk0qetQ8kkj+5m37WBxDlsZ5oJnjfzHspqPiOEVzZ2y2ygGgNZ3/xdZQN7f -# 9A1Wp1Adh5qHXZZh3SBX8ABuc69Tb3cJ5KCZcXDsufwmXeCj81EzJEIZquVdV8ST -# lQueB/b1MIYt5RKis3uwzdlfSl0ckHbGzoO91YTKg6IExqKYojGreCopnIKxOvkr -# 5VZsj2f95Bb1LGEvuhBIm/C7JysvJvBZWNtrspzyXVnuo+kDEyZwpkphsR8Zvdi+ -# s/pQiofmdbW1UqzWlqXQVgoYXbaYkEyaSh/heBtwj1tue+LcuOcHAPgbwZvQLksK -# aK46oktregOR4e0icsGiAWR9IL+ny4mlCUNA84F7GEEWOEvibig7wsrTa6ZbzuMs -# yTi2Az4qPV3QRkFgxSbp4R4OEKnin8Jz4XLI1wXhBhIpMGfA3BT850nqamzSiD5L -# 5px+VtfCi0MJTS2LDF1PaVZwlyVZIVjVHK8oh2HYG9T26FjR9/I85i5ExxmhHpxM -# 2Z+UhJeZA6Lz452m/+xrA4xrdYas5cm7FUhy24rPLVH+Fy+ZywHAp9c9oWTrtjfI -# KqLIvYtgJc41Q8WxbZPR7B1uft8BFsvz2dOSLkxPDLcXWy16ANy73v0ipCxAwUEC -# 9hssi0LdB8ThiNf/4A+RZ8sCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBQrdGWhCtEs -# Pid1LJzsTaLTKQbfmzAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf +# 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/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA3cHSDxJKUDsg -# acIfRX60ugODShsBqwtEURUbUXeDmYYSa5oFj34RujW3gOeCt/ObDO45vfpnYG5O -# S5YowwsFw19giCI6JV+ccG/qqM08nxASbzwWtqtorzQiJh9upsE4TVZeKYXmbyx7 -# WN9tdbVIrCelVj7P6ifMHTSLt6BmyoS2xlC2cfgKPPA13vS3euqUl6zwe7GAhjfj -# NXjKlE4SNWJvdqgrv0GURKjqmamNvhmSJane6TYzpdDCegq8adlGH85I1EWKmfER -# b1lzKy5OMO2e9IkAlvydpUun0C3sNEtp0ehliT0Sraq8jcYVDH4A2C/MbLBIwikj -# wiFGQ4SlFLT2Tgb4GvvpcWVzBxwDo9IRBwpzngbyzbhh95UVOrQL2rbWHrHDSE3d -# gdL2yuaHRgY7HYYLs5Lts30wU9Ouh8N54RUta6GFZFx5A4uITgyJcVdWVaN0qjs0 -# eEjwEyNUv0cRLuHWJBejkMe3qRAhvCjnhro7DGRWaIldyfzZqln6FsnLQ3bl+ZvV -# JWTYJuL+IZLI2Si3IrIRfjccn29X2BX/vz2KcYubIjK6XfYvrZQN4XKbnvSqBNAw -# IPY2xJeB4o9PDEFI2rcPaLUyz5IV7JP3JRpgg3xsUqvFHlSG6uMIWjwH0GQIIwrC -# 2zRy+lNZsOKnruyyHMQTP7jy5U92qEEwggdxMIIFWaADAgECAhMzAAAAFcXna54C +# 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 @@ -536,44 +536,44 @@ PrivateData = @{} # VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC # onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU # 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV +# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl # bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo1OTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAv+LZ/Vg0s17Xek4iG9R9c/7+AI6ggYMw +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw # gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD # VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxQ+BEwIhgPMjAyNTA4MjEwMTQyNDFaGA8yMDI1MDgyMjAxNDI0MVowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FD4EQIBADAHAgEAAgICcjAHAgEAAgIUITAK -# AgUA7FJJkQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQA/f4gCTtLkTGOE -# dRr/m3lUk+BD4wn1ej7sduJRuF4sTyPl3ffoDz8yiv+s3PGO1CTNoU3MOI65RnaV -# FHcvISfMi2hYq4lmS4/Xju8BhytKpTSuGp3ItVk5beTIjkhMcFfrWqRpQ1eMiRFK -# h+wz5ogvdUEw+HRgoTrGyH4LFWkS87gUx682l9Td7nqF2vS/TTOJTyJsN38jYJQz -# 9xIYUZueFZprHkdF94aEaUmBV2LnZqhWa5Rv9d64IHPuLP51RDUXFQ+EZPq7GCyZ -# VA0kU3OwSPihzVc/f6IZPziC7sSwcZ+E8Ukpu3WokI5uVlXzXhNawLFN1OKQWvjj -# +v6Sq1nNMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh -# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD -# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw -# MTACEzMAAAH0F0aFwMs/OeUAAQAAAfQwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg+Ckmp8ihB3bi -# KIXKGhrKNNRwnP+g+qIgRtmAWpU74QowgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCA/WMJ8biaT6njvkknB8Q7hSQIi8ys6vIBvZg60RBjWazCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9BdGhcDLPznlAAEAAAH0 -# MCIEII9NXJsWK5XZU0rAnUXFwtXFPJjgM/rlITpmGPpkk5cTMA0GCSqGSIb3DQEB -# CwUABIICADf96uEqjC04kEELyQ196X7cHEN673Q5+lfU7ufpxVVqfoF3gd5/upr1 -# o0Luk2r70oD+gmnl4gYBp5JpRlD1pzuRWeGvYt27fnRourXtbDhnsz4m0cmeQ0wV -# nFIdSI/Cr/QpEBSI+KpqSzeMZh/0TNKq4gi/stRhCAT1veP/3G8LkpQFCX1Fsicj -# 08/cdL6MY3hOIuXzVlFH8BDEQ0v8ECqPrhStzMpHp9a5TOXuTQPxUGpdHfgHT1Wb -# bVlRsWRNdyLRr/POxgm2wNUO8R+JU1JxBnCrUSELThumd1sNIMj0KRinEXCHV3ut -# ijsqahNT8lv8q930VkW82MmThM0qNh9W1XIq80UVQBq7lZyKVcg9pj1ynm2DOdL6 -# FsqBmba68IhJnZxPrEpQVV/WurIXDTZeY7llJw0ivmOdN13C3O1Sbb4h97WIAQaf -# osuC0TFp9hIOP4fx11cx2qLkh62Rw3lIW3hRtFVJHqo1qeOR6FvBHDxGUTuyvGqj -# 3I70iZJhurvSYnZt7xp8Sb7JXcHjzLItL92m21+t+eTsqQIaivXdEsse1zVjMeX7 -# KupHiO56nRxb+711T+/oEst2NPg0ufI8dzTL7VRXi1vPc9aHoZlg5LAexX8LCNKJ -# Q7dUzDr+ijVH0MxLNzXKk1bo247ooe66LY+kpIut4V2hxFS7vBIv +# AAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1MTAwMTIyMzgxN1owdzA9 +# BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEAAgInWgIB/zAHAgEAAgIS +# RDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow +# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQA0HygGCzYY +# EljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztwxcaklxi1JIufA2sghpxf +# O1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4Ih4F80N3N244nRix969BP +# nYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1cEzI5Hypvq/WH0ZzZF7BS +# Pu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoXxW6kWpyX51pxERwDxHfe +# YKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQOhyj/efZBnp2gn+TMH95Q +# 84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m +# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB +# IDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoG +# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgdt9mntJj +# RBBWyP56rXOrvH2NmW5HQz5/jRtbgga5YPUwgfoGCyqGSIb3DQEJEAIvMYHqMIHn +# MIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+ +# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT +# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEA +# AAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6OcpV+4JnCfMA0GCSqGSIb3 +# DQEBCwUABIICAFjI+sbIrIaktP9RfROriM1eSOHmoZ05V5eKCM48uBgqw1KEomYa +# d2cgcf0RVoKwNEl4X5t+DCIdzNFL30Hfw9WvPkcBuoiEisCL7edhiENRVEGYEqXg +# ACQj64vM7zwyP4IHiPJZmsp6QCzO2kMbzyBNUkR86nW76L/6D3WhAmdTkdZDaPSJ +# MR7ZSIQnM3UowGho2xJbb75nslbQuxFyafeePjS82nT5NIjXuMJZ/SBD95oXBG3U +# AGL8hMe5S5gL1+xlrQm88LBKj3GMUUNotJGHjpxbIeInCZDi63LPwp/AY/w2UOtN +# MbJXwZaiSglyHxzXD8fD3gewJElRz7oxwmw6n8hEEtyTwiC1npgOJIb03Ha1ziDs +# 0rKGbrWKPgs27vcI3QFnMhWVYx2M5SywMy5DBLGttnS0ZA0xfHHo9abRAw/oZ0X9 +# mCub1465EFSW6l5ZxqGRfIDW0p9U5jKLeF9x4OP7vtMeaRz5/FlpC7cHhrJmD3uh +# xH5CZCK8p5/Rb7kD1kzf166XIB5Xt0Jdd8x900lANSY7wDuSaVWk7iWTfrzzOLiD +# nnPBoOEsGJ1hEEZlPIisXL04A4mkVxzsx7Rod8J8IgDXw9Zl8yqOt2Xh8F5zbXfB +# Ch5Yj/mLAW1CeMCNaTZHUKfmj54J+lnHmC7vXXiuVz/sdC71uegGlaMF # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 new file mode 100644 index 000000000000..3e77a59da4b9 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 @@ -0,0 +1,536 @@ +# +# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams preview cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'New-CsTeamsAppSetupPolicy', + 'Get-CsTeamsAppSetupPolicy', + 'Remove-CsTeamsAppSetupPolicy', + 'Set-CsTeamsAppSetupPolicy', + 'Grant-CsTeamsAppSetupPolicy', + + 'New-CsTeamsAppPermissionPolicy', + 'Get-CsTeamsAppPermissionPolicy', + 'Remove-CsTeamsAppPermissionPolicy', + 'Set-CsTeamsAppPermissionPolicy', + 'Grant-CsTeamsAppPermissionPolicy', + + 'New-CsTeamsMessagingPolicy', + 'Get-CsTeamsMessagingPolicy', + 'Remove-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', + + 'New-CsTeamsChannelsPolicy', + 'Get-CsTeamsChannelsPolicy', + 'Remove-CsTeamsChannelsPolicy', + 'Set-CsTeamsChannelsPolicy', + + 'New-CsTeamsUpdateManagementPolicy', + 'Get-CsTeamsUpdateManagementPolicy', + 'Remove-CsTeamsUpdateManagementPolicy', + 'Set-CsTeamsUpdateManagementPolicy', + + 'Get-CsTeamsUpgradeConfiguration', + 'Set-CsTeamsUpgradeConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + + 'New-CsTeamsMeetingPolicy', + 'Get-CsTeamsMeetingPolicy', + 'Remove-CsTeamsMeetingPolicy', + 'Set-CsTeamsMeetingPolicy', + + 'New-CsOnlineVoicemailPolicy', + 'Get-CsOnlineVoicemailPolicy', + 'Remove-CsOnlineVoicemailPolicy', + 'Set-CsOnlineVoicemailPolicy', + + 'New-CsTeamsFeedbackPolicy', + 'Get-CsTeamsFeedbackPolicy', + 'Remove-CsTeamsFeedbackPolicy', + 'Set-CsTeamsFeedbackPolicy', + + 'New-CsTeamsMeetingBrandingPolicy', + 'Get-CsTeamsMeetingBrandingPolicy', + 'Remove-CsTeamsMeetingBrandingPolicy', + 'Set-CsTeamsMeetingBrandingPolicy', + 'Grant-CsTeamsMeetingBrandingPolicy' + + 'New-CsTeamsMeetingBrandingTheme', + 'New-CsTeamsMeetingBackgroundImage', + 'New-CsTeamsNdiAssuranceSlate', + + 'New-CsTeamsEmergencyCallingPolicy', + 'Get-CsTeamsEmergencyCallingPolicy', + 'Remove-CsTeamsEmergencyCallingPolicy', + 'Set-CsTeamsEmergencyCallingPolicy', + 'New-CsTeamsEmergencyCallingExtendedNotification', + + 'New-CsTeamsCallHoldPolicy', + 'Get-CsTeamsCallHoldPolicy', + 'Remove-CsTeamsCallHoldPolicy', + 'Set-CsTeamsCallHoldPolicy', + + 'Get-CsTeamsMessagingConfiguration', + 'Set-CsTeamsMessagingConfiguration', + + 'New-CsTeamsVoiceApplicationsPolicy', + 'Get-CsTeamsVoiceApplicationsPolicy', + 'Remove-CsTeamsVoiceApplicationsPolicy', + 'Set-CsTeamsVoiceApplicationsPolicy', + + "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", + "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", + "New-CsCustomPrompt", + "New-CsCustomPromptPackage", + + 'New-CsTeamsEventsPolicy', + 'Get-CsTeamsEventsPolicy', + 'Remove-CsTeamsEventsPolicy', + 'Set-CsTeamsEventsPolicy', + 'Grant-CsTeamsEventsPolicy', + + 'New-CsTeamsCallingPolicy', + 'Get-CsTeamsCallingPolicy', + 'Remove-CsTeamsCallingPolicy', + 'Set-CsTeamsCallingPolicy', + 'Grant-CsTeamsCallingPolicy', + + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + + 'New-CsExternalAccessPolicy', + 'Get-CsExternalAccessPolicy', + 'Remove-CsExternalAccessPolicy', + 'Set-CsExternalAccessPolicy', + 'Grant-CsExternalAccessPolicy', + + 'Get-CsTeamsMultiTenantOrganizationConfiguration', + 'Set-CsTeamsMultiTenantOrganizationConfiguration', + + 'New-CsTeamsHiddenMeetingTemplate', + + 'New-CsTeamsMeetingTemplatePermissionPolicy', + 'Get-CsTeamsMeetingTemplatePermissionPolicy', + 'Set-CsTeamsMeetingTemplatePermissionPolicy', + 'Remove-CsTeamsMeetingTemplatePermissionPolicy', + 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + + 'Get-CsTeamsMeetingTemplateConfiguration', + 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + + 'Get-CsTenantNetworkSite', + + 'New-CsTeamsShiftsPolicy', + 'Get-CsTeamsShiftsPolicy', + 'Remove-CsTeamsShiftsPolicy', + 'Set-CsTeamsShiftsPolicy', + 'Grant-CsTeamsShiftsPolicy', + + 'New-CsTeamsHiddenTemplate', + + 'New-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsTemplatePermissionPolicy', + 'Remove-CsTeamsTemplatePermissionPolicy', + 'Set-CsTeamsTemplatePermissionPolicy', + + 'New-CsTeamsVirtualAppointmentsPolicy', + 'Get-CsTeamsVirtualAppointmentsPolicy', + 'Remove-CsTeamsVirtualAppointmentsPolicy', + 'Set-CsTeamsVirtualAppointmentsPolicy', + 'Grant-CsTeamsVirtualAppointmentsPolicy', + + 'New-CsTeamsComplianceRecordingPolicy', + 'Get-CsTeamsComplianceRecordingPolicy', + 'Remove-CsTeamsComplianceRecordingPolicy', + 'Set-CsTeamsComplianceRecordingPolicy', + + 'New-CsTeamsComplianceRecordingApplication', + 'Get-CsTeamsComplianceRecordingApplication', + 'Remove-CsTeamsComplianceRecordingApplication', + 'Set-CsTeamsComplianceRecordingApplication', + + 'New-CsTeamsComplianceRecordingPairedApplication', + + 'New-CsTeamsSharedCallingRoutingPolicy', + 'Get-CsTeamsSharedCallingRoutingPolicy', + 'Remove-CsTeamsSharedCallingRoutingPolicy', + 'Set-CsTeamsSharedCallingRoutingPolicy', + 'Grant-CsTeamsSharedCallingRoutingPolicy', + + 'New-CsTeamsVdiPolicy', + 'Get-CsTeamsVdiPolicy', + 'Remove-CsTeamsVdiPolicy', + 'Set-CsTeamsVdiPolicy', + 'Grant-CsTeamsVdiPolicy', + + + 'Get-CsTeamsMeetingConfiguration', + 'Set-CsTeamsMeetingConfiguration', + + 'New-CsTeamsCustomBannerText', + 'Get-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', + 'Set-CsTeamsCustomBannerText', + + 'New-CsTeamsWorkLocationDetectionPolicy', + 'Get-CsTeamsWorkLocationDetectionPolicy', + 'Remove-CsTeamsWorkLocationDetectionPolicy', + 'Set-CsTeamsWorkLocationDetectionPolicy', + 'Grant-CsTeamsWorkLocationDetectionPolicy', + + 'New-CsTeamsMediaConnectivityPolicy', + 'Get-CsTeamsMediaConnectivityPolicy', + 'Remove-CsTeamsMediaConnectivityPolicy', + 'Set-CsTeamsMediaConnectivityPolicy', + 'Grant-CsTeamsMediaConnectivityPolicy', + + 'New-CsTeamsRecordingRollOutPolicy', + 'Get-CsTeamsRecordingRollOutPolicy', + 'Remove-CsTeamsRecordingRollOutPolicy', + 'Set-CsTeamsRecordingRollOutPolicy', + 'Grant-CsTeamsRecordingRollOutPolicy', + + 'New-CsTeamsFilesPolicy', + 'Get-CsTeamsFilesPolicy', + 'Remove-CsTeamsFilesPolicy', + 'Set-CsTeamsFilesPolicy', + 'Grant-CsTeamsFilesPolicy', + + 'Get-CsTeamsExternalAccessConfiguration', + 'Set-CsTeamsExternalAccessConfiguration', + + 'New-CsConversationRole', + 'Remove-CsConversationRole', + 'Get-CsConversationRole', + 'Set-CsConversationRole', + + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsAIPolicy', + 'Set-CsTeamsAIPolicy', + 'New-CsTeamsAIPolicy', + 'Remove-CsTeamsAIPolicy', + 'Grant-CsTeamsAIPolicy', + + 'Get-CsTeamsClientConfiguration', + 'Set-CsTeamsClientConfiguration' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDZT140sYjdx0xT +# /LXVDzxAIHBwkBc+dXfdw3U0HvLrt6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF51 +# 3pH+UdCT12R9jVwu74EHcpGG7d4aN3iDZEQNfgxdMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAH8BBNHdNNVbblxSN/8sHNWXySlnV3pbJtttx +# KRvxL5qNf3TKG03C0WvENi/BakEb8PHJ+RpprPLm5lP6tLN68DXwzifuLhRVM9Xi +# 9b3V+rac09dFPJV6X6e1CjhCKKMHscarPY/yH9dqFQfu28IDTDG5gW1xuTZTKgHx +# 0ubpBYhXGT78QKZsY9U/FG0gtqzWsaC9jPpL2V2xvboE4zwMcjqVb83MdOaBa/Hu +# vhAvvfvNEfPEpfhV7t4D14QAVuDtrftCMmlZ8l4Zh7bk6jpO9bsmJefXBTMex01z +# 3GUDadwSDgZBz5zZTIvy4pkWnlb6vUMlkB+AYgwreajt03Bv7aGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDXvW2jxcaTJb5RlYetEjiJ1+8nVX5pUDvc +# Lr4K3Oa2YQIGaKOvGf91GBMyMDI1MTAwMTA4MzQwOS43NzRaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgzEidHs2UZH6bSpXLsyaY+KDuM3lniHsStSWhmgMVPrcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICAJLdXgOEzv43WFXih4PbVrXDZ6C4bv/7+pq0 +# zIXavVhkfixoeCEFixh6cJ6osaLXO4ZLyaDRVX2/nzysxMCarwP9AF1KAt2tmUP/ +# Ldlmu/Z8nvfG9Rx+wPKuXMYtNLfb3Uv0VN8nLICMuaR/J9ebYtOJXrN811qaHNNg +# R9GqIncW1p85rSKmD5+P8zKHvELQB3G/mwX3Wu8yw5GVWbBF+LM5R0Sv/T2nsVsV +# DT3ociqn+UN+E17v2pqUZ9AThTWitba76pyZ2vnvafDEmsKsF7dvgAbeZqTZVYgx +# GAfGI9Lp9Llx29m5mwZkzACbc21LOoM0FTEyRaHjLVmpBi6CQdxKaWRubgIVMbdg +# 1Fs/rdXDdENwvgFt4VVoj/CF8K3vFLgj8SbrZbl63+XMmHFxFlWVgOZiP9HlXUfp +# JVYMtxqc531URNDT6YN43qGiySCL6ErRGoVdH78IcN+kzR0jouKgqaS+7QZMi8wx +# Xnh6twFH4J8smVILUuD9S21wlgCxwVMVcg3x3K6xmOHD3IzERO2yvZoxnBgRzhlr +# wlD3jKON6cqYj4wvbIM3SXjfCNlH1zTgclv6lTDoouuOvxotZH3BJw50Yu5JxKud +# PJZQVglDBV2DefNdegyaas82XCxe1+ZWn1TBuEZM4NLxhAchdZL0RXPe8EV4mrfQ +# hFJJFhX4 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 similarity index 85% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 index e5e108228558..fbe62dc7b448 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 @@ -431,50 +431,50 @@ PrivateData = @{} # BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE # WQoDATAxMA0GCWCGSAFlAwQCAQUABCAQvjfmXHoXih20jvFe4frfvyrouhf6Jlvd -# 2PKY5BI02QIGaKOrl8SCGBMyMDI1MDgyMTA2NTExMy44NDZaMASAAgH0oIHZpIHW +# 2PKY5BI02QIGaKOvGfVpGBMyMDI1MTAwMTA4MzMwMS4zNTlaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+R9n -# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # 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 +# 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 -# 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 +# 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 @@ -518,41 +518,41 @@ PrivateData = @{} # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK -# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOxQzNkwIhgPMjAyNTA4MjAyMjM4MTdaGA8yMDI1 -# MDgyMTIyMzgxN1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7FDM2QIBADAHAgEA -# AgIjvDAHAgEAAgITBjAKAgUA7FIeWQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor # BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQCqb0hAWw+vOWh0a8c8xk/NNK98kT8/IMxVvl1u+B1cU9BupbJbR4wYaurG -# JOQFACl6hm1tnvoTYuVt1cIXS8UVQXDkxszPQWge4gs+ucPlwL2MOtl41HkveYJ6 -# 1/h3J7ACxT6K5OCZtUFEYMhSebORyohHZOhDaFbWX85VFOulLsO6vE/ULhiXFF0j -# W6Rot6ZmQUFNVDE/yA5DgIF04iPEATpq22Y56RjfsHet8Sp5v5ulaHzGdBKYKwxC -# ghFUt2miUxCMBlyYtzdbpliPiVydVU/sNb5ovmsAL4ulKrYCjHT+x0t05o/5RVEF -# Gtu4mXWpUVowj8bzE11RWy9kV2R1MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUD +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD # BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgLQQvy1mLxxjV4RDaknHGI9TdKKpSXgprbThLm1gfABcwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5S -# bGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# CQQxIgQgdWG1vHEKIQ4zqVCTD9rZnRpWW0Uz9SF3S+E0nAZFbYcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# +R9njXWrpPGxAAEAAAH5MCIEIAVHL/0uz3DzAN+F1sUiBfZmS1OlMqsCVswI135f -# eVeBMA0GCSqGSIb3DQEBCwUABIICAK5FuGHjq2dAR6iJ2oT/a3aRbz/HFjCKIegT -# 4Ri2dt+D/6+MWbvJmHKUm3e9ZJvwFWU9rAm5iMvWCsZy228VaouO1ruN5ZwrIcK8 -# mmC3Nou6ftJg+bSyhJBjF+toLyJhT1Z0HeZYUTYgP8gvCxUL+m9AEFkGL+HzMT+m -# rqCVXS0DMtqusyzfpR80oVphTEJYea3IyoyELOerBjMc1g+Bw2qGOnxXQ3LIAWkA -# oHH2qAJcYC+wIWHZlbukeK5OKwNwNOgyK360ppTmggnUSfZKiZnYTiGcOPX1qT4T -# CCsRW/cjq4/wbzTnWcUKP/YAGpMYgBwKgMWbADfLfFyURbfqCrr8MSwf6qiULN6M -# cX5O+9C17KN2hWvYWmWJbMXAcSQpPMxeZXq91USXcUnvlEFJIainp2Bem+WbWnz9 -# qE46NdEdTQaj7ZoWJKUk9SNqs7OZ/rzbH7uFdf1a3B6plh3m88PXt7wL/h18br/n -# o0pC+NlNpLJ6JO2fDww2dLjTlu9f+BXReYZUYh4P+0/2zuwcrkXVEvfo8+wGe/bU -# GN5PwStz0buIhJFwQvqSu6qbjhzk4hUIdZdkWBk91YtyXa02yl8GNw9DdyZYcryp -# YpHeOkuQXhUmr4kqGZapv0NzXFiG3dzaXpsBvHq6UKC9TDq/KOwJKFaPbuEJ+xdV -# 8tiiWVVn +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICABZUtPgsW6Wzyq0zeb/hewt+lvx8TBzOcC7C +# nVLNiQTvgTI9rZqlvpBx5x2bbLCNKRb63gZKYIhb7HL4TVKWWPh9f3nKz+ulre3x +# l/OYdQHHdUkq/WmJHYRXs+iC1SbEmgDqXrTjUhYtWhXjYPFBKSYrWMwYUYNJNDfe +# evI/th9PiCwnLG3ltlqjH41a1SD4aNfrf8p3ePn+BEEv+tDREyBSBgKMoBJqCUDt +# hZ/7kfzJ9jUkb4xYeRPpRLfo7taOUSSg5lTT1oA7ESxjmOFng/KBu5OaQ/N9nfZj +# 75ywiaJXWSTxRNEWpn3I7J/gvnTyyi+g0e872HEzA8Zdt6kz16D8gx3kfrEsBJ6w +# 9+o7fsTtmxPya60HbTFAPUhDeBZtNM18x7C3IEMV/W5Yihl7JitykWPE1BFMkmz8 +# Uw9WEccFKAUeUtfKJip70mnsyp3Hx7h49QHGh5WUFt/2psI5hDxoaEqpf2/hgmGH +# MB0+5r6GGJBQ8v+rO93ThSOwzEOL9pDCwa21abxhepL6jrvOtZohdnWumSxhAECx +# 4+a/ZDOKwUvY6wPyn2OGaLTgjHF6hUYWI9+Obeaq3XN7Ezodmtm8fxrAkDPYRUzx +# 74HU1RRPTk3Gjk0cFqbE6iR3ztC3S75czMXcoZhE92Q/XXNLAxCjNbBJQ9Gorr5c +# qhrkJiAV # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 new file mode 100644 index 000000000000..c47ea7790267 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 @@ -0,0 +1,238 @@ +$path = Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll' + +if (test-path $path) +{ + $null = Import-Module -Name $path +} +else +{ + if ($PSEdition -ne 'Desktop') + { + $null = Import-Module -Name (Join-Path $PSScriptRoot 'netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') + } + else + { + $null = Import-Module -Name (Join-Path $PSScriptRoot 'net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') + } +} + +gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.*.ps1xml') | % {Update-FormatData -PrependPath $_ } + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAkAcLpsaJGFDbZ +# eSS41J6zw7DVHNDwNlPCWsROSiOFqaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPfa +# nlNFBOVfSygxXiGchjDoSjX9DIEVGb2vyXmTS6s/MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAA176FYIkYhqlx8OEjQJlGLc49iKq7lbheDiw +# BF6cuLugHW6dZeXd8PnoCoVUeVie6XbbWcDWk8NqNu07BAVYBhp076g9NcSKi0lY +# fjmbTmyf4pjm4aslKLJ0fQHU8hdvosgtWgMMC5ND/eSBHnYjcURBrLrWa287QaWZ +# uDXJed63PFdNxtE4iSN6N/aJg0bSBR1VAnFrAuEVZoNP46lx8eBCnEc7LSVxdgzH +# UcNFvCa5SLy4PzPFk9NZbcBXhQYyUvyJlfLrwAVcX3BQZVfN6gid7fKBTvAUUw1M +# VvrZOofSkMD4F0cx3R8LKGYPUWutrRFz8CkFMa7lZEyaTkSGGKGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCWDnwCLYYGWnQyanINXSBz+tl6/PPaRbdX +# f5OKF3Q/IgIGaKSPMrGdGBMyMDI1MTAwMTA4MzMwMi4xMTFaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+8vL +# bDdn5TCVAAEAAAH7MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExM1oXDTI1MTAyMjE4MzExM1owgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# qMJWQeWAq4LwvSjYsjP0Uvhvm0j0aAOJiMLg0sLfxKoTXAdKD6oMuq5rF5oEiOxV +# +9ox0H95Q8fhoZq3x9lxguZyTOK4l2xtcgtJCtjXRllM2bTpjOg35RUrBy0cAloB +# U9GJBs7LBNrcbH6rBiOvqDQNicPRZwq16xyjMidU1J1AJuat9yLn7taifoD58blY +# EcBvkj5dH1la9zU846QDeOoRO6NcqHLsDx8/zVKZxP30mW6Y7RMsqtB8cGCgGwVV +# urOnaNLXs31qTRTyVHX8ppOdoSihCXeqebgJCRzG8zG/e/k0oaBjFFGl+8uFELwC +# yh4wK9Z5+azTzfa2GD4p6ihtskXs3lnW05UKfDJhAADt6viOc0Rk/c8zOiqzh0lK +# pf/eWUY2o/hvcDPZNgLaHvyfDqb8AWaKvO36iRZSXqhSw8SxJo0TCpsbCjmtx0Lp +# Hnqbb1UF7cq09kCcfWTDPcN12pbYLqck0bIIfPKbc7HnrkNQks/mSbVZTnDyT3O8 +# zF9q4DCfWesSr1akycDduGxCdKBvgtJh1YxDq1skTweYx5iAWXnB7KMyls3WQZbT +# ubTCLLt8Xn8t+slcKm5DkvobubmHSriuTA3wTyIy4FxamTKm0VDu9mWds8MtjUSJ +# VwNVVlBXaQ3ZMcVjijyVoUNVuBY9McwYcIQK62wQ20ECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRHVSGYUNQ3RwOl71zIAuUjIKg1KjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAwzoIKOY2dnUjfWuMiGoz/ovoc1e86VwWaZNFdgRmOoQuRe4nLdtZONtT +# HNk3Sj3nkyBszzxSbZEQ0DduyKHHI5P8V87jFttGnlR0wPP22FAebbvAbutkMMVQ +# MFzhVBWiWD0VAnu9x0fjifLKDAVXLwoun5rCFqwbasXFc7H/0DPiC+DBn3tUxefv +# cxUCys4+DC3s8CYp7WWXpZ8Wb/vdBhDliHmB7pWcmsB83uc4/P2GmAI3HMkOEu7f +# CaSYoQhouWOr07l/KM4TndylIirm8f2WwXQcFEzmUvISM6ludUwGlVNfTTJUq2bT +# DEd3tlDKtV9AUY3rrnFwHTwJryLtT4IFhvgBfND3mL1eeSakKf7xTII4Jyt15SXh +# Hd5oI/XGjSgykgJrWA57rGnAC7ru3/ZbFNCMK/Jj6X8X4L6mBOYa2NGKwH4A37YG +# DrecJ/qXXWUYvfLYqHGf8ThYl12Yg1rwSKpWLolA/B1eqBw4TRcvVY0IvNNi5sm+ +# //HJ9Aw6NJuR/uDR7X7vDXicpXMlRNgFMyADb8AFIvQPdHqcRpRorY+YUGlvzeJx +# /2gNYyezAokbrFhACsJ2BfyeLyCEo6AuwEHn511PKE8dK4JvlmLSoHj7VFR3NHDk +# 3zRkx0ExkmF8aOdpvoKhuwBCxoZ/JhbzSzrvZ74GVjKKIyt5FA0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUABHHn7NCGusZz +# 2RfVbyuwYwPykBWggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHEVEwIhgPMjAyNTEwMDEwMjMyNDlaGA8yMDI1 +# MTAwMjAyMzI0OVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcRUQIBADAKAgEA +# AgIC4QIB/zAHAgEAAgISTDAKAgUA7Ihi0QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQB2rJUBbV82zv/fG68I5fhMRRSkgirfFrnlWvW6RfzPd+5iYKdth6dU +# 6IOUUkXT8dO0qMuoHqkbT04FjLzmTDVMz/HkKyWOnfzbgSfBdr627tuQfCEGAwNV +# ucTR8DvaCruh9rBA7ZrkdmVxSbNWAKHET4DRUNE04kCzDtcJRlH+6DET6vv0aaWh +# 8jP2P7qVYhNnf2EbzfEphwGpR2qf12umLBqw3UuOLP409MRmZbnWF7ektopLFB0Q +# q2MmM3MvEuHDKHeP9zk2uDYd/JBwf4FNbMFJE/290pXYfcRhctqSoSE6hLmab8Cb +# xUvtPV6BaJ52RwxeSWsAM3GSZBGPrS0IMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgEiESkj19FIoUPhMunHleTDnL/vf3NQU3SuPeEOeclPQwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA52wKr/KCFlVNYiWsCLsB4qhjEYEP3xHqY +# qDu1SSTlGDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+8vLbDdn5TCVAAEAAAH7MCIEICnkwtMY6H2GmiCyEEz1OMgXS5ZXQyQ7h2mA +# fwdrbCjpMA0GCSqGSIb3DQEBCwUABIICAGxUpYVK6wtcpGfx4YQZn1mr+B3rb603 +# Bp7ZmQ2JsVccrBGW70H+iLguDhudJhAzfvvBujGippd+TP58jx3lQbLAQOag9lcR +# xhEeDHY6BC+IGXaJrzJX7iE5WXiZF1pn27sDPo7EyvR+2j/GyXaA6Dy59sCO2qXU +# VOAqOQruTAlJzr7ZisjEUzdg2FQ41M+iZetv5gPG44t6HgWaaUxECKIeUFZFQiP8 +# XXz0HaDTSiB1VrRRs4fnIA7N0UFBzQOZ/D5ko0+n0TXPoPcv7y/WadDfQ+RUymP8 +# AowHQmDmC8EBOUZs/F7pwFC1RnF6cEhI5/zutEbmEw05sGCm9zFBbxuuJepOMqLj +# SsCPTi+IvDf0M93qLoxCO6Zcj9V/d7T3c6MR3X3O8UM5nNjWjEjkwDeX//Fd1us8 +# M0XA2tlo3o6ssd9wUPJSIc/T5r+qPHtzgIUAbC7k8Fh+Q48X0bECTc5UzYyTs+2/ +# CqjLWJPA0vBsDPV2CkwRZtSC3aKWjNWxX7+3hTl2MV2DtfmJ/4aeKWNEXeE8PoFh +# ZGUF160rbdZOET9mz/A8VGzCXKs0kBuDlBGEFQGchzRchdP+VtC7VmF/1HHgomDo +# sNdGNYQJB2EPSWHG0CzHu/OxHmRn69yJhHfDBmFstm4lq78CeVDSiJ0vW4TJt1G8 +# JPbiUx/mCCDS +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml new file mode 100644 index 000000000000..4858d2a33c16 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml @@ -0,0 +1,260 @@ + + + + + TeamsAIPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy + + + + + + + + + Identity + + + + Description + + + + EnrollFace + + + + EnrollVoice + + + + SpeakerAttributionForBYOD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml new file mode 100644 index 000000000000..b9ec3ea42369 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml @@ -0,0 +1,252 @@ + + + + + TeamsAudioConferencingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.TeamsAudioConferencingPolicy + + + + + + + + + Identity + + + + MeetingInvitePhoneNumbers + + + + AllowTollFreeDialin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml similarity index 71% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml index 0e97dc450cf2..83440f7bcb43 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml @@ -29,7 +29,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -117,54 +117,54 @@ - - + + - + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -204,45 +204,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/GetTeamSettings.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml similarity index 75% rename from Modules/MicrosoftTeams/7.3.1/GetTeamSettings.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml index cfcfa7c466ac..c38cc9747d74 100644 --- a/Modules/MicrosoftTeams/7.3.1/GetTeamSettings.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml @@ -1,64 +1,38 @@ - - - - TeamSettings - - Microsoft.Teams.PowerShell.TeamsCmdlets.Model.TeamSettings - - - - - 36 - - - 18 - - - 11 - - - 9 - - - 18 - - - 18 - - - - - - - GroupId - - - DisplayName - - - Visibility - - - Archived - - - MailNickName - - - Description - - - - - - - - + + + + + TeamsMediaConnectivityPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.TeamsMediaConnectivityPolicy + + + + + + + + + Identity + + + + DirectConnection + + + + + + + + + + - - + + @@ -135,19 +109,19 @@ - - + + - - - - - - + + + + + + - - + + @@ -239,35 +213,35 @@ - - - - - - - - - - + + + + + + + + + + - - + + - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml new file mode 100644 index 000000000000..4ab7d366facd --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml @@ -0,0 +1,276 @@ + + + + + TeamsPersonalAttendantPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.TeamsPersonalAttendantPolicy + + + + + + + + + Identity + + + + PersonalAttendant + + + + CallScreening + + + + CalendarBookings + + + + InboundInternalCalls + + + + InboundFederatedCalls + + + + InboundPSTNCalls + + + + AutomaticTranscription + + + + AutomaticRecording + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml similarity index 65% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml index 4f75f7fbba6e..a2b5ce7c42be 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml @@ -2,9 +2,9 @@ - TeamsVirtualAppointmentsPolicyView + TeamsRecordingRollOutPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.TeamsRecordingRollOutPolicy @@ -16,8 +16,8 @@ Identity - - EnableSmsNotifications + + MeetingRecordingOwnership @@ -29,10 +29,10 @@ - + - - + + @@ -104,67 +104,67 @@ - + - - + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -204,45 +204,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml similarity index 65% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml index f59915307e4f..cd725d2167a6 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml @@ -2,9 +2,9 @@ - TeamsRecordingRollOutPolicyView + TeamsVirtualAppointmentsPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.TeamsRecordingRollOutPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy @@ -16,8 +16,8 @@ Identity - - MeetingRecordingOwnership + + EnableSmsNotifications @@ -29,10 +29,10 @@ - + - - + + @@ -104,67 +104,67 @@ - + - - + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -204,44 +204,44 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml similarity index 69% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml index 2888ef1cffe6..0931a82b11e9 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml @@ -2,9 +2,9 @@ - TeamsMigrationConfigurationView + TeamsWorkLocationDetectionPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.TeamsMigrationConfiguration + Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.TeamsWorkLocationDetectionPolicy @@ -16,8 +16,8 @@ Identity - - EnableLegacyClientInterop + + EnableWorkLocationDetection @@ -31,8 +31,8 @@ - - + + @@ -109,62 +109,62 @@ - - + + - - - - - - + + + + + + - - + + - - + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -208,40 +208,40 @@ - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/Az.Functions/4.2.0/Az.Functions.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 similarity index 55% rename from Modules/Az.Functions/4.2.0/Az.Functions.psd1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 index 2933edb4da3f..0d82e99848a1 100644 --- a/Modules/Az.Functions/4.2.0/Az.Functions.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 @@ -1,24 +1,23 @@ # -# Module manifest for module 'Az.Functions' +# Module manifest for module 'MicrosoftTeamsPolicyAdministration' # # Generated by: Microsoft Corporation # -# Generated on: 1/9/2025 +# Updated on: 1/31/2022 # @{ - # Script module or binary module file associated with this manifest. -RootModule = 'Az.Functions.psm1' +RootModule = './Microsoft.Teams.Policy.Administration.psm1' # Version number of this module. -ModuleVersion = '4.2.0' +ModuleVersion = '21.4.4' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' # ID used to uniquely identify this module -GUID = 'eafced71-8742-4a2c-5afd-13117428dd90' +GUID = '048c99d9-471a-4935-a810-542687c5f950' # Author of this module Author = 'Microsoft Corporation' @@ -30,153 +29,113 @@ CompanyName = 'Microsoft Corporation' Copyright = 'Microsoft Corporation. All rights reserved.' # Description of the functionality provided by this module -Description = 'Microsoft Azure PowerShell - Azure Functions service cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. - -For information on Azure Functions, please visit the following: https://learn.microsoft.com/azure/azure-functions/' +Description = 'Microsoft Teams cmdlets module for Policy Administration' -# Minimum version of the PowerShell engine required by this module +# Minimum version of the Windows PowerShell engine required by this module PowerShellVersion = '5.1' -# Name of the PowerShell host required by this module +# Name of the Windows PowerShell host required by this module # PowerShellHostName = '' -# Minimum version of the PowerShell host required by this module +# 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 = '' +CLRVersion = '4.0' # Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' +# ProcessorArchitecture = 'Amd64' # Modules that must be imported into the global environment prior to importing this module -RequiredModules = @() +# RequiredModules = @() # Assemblies that must be loaded prior to importing this module -RequiredAssemblies = 'Functions.Autorest/bin/Az.Functions.private.dll' +# RequiredAssemblies = @() # Script files (.ps1) that are run in the caller's environment prior to importing this module. -ScriptsToProcess = 'Functions.Autorest/custom/HelperFunctions.ps1' +# 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 = 'Functions.Autorest/custom/Functions.types.ps1xml' +# TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Functions.Autorest/Az.Functions.format.ps1xml', - 'Functions.Autorest/custom/Functions.format.ps1xml' +FormatsToProcess = @() # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('Functions.Autorest/Az.Functions.psm1') +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 = 'Get-AzFunctionApp', 'Get-AzFunctionAppAvailableLocation', - 'Get-AzFunctionAppPlan', 'Get-AzFunctionAppSetting', - 'New-AzFunctionApp', 'New-AzFunctionAppPlan', 'Remove-AzFunctionApp', - 'Remove-AzFunctionAppPlan', 'Remove-AzFunctionAppSetting', - 'Restart-AzFunctionApp', 'Start-AzFunctionApp', 'Stop-AzFunctionApp', - 'Update-AzFunctionApp', 'Update-AzFunctionAppPlan', - 'Update-AzFunctionAppSetting' +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 = @() +CmdletsToExport = '*' # Variables to export from this module -# VariablesToExport = @() +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 = @() +AliasesToExport = '*' # DSC resources to export from this module # DscResourcesToExport = @() # List of all modules packaged with this module -ModuleList = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.1'; }) +# ModuleList = @() # List of all files packaged with this module # FileList = @() # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Azure','ResourceManager','ARM','PSModule','Functions' - - # A URL to the license for this module. - LicenseUri = 'https://aka.ms/azps-license' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Azure/azure-powershell' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - ReleaseNotes = '* Upgraded nuget package to signed package.' - - # Prerelease string of this module - # Prerelease = '' - - # Flag to indicate whether the module requires explicit user acceptance for install/update/save - # RequireLicenseAcceptance = $false - - # External dependent modules of this module - # ExternalModuleDependencies = @() - - } # End of PSData hashtable - - } # End of PrivateData hashtable +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 -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDoi7Rpy37ZlGHK -# QqLlAgdi837+b2M1IGWCU6KGY+lvCaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAizEF7EthEfKhr +# v64YI3/+SMJkAC9oh3WCsRWG4pdusqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm @@ -219,64 +178,64 @@ PrivateData = @{ # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIISr -# oP3oRBgVRA5fiLzsRLzlTV5n5MnfZVdnqnLKPkwCMEIGCisGAQQBgjcCAQwxNDAy +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIN0s +# HqoqWu/70zfwRQjHbRI9tcwpjpUnzXMkIHBvxTZHMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAc9usmM4HZ5jFViQMmm3x5WlmmgwSbp5sXSX7 -# YK+pYkSRUbxt1bZrKh6aQC/Jxh7/vReRpcsyEniqEScNF3tpl9FLCRQ0Ig56jwzz -# 1EnsLHAZa0U/Rdv21tCnsh6ca3kzHckEAB02l3+ZVXixvHLvpAhHY8kFfQuJwpnu -# YlyKK1vosdO9T/t4fUgdRpyr/Q5ejKLqDgLXF5BKvlAJt3LzRzCww3egnm5KYXcW -# f1koFJzqltr+H2PoAydhvruG/Bk3bAs/HyaQqJyqx4QtVkuN7yyQ1d5Y6orbo38k -# Y79B6j3meF04q++6a7RIjDgW0OOsE9xRrHK+QJ1ElQVSeW+kL6GCF60wghepBgor +# b20wDQYJKoZIhvcNAQEBBQAEggEAI886RwfaaT8kZaw3qXMyp4W63nmO5MUXdY5A +# gS41vNrTI9mB9OxxyZarmrAnVzWBP0f1bUnzWZjB3B7Ny0ZRFwdtdklKTQ4FSqsZ +# vcGSXJDiv8SxkC9mF3/BfUCSkerw8yWq6At3BmwI9pvp733ZzrYCgNG4FperZanw +# ec2wp2Sz8swhEqf8wlTKcFfhRDRWQWhCWVD2E0UJ1IgHxPpSot6poO3FI6xivTdN +# 2UXMBX6iVv1qARJBCnVxegYeY4ED/5u37weNXkL6HSpoaXHQKJ7C1KzNyTWcYFGo +# dL4IIyQwr+EjtwdbyrekXLByF4Ji5CLCKcJDtVyEEC4NmFD+f6GCF60wghepBgor # BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCB1G4vGhjZIuxd1t1xfg1ru2lr6JyAXN5Zj -# lWj6z1UwNgIGZ2L/yIZyGBMyMDI1MDEwOTA3MjE0Mi4xNTFaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCVdIAtLPSOGpzb8gas4wIWLavonKF3GMvt +# GcIwAuELzQIGaKOxdLn0GBMyMDI1MTAwMTA4MzMwMy43MDdaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9ZkJ -# lLzxxlCMAAEAAAH1MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo +# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwMVoXDTI1MTAyMjE4MzEwMVowgdMxCzAJ +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjY1MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# zO90cFQTWd/WP84IT7JMIW1fQL61sdfgmhlfT0nvYEb2kvkNF073ZwjveuSWot38 -# 7LjE0TCiG93e6I0HzIFQBnbxGP/WPBUirFq7WE5RAsuhNfYUL+PIb9jJq3CwWxIC -# fw5t/pTyIOHjKvo1lQOTWZypir/psZwEE7y2uWAPbZJTFrKen5R73x2Hbxy4eW1D -# cmXjym2wFWv10sBH40ajJfe+OkwcTdoYrY3KkpN/RQSjeycK0bhjo0CGYIYa+ZMA -# ao0SNR/R1J1Y6sLkiCJO3aQrbS1Sz7l+/qJgy8fyEZMND5Ms7C0sEaOvoBHiWSpT -# M4vc0xDLCmc6PGv03CtWu2KiyqrL8BAB1EYyOShI3IT79arDIDrL+de91FfjmSbB -# Y5j+HvS0l3dXkjP3Hon8b74lWwikF0rzErF0n3khVAusx7Sm1oGG+06hz9XAy3Wo -# u+T6Se6oa5LDiQgPTfWR/j9FNk8Ju06oSfTh6c03V0ulla0Iwy+HzUl+WmYxFLU0 -# PiaXsmgudNwVqn51zr+Bi3XPJ85wWuy6GGT7nBDmXNzTNkzK98DBQjTOabQXUZ88 -# 4Yb9DFNcigmeVTYkyUXZ6hscd8Nyq45A3D3bk+nXnsogK1Z7zZj6XbGft7xgOYvv -# eU6p0+frthbF7MXv+i5qcD9HfFmOq4VYHevVesYb6P0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRV4Hxb9Uo0oHDwJZJe22ixe2B1ATAfBgNVHSMEGDAWgBSfpxVdAF5i +# 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 -# AAOCAgEAcwxmVPaA9xHffuom0TOSp2hspuf1G0cHW/KXHAuhnpW8/Svlq5j9aKI/ -# 8/G6fGIQMr0zlpau8jy83I4zclGdJjl5S02SxDlUKawtWvgf7ida06PgjeQM1eX4 -# Lut4bbPfT0FEp77G76hhysXxTJNHv5y+fwThUeiiclihZwqcZMpa46m+oV6igTU6 -# I0EnneotMqFs0Q3zHgVVr4WXjnG2Bcnkip42edyg/9iXczqTBrEkvTz0UlltpFGa -# QnLzq+No8VEgq0UG7W1ELZGhmmxFmHABwTT6sPJFV68DfLoC0iB9Qbb9VZ8mvbTV -# 5JtISBklTuVAlEkzXi9LIjNmx+kndBfKP8dxG/xbRXptQDQDaCsS6ogLkwLgH6zS -# s+ul9WmzI0F8zImbhnZhUziIHheFo4H+ZoojPYcgTK6/3bkSbOabmQFf95B8B6e5 -# WqXbS5s9OdMdUlW1gTI1r5u+WAwH2KG7dxneoTbf/jYl3TUtP7AHpyck2c0nun/Q -# 0Cycpa9QUH/Dy01k6tQomNXGjivg2/BGcgZJ0Hw8C6KVelEJ31xLoE21m9+NEgSK -# CRoFE1Lkma31SyIaynbdYEb8sOlZynMdm8yPldDwuF54vJiEArjrcDNXe6BobZUi -# TWSKvv1DJadR1SUCO/Od21GgU+hZqu+dKgjKAYdeTIvi9R2rtLYwggdxMIIFWaAD +# 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 @@ -320,41 +279,41 @@ PrivateData = @{ # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAJsAKu48NbR5Y -# Rg3WSBQCyjzdkvaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ +# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsp1Y4wIhgPMjAyNTAxMDkwNDU2NDZaGA8yMDI1 -# MDExMDA0NTY0NlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6ynVjgIBADAHAgEA -# AgIv2DAHAgEAAgITKTAKAgUA6ysnDgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 +# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA +# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor # BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQBQZ+epogh9yozGUXovfC3VuYhp+q9eHXsbU/tJwdx7+bFn5T6uQT/6MJPW -# R7o6lYwustfEM0NLspeUimvngBIWtQbNrJpreDR9FiiwUn/Vyr0xLe9wulNHOPr+ -# bqXRWk6PpLXo0fjZ2pUScusPFs7wcRFLIaEdn7nuFhV62XsNsNm3V4OyAKEu6mkk -# IHx4X5Lrg80iKlN2BXYRGjRYP7Hb4TglhDJSPdDWxvhj+ndNbhc13Nm3zZd/DJqJ -# gi5TYRK6BmUDOfZRiO2UCHB5CKvilGCspEfnlyBFjlPuUQhra/zOX2uuSzrHTcfw -# J6b5vb7DmQVFde3aEtEMVk3Z8ACgMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU +# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O +# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 +# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H +# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ +# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH1mQmUvPHGUIwAAQAAAfUwDQYJYIZIAWUD +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD # BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgq/CLp1rq5ttOs1IS5MH8k7s4sPPPQHgrfgWHMPKKipYwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCDB1vLSFwh09ISu4kdEv4/tg9eR1Yk8w5x7j5GT -# hqaPNTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# CQQxIgQgcWvCA7syJSQRcPP6J3M3qUoHDuPVV3NRhh21Dj8LHpEwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs +# tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# 9ZkJlLzxxlCMAAEAAAH1MCIEIILkTWtto6jyoOiQmqv3k12cmyPChV3pUGKZ5kYF -# /vZ0MA0GCSqGSIb3DQEBCwUABIICACHKZYI1HPB3pEmjnf8h7AiWfdac9mMCNFZT -# tHeO+g0HCbSOfHXAeHnySSnmmXQhZhXnJglvyaoTqGBgx1MjmrGaPKm1dYA9tHaT -# MAc6mhHanJ9XUMHGyRZk7az73tOVYLV7JLoVw6wh1nGbseikAOr3TBW6vfVXki03 -# N7QyfBqd/KOcV7wrqHtlsnKFeXQCrPoSbqNumQD3Vt0Q+KDJsyyBLPQG/50x3+H/ -# LevgBAhWh5rA3Cgtm5aL1mLBEZ3FyLmq6UxhelT0/bW56iK6BDafcJF07za9dOKP -# FcPPGxQ8vGfrlrESSyzUCUfxM+jAyfW5OuskBzNMBTd/uYll/eeUYXorBjMj/3rE -# OsX3jAyKssc8xS62wzHkP6VRJ+ryl6Rf0CeyUvrZ5iRSnwjIEw0D5xM2Tjg0nWUx -# 4Tx2TMBg8Oe8GBvS9mnRcXz7Syf62RTEgVMRcfobowIwsJeanLjvnJdjVlm0Szsi -# tHR/vkJ48V+kyxU3gHYLIVzxmMSUUMZMNJCMi8Y9ISNtTzqxtMqeAtcFIjSUf5ou -# BYNcc+uDtaOqZkqA1iDfa7iS2xWj7ukWMkTsoTbkGw/7rG0w6VjYrD3edtTEsr2/ -# aIkwPju8tmGG3ab5uDs1tzjcaPTCKwuiyhBW6VUFZFkVu6bMj4vqeyBIzPQmHZOq -# pJEw7iB5 +# /tCowns0IQsBAAEAAAH+MCIEIHl8bRCAEGD1nFgaXp67WN1I3z8m7ZUmowEzGTjb +# iSIqMA0GCSqGSIb3DQEBCwUABIICAIT+2wgOhfO9dGRSJlOAVksO6aJR8upaTR8O +# lPfuukTdRc2OjjJlrq1/4U4DFrzF+5fgX2ryRlyidqASC9IhIenDLyB9swL1p3Up +# u8PdUhsHo/gtkpNvshjFSsgSl24Cl5gqCTdgE7u9ia0Td0uNzyp4micmnHFSlL5e +# xmoBq8PrGPlfz59r2DwEiL0ncfyprkypUu8lkFL4Ze6Did3kdud39Lfo9mYi3Q9P +# 72QH+7NlUcsF5HMeojQS2knq+DQEKcOA7Easo6MG199hoj0GGsUxATj9kZX9aOs0 +# tMT5LAiY+Jo1Z6k7/yJqR6hDnPLN7k8EKp91X/MgwrGgTEPQWJvP68bVrGFQHTAp +# R1TCMV7hZgYR9AX8FI+82M1rEz/gl5vjXrvCB3hKglht71Xh/Y3Zroue5s3aUb8X +# PB30drTrXerrtNZ73CLDHN/g6z1Hh5XPgCmvbncgCjll5gqjoj/nHQkKIXbnijwD +# D7+bfnoOpHqlNw1PJqgjCZm2fhsLEHKXDnxuwiuScMvqGRdWOTUD/vj8KAs1q8ka +# HkJzKXckUagiGXUEfRkrGFbJleXRjeety7ZiefzrH/fghoOmOSUsd2P4jxLMUsNZ +# 9LZcBtVWHWwVBIt/xfVfFSkU5WbhOoz9PudW1pG9l0PbcUSmOXAQKH9FwcT3Tqf3 +# HIchFvHN # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 new file mode 100644 index 000000000000..dac2ec5284fe --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 @@ -0,0 +1,248 @@ +# Define which modules to load based on the environment +# These environment variables are set in TPM + +if ($env:MSTeamsContextInternal -eq "IsOCEModule") { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1' +} +elseif ($env:MSTeamsReleaseEnvironment -eq 'TeamsPreview') { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1' +} +else { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1' +} + +$path = (Join-Path $PSScriptRoot $mpaModule) + +if (test-path $path) +{ + $null = Import-Module -Name $path +} +else +{ + if ($PSEdition -ne 'Desktop') + { + $null = Import-Module -Name (Join-Path $PSScriptRoot "netcoreapp3.1\$mpaModule") + } + else + { + $null = Import-Module -Name (Join-Path $PSScriptRoot "net472\$mpaModule") + } +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCY/3SaRU5aX7aK +# TQZJ6IK4Qt60ySomlFTBejL/fus5QaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBMw +# q7DKEXveX/tYp75+TAPnyE5ZJziyHVTCrrAiSia5MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAeDguijEeixlAKE2HfhTxBw93mfPIgX3jhc63 +# 7TiIYsweHWRj9AIx7n84Y6MTVh4qP6J9F31lXZkjKr2uRxORWfcdzgPDlEk0ilDb +# bdUFUg1NP0C8DwxUsKxQMw+YY71Vimgg284U6CYu+u2xXH4ZRVakUtmabmzWsu7k +# PSwWAmd0N9y4d1tlAgmf+Z/WPiry/P0AOBz7gpxJEncFrj7WIv2WHYitB/K8ElJ5 +# +riHLuYm1pPT6Vaj4bc8JAV+Iioq7SN4wvtDbNDF6C5Qq/YyUKBHJD+1XZXyXdgi +# NwdCfOqPb9DejbDdmchQE8sDHEItCP9Tyko890AIpiNanWPLB6GCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCCV7ZelKBHXN1ogHtX5KieQqUnxtjGIceZ +# A6wVYjKWzAIGaKOvGfWVGBMyMDI1MTAwMTA4MzMwMi4zMzlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQg9EUi0GwdI7f5VNLcGjHgsFQ3coZvNRAk3QmJ0eEdcvcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICAF6dRTMCVnCbetbuA/BYOcM5F71+HqL3mf0L +# s40lxJ/uZnotyAAau6Gp4920uacdvB8P03CAkcZxDqn8B4bi0+yB/NlLi9tI1j/a +# gzdyspoSxWWr0g3462YzXBnCRb5Yh3y6Gc2PQ5hhU2aLtZR2rJwpx+oh2QgUu3lW +# DOZRR/rDUGiqyxqrnqNerlzYGAXGfv05p9D9bU1rRRU7R53yrlRwkASQslEvGDnM +# qplUsLdyeJFNiXB95b4GAdeuTNgR/KGdqdyPH0If5d9kl8dZ7oI00baNY3HRTB1n +# vodZ94XWpCm64bM97N5LTompSa9+fDlgf1KGJGtYPuOq0nkvBWazeq5pgAolbnvK +# BryXrqhMUS3/bXnscmdI6jWKcBXUFQZ0x0xS13AbLqkK99/dLJ0cqplhOLJTo45g +# LF6meVVKzd8pg1QZvc5poE54tSgsRHSUxreFb8xd8c+6NW+jhnQQH2PQSQG9kW+m +# MDCqAAgvjXH/Li0aIvqY5ZElx1m2vnC7kNoqH+SPin8m/Mm4G2qxSZLcuvN2i3o/ +# r0JEYaWyqLM7Bs2K6aC6ZuoRo4vWKEsiuaPuI3c1lI5mYVjt8nleYvrMDr071T51 +# 2RiUdRNglEW6wdIhUDy78pISuyxFRcPoWR4NWEhNBJCG8mFHwTlBvGsfsA+Jt3FY +# sGHurA7y +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.Policy.Administration.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.Module.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml diff --git a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 new file mode 100644 index 000000000000..5f48fd5cf213 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 @@ -0,0 +1,357 @@ +# +# Module manifest for module 'Microsoft.Teams.PowerShell.TeamsCmdlets' +# +# Generated by: Microsoft Corporation +# +# Updated on: 6/30/2020 +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.PowerShell.TeamsCmdlets.psm1' + +# Version number of this module. +# There's a string replace for the actual module version in the build pipeline +ModuleVersion = '1.5.6' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '3dfbed68-91ab-432e-b8bf-affe360d2c2f' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets sub module for Windows PowerShell and PowerShell Core. + +For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @('GetTeamSettings.format.ps1xml') + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'Add-TeamChannelUser' + ,'Add-TeamUser' + ,'Get-AssociatedTeam' + ,'Get-MultiGeoRegion' + ,'Get-Operation' + ,'Get-SharedWithTeam' + ,'Get-SharedWithTeamUser' + ,'Get-Team' + ,'Get-TeamAllChannel' + ,'Get-TeamChannel' + ,'Get-TeamChannelUser' + ,'Get-TeamIncomingChannel' + ,'Get-TeamsApp' + ,'Get-TeamsArtifacts' + ,'Get-TeamUser' + ,'Get-M365TeamsApp' + ,'Get-AllM365TeamsApps' + ,'Get-M365UnifiedTenantSettings' + ,'Get-M365UnifiedCustomPendingApps' + ,'Get-TenantPrivateChannelMigrationStatus' + ,'New-Team' + ,'New-TeamChannel' + ,'New-TeamsApp' + ,'Remove-SharedWithTeam' + ,'Remove-Team' + ,'Remove-TeamChannel' + ,'Remove-TeamChannelUser' + ,'Remove-TeamsApp' + ,'Remove-TeamUser' + ,'Set-Team' + ,'Set-TeamArchivedState' + ,'Set-TeamChannel' + ,'Set-TeamPicture' + ,'Set-TeamsApp' + ,'Update-M365TeamsApp' + ,'Update-M365UnifiedTenantSettings' + ,'Update-M365UnifiedCustomPendingApp' + ,'Add-TeamsAppInstallation' + ,'Get-TeamsAppInstallation' + ,'Get-TeamTargetingHierarchyStatus' + ,'Remove-TeamsAppInstallation' + ,'Remove-TeamTargetingHierarchy' + ,'Set-TeamTargetingHierarchy' + ,'Update-TeamsAppInstallation' + ,'Get-LicenseReportForChangeNotificationSubscription' + ) + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = '*' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCACn9eUplYLXu2e +# 7fBVQlUN4wKwx8YYH35YeUyOD2ECn6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPWS +# kmHJhyB6ldbqxbegGg+2fHDqHbOC06HJfFp2XPa2MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAmLjSkS/EXKuMXZ+jVZvo0PxZYambtSg3hD+H +# YD28l4bJFO76hYHVdpQkMzqsgseZQkzv0T4OZzTOVHlMOpOZJ66JTBeDonWUDoCF +# eeUAChDRTa7JrgGGY2hXjYiuNGlXKQEhmm9PJDBPTiaIJAusqurTjSHqzvU5rkBU +# u6QQTJUk47QqatH5Aq2nFwG/hA6wLwG4iRt8MD857UbyJRpO6jLXxypulMpFulMe +# mhsltWanOy12BnIbnB6Iop2YWWFS9Ze2WsiOglUpadH1xPl7G/gGW2gh/KnncJq6 +# hrZ30Y/AlM0VJceiURWUCj/VBd23pj/BbtGO82bkdWs1ZBCaCqGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCypOf4C4hBjE9rlokTgfqxG9laaRqmtnJP +# Y3LpveiDogIGaKOvGfXMGBMyMDI1MTAwMTA4MzMwMy40OTJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgkaMEs6O9ga5mzUDZmkwp1tvB4Gb8MO3yy9/wDS4fIf4wgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICADU2mek75KAjLj8j5o0jogSEHX69AgsLuMzE +# LXlcJFJUpGCIs9KEn6Z9OL18AyXFthdYxVTyOxAngLgq/6bo05wBJmQLB9oqeM2D +# WOBDxlea0jOKVwCIpHaPDisTrS04WFj0Peyhjw8HotLyH2Gdkj9iKlKwuworlbfx +# R2w5+9DChGi0FvDw9eKIpnzT/7y1IWkTyFwqnjjQBeq558APfdavyrKklMeyuliv +# 06N2baSYYqm/iiPqHkUwa8tEotB9wE8Q7JkQwJpzNwkXkqlnib/V2BkrOb90oDvm +# TZWob41SxHvNxoq5YjU4GkAh2254PjXTAWktBCIsZU93H3UI3yC45baNbHVd0Giy +# fwc0o+1EEND+yqjzBlx4HM7Eni2KJTN3eDqCVONmwC4T9E5iqO1s65b941w44LjC +# qGrFkE85GAVKcGtT/ZnNCUIgD8uleA/WSkBjrBLoD2pKnp1kDtjiFDtoAHdWnAVf +# SbzU++f3AxdhIfvAweGBrAphGeAODV/wob95+tC96LoJGV9kTj988HrEO9dNkAz5 +# IlxKXKOjv1vkU+ERnxHCBPLxsO/K9qVrV+ZAUOoh2gY4NAO/wncfcy6aZbV868x7 +# +uhBw4TzO7wkCEQq1Eo9r+D6EwZaFcecr38CFzj6OK/jQvMsKbDv33EhJ+VNUgns +# RyAvZ0oW +# SIG # End signature block diff --git a/Modules/Az.Accounts/4.0.2/PostImportScripts/LoadAuthenticators.ps1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 similarity index 57% rename from Modules/Az.Accounts/4.0.2/PostImportScripts/LoadAuthenticators.ps1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 index aca0ecfa3ec4..d423f0bc1702 100644 --- a/Modules/Az.Accounts/4.0.2/PostImportScripts/LoadAuthenticators.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 @@ -1,45 +1,48 @@ -if ($PSEdition -eq 'Desktop') { - try { - [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() - } catch {} +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 -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBn8ROze2QLH/c6 -# GtPhR/BPLgOtmjkNhcq+fFmu16VcrqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCtJNoep0vYvS0u +# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm @@ -82,64 +85,64 @@ # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIC8M -# Xy0xGn+XGeN5xhSUhsVdQGTLtuHOS5+U3UgQ1k53MEIGCisGAQQBgjcCAQwxNDAy +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF3F +# viB5I/Ax1ZFPXrSiQ9VfQ9tIZcCOZ+89t8Pe2ekmMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEALdJPpqLqUR5rxbPsLwHlhGIE5IfE04bT0i6M -# A+JWd4onK2QnJhrnr3dWIqryYf+DHGsZm88BsGsR2aczO7tUEIK03pJjcFFkTw51 -# p0AavUC7elmI5U55yGDD0DgF/n67VHyb5l8cWEstR41MTBRjKoKME6IV+Y0k405p -# giIrtXCD5bujIOxYYFfLpWQg+6VWIPgib22ZTP5zkhIfHvUmREgucfdp4BSMSFWr -# T7oVonVUO602DGre3GTt1Plg3NDnLcrFwjKzGDaTEUKbVhWAiTyi0wkj3LHnJuzr -# eZJucsTggBXKiB1itOLwsk/a/1oYrVII5SlNQDJTTtna5KWFEaGCF7AwghesBgor +# b20wDQYJKoZIhvcNAQEBBQAEggEA6TuOvRDRWgSB20of7Bc0HNzscdou+QEljnZy +# iUjzm8nstTBeX8C8ZzHZAW9ZAyyUcc5btohoi/w4sYFbnzUM/4PGcfMnMwWOiO82 +# baFd1/M6EqK6cfN0svpDfF9xlz4D55LpqkHwvSQ1o4/B6qJxZNX3GT9XfXRF+R+7 +# +hEQXWAULWVXLNgr0/wPG36A65VVKzJirMhoeEujWdTe5NxTwM6nPP/s2Kx/5EFb +# wd8owyknEPWGNP6q+QCStKiPHU7yLT2S2Syvva3HkTV4xiONhJPrXrANoHyz7VRs +# ww21m0PSuEb1zk/49ub68VZ1q/sVrnujGl1XEBOPtDvmiqJ0A6GCF7AwghesBgor # BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDyw0ExQoodPuqNnPNw+koj8sF80eOVbC3S -# rg/bpUoMhQIGZ2K0lkXaGBMyMDI1MDExNTA1MDYwNC42MDVaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCD8tLi1+mhEnfJS/P2mXfQHMUEkPsE6F1S5 +# QTI4uAsUjgIGaKR4CbFTGBMyMDI1MTAwMTA4MzMwNy41MDdaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB91gg -# dQTK+8L0AAEAAAH3MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 +# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwNloXDTI1MTAyMjE4MzEwNlowgdMxCzAJ +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjM2MDUtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# 0OdHTBNom6/uXKaEKP9rPITkT6QxF11tjzB0Nk1byDpPrFTHha3hxwSdTcr8Y0a3 -# k6EQlwqy6ROz42e0R5eDW+dCoQapipDIFUOYp3oNuqwX/xepATEkY17MyXFx6rQW -# 2NcWUJW3Qo2AuJ0HOtblSpItQZPGmHnGqkt/DB45Fwxk6VoSvxNcQKhKETkuzrt8 -# U6DRccQm1FdhmPKgDzgcfDPM5o+GnzbiMu6y069A4EHmLMmkecSkVvBmcZ8VnzFH -# TDkGLdpnDV5FXjVObAgbSM0cnqYSGfRp7VGHBRqyoscvR4bcQ+CV9pDjbJ6S5rZn -# 1uA8hRhj09Hs33HRevt4oWAVYGItgEsG+BrCYbpgWMDEIVnAgPZEiPAaI8wBGemE -# 4feEkuz7TAwgkRBcUzLgQ4uvPqRD1A+Jkt26+pDqWYSn0MA8j0zacQk9q/AvciPX -# D9It2ez+mqEzgFRRsJGLtcf9HksvK8Jsd6I5zFShlqi5bpzf1Y4NOiNOh5QwW1pI -# vA5irlal7qFhkAeeeZqmop8+uNxZXxFCQG3R3s5pXW89FiCh9rmXrVqOCwgcXFIJ -# QAQkllKsI+UJqGq9rmRABJz5lHKTFYmFwcM52KWWjNx3z6odwz2h+sxaxewToe9G -# qtDx3/aU+yqNRcB8w0tSXUf+ylN4uk5xHEpLpx+ZNNsCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBTfRqQzP3m9PZWuLf1p8/meFfkmmDAfBgNVHSMEGDAWgBSfpxVdAF5i +# 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 -# AAOCAgEAN0ajafILeL6SQIMIMAXM1Qd6xaoci2mOrpR8vKWyyTsL3b83A7XGLiAb -# QxTrqnXvVWWeNst5YQD8saO+UTgOLJdTdfUADhLXoK+RlwjfndimIJT9MH9tUYXL -# zJXKhZM09ouPwNsrn8YOLIpdAi5TPyN8Cl11OGZSlP9r8JnvomW00AoJ4Pl9rlg0 -# G5lcQknAXqHa9nQdWp1ZxXqNd+0JsKmlR8tcANX33ClM9NnaClJExLQHiKeHUUWt -# qyLMl65TW6wRM7XlF7Y+PTnC8duNWn4uLng+ON/Z39GO6qBj7IEZxoq4o3avEh9b -# a43UU6TgzVZaBm8VaA0wSwUe/pqpTOYFWN62XL3gl/JC2pzfIPxP66XfRLIxafjB -# VXm8KVDn2cML9IvRK02s941Y5+RR4gSAOhLiQQ6A03VNRup+spMa0k+XTPAi+2aM -# H5xa1Zjb/K8u9f9M05U0/bUMJXJDP++ysWpJbVRDiHG7szaca+r3HiUPjQJyQl2N -# iOcYTGV/DcLrLCBK2zG503FGb04N5Kf10XgAwFaXlod5B9eKh95PnXKx2LNBgLwG -# 85anlhhGxxBQ5mFsJGkBn0PZPtAzZyfr96qxzpp2pH9DJJcjKCDrMmZziXazpa5V -# VN36CO1kDU4ABkSYTXOM8RmJXuQm7mUF3bWmj+hjAJb4pz6hT5UwggdxMIIFWaAD +# 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 @@ -183,41 +186,41 @@ # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAb28KDG/xXbNB -# jmM7/nqw3bgrEOaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw +# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxcu8wIhgPMjAyNTAxMTQyMzM0MDdaGA8yMDI1 -# MDExNTIzMzQwN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA6zFy7wIBADAKAgEA -# AgIH8QIB/zAHAgEAAgIT7DAKAgUA6zLEbwIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 +# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA +# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM # BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQANiVtBcR02aMUmrQOm3fZH5z8Kv3cXQxoQMsDBpAUwsfVnIo5zC8fy -# rLI89mJnl5XvsL1Xzau/AL+hchpOSxzwy59/m0NBf9+wB5PHlLoMRwoXCZPdhIBU -# 6oIzAYCDmqbnds4Z9vk/WfZb1DVtV8a/PONfWW5kkK9SFatAcytSE7iHqLmo7QKT -# voIFfTYp5yM1pBKfRf/G9MbIyl/LEFwk5nqzfS2UTrEGIJlCk8Gkhwj0egu9cBF7 -# pCZPRCzTsEdP8WEmF5lM2YfNsooIPOtbkPTdFazPjc/ZAM1o0+8+X0faslbPoDhi -# rMrYlB0AYzxfGUFRr3eZROEwath81snAMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy +# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH +# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot +# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c +# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp +# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH3WCB1BMr7wvQAAQAAAfcwDQYJYIZI +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI # AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgYexMw3nQzZARnPLYDchCeFQuXV2+EcT09hIruqNkxQUwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAh2pjaa3ca0ecYuhu60uYHP/IKnPbedbVQ -# J5SoIH5Z4jCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# 9w0BCQQxIgQgqO2PTggYwTiT3pA4tzgBhRKPPqUxuknOaODh8BQgXVYwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS +# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n # dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y # YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB91ggdQTK+8L0AAEAAAH3MCIEIET7apu/ZHmx5ty9r0375MwUGiEHq2YNLtup -# bYJ+SMbQMA0GCSqGSIb3DQEBCwUABIICAJugPMi3d/ycII+6n2Q+a0SS/gUuo0zK -# EJfPOjbMb7+m1lchhj1awpTusSEV/p+fFBfnGke99/NITz7mvyv5VIRWrbpoMiYw -# 48nqhuLPHSt1YuCC9saREHQXJC8OTj5MO6C+NmG3VtLQjmOZ2uFIO03pEQ+c7lbd -# tLACM3gLYYy1NyaAc1MBr7C0LEaQAxDDMihILQGHIMpN14eg9Cgg1cyuNLL79K7o -# Fpdczg3s59m5RFO9APrakN4m8gGBc7Byl69toDmlt1FsmCUneysmZBYiti4y2IjO -# KmRbQ9LuD6Vz2QvpqpRq8aME3m170sEpTuhCfcvpr8bsPAguzASjzswLtwJLTu3q -# peaoPUqUrw8IEzR4EZq6bhDhslTnhfyza1tYOUfSYxYc5m14CVclNFzDLf415h0C -# LMRHF+36JP2SSGz2XjZHejq1FP2dr0lqbkXpPtwrclkkmqye2PHiSpYUEqXcDH0H -# UIkfM+L0gDtgbk9xLqwK4Yu5VR1OXcguUWTCB/qaAVxCR3pJNQOmjRiVRgzmcEXL -# Go2XUnALayyiMs8rqaHZ6bPpgUnbxYB+F9YQHtEU/PjH4uaG1+bVt43tx2eeJLRA -# Wuq0FhKmRfQkVBur0FJ3J4KnJzGu+lqSZABPMYd87RwndX3cFc6IbN0Il+B0bnwr -# N9vCJpIVDC8/ +# 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.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml similarity index 97% rename from Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml index 45980e6edda2..b19a7caf7fea 100644 --- a/Modules/MicrosoftTeams/7.3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml @@ -893,6 +893,46 @@ Teams App identifier in MS Teams. + + Represents the type of call, used to filter export requests. + Represents the type of artifact. + + + Recording/Transcript artifact type. + + + Notes artifact type. + + + Whiteboard artifact type. + + + Implements the Get-TeamsArtifacts cmdlet. + + + Gets or sets User. + + + Gets or sets Teams. + + + Gets or sets ArtifactType. + + + Gets or sets StartTime. + + + Gets or sets EndTime. + + + Gets or sets Usage. + + + Shows the cmdlet usage information. + + + Handles an invocation of the Get-TeamsArtifacts cmdlet. + Default constructor necessary for cmdlet. @@ -958,11 +998,6 @@ Cmdlet name. - - - Performs authorization specific to the Teams and Channels service for this cmdlet. - - @@ -3343,6 +3378,51 @@ + + + HttpClient handler class that handles token refresh and retries due to throttling. + + + + + Initializes a new instance of the class. + + The "Application (client) ID" (GUID) for this app from the Entra portal. + The tenantId (GUID) where this will be run. + The client secret generated for this app from the Entra portal. + + + + Sends an HTTP request with authentication and retries in the event of throttling, and handles token refresh. + + The HTTP request message to send. + The cancellation token to cancel operation. + The task object representing the asynchronous operation. + + + + Represents a single export job. + + + + + Initializes a new instance of the class. + + The HTTP client to be used for requests. + Where to output the data. + Optionally limit single to a single user's ODB. + Optionally limit search to SharePoint and not ODB. + Optional single type of artifact to be exported (default is all types). + Optional start time to return artifacts created on or after this time. + Optional end time to return artifacts created on or before this time. + + + + Starts the export job. + + The number of artifacts found. + The number of errors encountered during the export. + The utilities of graph APIs. diff --git a/Modules/MicrosoftTeams/7.3.1/MicrosoftTeams.psd1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 similarity index 66% rename from Modules/MicrosoftTeams/7.3.1/MicrosoftTeams.psd1 rename to Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 index dba921dfff44..64c48ed59315 100644 --- a/Modules/MicrosoftTeams/7.3.1/MicrosoftTeams.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 @@ -11,7 +11,7 @@ RootModule = './MicrosoftTeams.psm1' # Version number of this module. -ModuleVersion = '7.3.1' +ModuleVersion = '7.4.0' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -101,6 +101,9 @@ FunctionsToExport = @( ,'Get-CsHybridTelephoneNumber' ,'Get-CsInboundBlockedNumberPattern' ,'Get-CsInboundExemptNumberPattern' + ,'Get-CsMainlineAttendantAppointmentBookingFlow' + ,'Get-CsMainlineAttendantFlow' + ,'Get-CsMainlineAttendantQuestionAnswerFlow' ,'Get-CsMeetingMigrationStatus' ,'Get-CsOnlineApplicationInstance' ,'Get-CsOnlineApplicationInstanceAssociation' @@ -137,6 +140,7 @@ FunctionsToExport = @( ,'Get-CsOnlineVoiceRoutingPolicy' ,'Get-CsOnlineVoiceUser' ,'Get-CsPhoneNumberAssignment' + ,'Get-CsPhoneNumberPolicyAssignment' ,'Get-CsPhoneNumberTag' ,'Get-CsPolicyPackage' ,'Get-CsSdgBulkSignInRequestStatus' @@ -197,7 +201,7 @@ FunctionsToExport = @( ,'Grant-CsApplicationAccessPolicy' ,'Get-CsComplianceRecordingForCallQueueTemplate' ,'Get-CsSharedCallQueueHistoryTemplate' - ,'Get-CsMainlineAttendantFlow' + ,'Get-CsTagsTemplate' ,'Grant-CsCallingLineIdentity' ,'Grant-CsDialoutPolicy' ,'Grant-CsGroupPolicyPackageAssignment' @@ -255,6 +259,8 @@ FunctionsToExport = @( ,'New-CsHybridTelephoneNumber' ,'New-CsInboundBlockedNumberPattern' ,'New-CsInboundExemptNumberPattern' + ,'New-CsMainlineAttendantAppointmentBookingFlow' + ,'New-CsMainlineAttendantQuestionAnswerFlow' ,'New-CsOnlineApplicationInstance' ,'New-CsOnlineApplicationInstanceAssociation' ,'New-CsOnlineAudioConferencingRoutingPolicy' @@ -300,9 +306,9 @@ FunctionsToExport = @( ,'New-CsOnlineDirectRoutingTelephoneNumberUploadOrder' ,'New-CsOnlineTelephoneNumberReleaseOrder' ,'New-CsComplianceRecordingForCallQueueTemplate' + ,'New-CsTagsTemplate' + ,'New-CsTag' ,'New-CsSharedCallQueueHistoryTemplate' - ,'New-CsMainlineAttendantAppointmentBookingFlow' - ,'New-CsMainlineAttendantQuestionAnswerFlow' ,'Register-CsOnlineDialInConferencingServiceNumber' ,'Remove-CsApplicationAccessPolicy' ,'Remove-CsAutoAttendant' @@ -313,6 +319,8 @@ FunctionsToExport = @( ,'Remove-CsHybridTelephoneNumber' ,'Remove-CsInboundBlockedNumberPattern' ,'Remove-CsInboundExemptNumberPattern' + ,'Remove-CsMainlineAttendantAppointmentBookingFlow' + ,'Remove-CsMainlineAttendantQuestionAnswerFlow' ,'Remove-CsOnlineApplicationInstanceAssociation' ,'Remove-CsOnlineAudioConferencingRoutingPolicy' ,'Remove-CsOnlineAudioFile' @@ -361,6 +369,7 @@ FunctionsToExport = @( ,'Remove-CsUserLicenseGracePeriod' ,'Remove-CsVideoInteropServiceProvider' ,'Remove-CsComplianceRecordingForCallQueueTemplate' + ,'Remove-CsTagsTemplate' ,'Remove-CsSharedCallQueueHistoryTemplate' ,'Set-CsApplicationAccessPolicy' ,'Set-CsApplicationMeetingConfiguration' @@ -369,6 +378,8 @@ FunctionsToExport = @( ,'Set-CsCallQueue' ,'Set-CsInboundBlockedNumberPattern' ,'Set-CsInboundExemptNumberPattern' + ,'Set-CsMainlineAttendantAppointmentBookingFlow' + ,'Set-CsMainlineAttendantQuestionAnswerFlow' ,'Set-CsOnlineApplicationInstance' ,'Set-CsOnlineAudioConferencingRoutingPolicy' ,'Set-CsOnlineDialInConferencingBridge' @@ -392,6 +403,7 @@ FunctionsToExport = @( ,'Set-CsOnlineVoiceRoutingPolicy' ,'Set-CsOnlineVoiceUser' ,'Set-CsPhoneNumberAssignment' + ,'Set-CsPhoneNumberPolicyAssignment' ,'Set-CsPhoneNumberTag' ,'Set-CsTeamsAudioConferencingPolicy' ,'Set-CsTeamsCallParkPolicy' @@ -432,6 +444,7 @@ FunctionsToExport = @( ,'Set-CsUserCallingSettings' ,'Set-CsVideoInteropServiceProvider' ,'Set-CsComplianceRecordingForCallQueueTemplate' + ,'Set-CsTagsTemplate' ,'Set-CsSharedCallQueueHistoryTemplate' ,'Start-CsExMeetingMigration' ,'Sync-CsOnlineApplicationInstance' @@ -481,8 +494,6 @@ FunctionsToExport = @( ,'Invoke-CsMsodsSync' ,'Get-CsUssUserSettings' ,'Set-CsUssUserSettings' - ,'Get-CsPhoneNumberPolicyAssignment' - ,'Set-CsPhoneNumberPolicyAssignment' ,'Invoke-CsRehomeuser' ,'Set-CsNotifyCache' #OCE exports end @@ -506,6 +517,7 @@ CmdletsToExport = @( ,'Get-TeamChannelUser' ,'Get-TeamIncomingChannel' ,'Get-TeamsApp' + ,'Get-TeamsArtifacts' ,'Get-TeamUser' ,'Get-M365TeamsApp' ,'Get-AllM365TeamsApps' @@ -556,6 +568,8 @@ CmdletsToExport = @( ,'Get-CsTeamsMeetingConfiguration' ,'Get-CsTeamsWorkLocationDetectionPolicy' ,'Get-CsTeamsRecordingRollOutPolicy' + ,'Get-CsTeamsRemoteLogCollectionConfiguration' + ,'Get-CsTeamsRemoteLogCollectionDevice' ,'Get-CsTeamsEducationConfiguration' ,'Get-CsTeamsBYODAndDesksPolicy' ,'Get-CsTeamsNotificationAndFeedsPolicy' @@ -619,6 +633,7 @@ CmdletsToExport = @( ,'New-CsTeamsComplianceRecordingPairedApplication' ,'New-CsTeamsWorkLocationDetectionPolicy' ,'New-CsTeamsRecordingRollOutPolicy' + ,'New-CsTeamsRemoteLogCollectionDevice' ,"New-CsCustomPrompt" ,"New-CsCustomPromptPackage" ,'New-CsTeamsShiftsPolicy' @@ -663,6 +678,7 @@ CmdletsToExport = @( ,'Remove-CsTeamsVdiPolicy' ,'Remove-CsTeamsWorkLocationDetectionPolicy' ,'Remove-CsTeamsRecordingRollOutPolicy' + ,'Remove-CsTeamsRemoteLogCollectionDevice' ,'Remove-CsTeamsBYODAndDesksPolicy' ,'Remove-CsTeamsNotificationAndFeedsPolicy' ,'Remove-CsTeamsPersonalAttendantPolicy' @@ -713,6 +729,7 @@ CmdletsToExport = @( ,'Set-CsTeamsMeetingConfiguration' ,'Set-CsTeamsVdiPolicy' ,'Set-CsTeamsWorkLocationDetectionPolicy' + ,'Set-CsTeamsRemoteLogCollectionDevice' ,'Set-CsTeamsRecordingRollOutPolicy' ,'Set-CsTeamsCustomBannerText' ,'Set-CsTeamsBYODAndDesksPolicy' @@ -755,6 +772,7 @@ CmdletsToExport = @( ,'Set-TeamTargetingHierarchy' #preview ,'Update-TeamsAppInstallation' #preview ,'Get-LicenseReportForChangeNotificationSubscription' +#preview ,'Get-TenantPrivateChannelMigrationStatus' ) # Variables to export from this module @@ -792,8 +810,13 @@ PrivateData = @{ # ReleaseNotes of this module ReleaseNotes = @' - **7.3.1-GA** (The project - MicrosoftTeams contains changes till this release) -- Fixes New-Team cmdlet for EDU teams. + **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 @@ -809,219 +832,220 @@ https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes } # SIG # Begin signature block -# MIIoKQYJKoZIhvcNAQcCoIIoGjCCKBYCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDfMDt/EVJqWtyd -# /dZZ+zFhU2ZIkxllGUOKhzeZekdVLKCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBNq+ogYcufhkVf +# wL/SIsi1+eZ0W6XKQrhMITXDH9ZwfKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw # 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 -# /Xmfwb1tbWrJUnMTDXpQzTGCGgkwghoFAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPmpbmkNcz+bSgqKHZ5cFU/Z -# Vh0Ldq1nJMIwG1kqJLSdMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAshGuS8daacUyvibS5dZYcYS9BaxMwwy7qf1tOaVZ9Fxprj2bNIgLoEJu -# 2saPm/IXV9ioYHBBUo2f2YFoxaLB0UFs3f2HpSys0fgM4oAYejAV3bWwYC3Jowck -# Sl1UfoinvN29ghdsnHYCvPfRDZMr6LoiAlRG4j5bWgp+GyEcr/Zupl7MiQ3yS3aX -# o0Dq1/oJzxKEy9MaqPLlF9SxAvsJmEmdrn0qP+9jI4r2c8L+U6SOFYvkaKrXx4Ac -# 9G/6izGVKHyfJOVcg12mzREPVL7vOIgOoJcSHi+qNAVwtXqWxRw+d7bwJRCt6TOx -# e5kZzTtN8vDXv1d2rg0OMcQJaI7llaGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCC -# F3sGCSqGSIb3DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAlT9MScAvBal9mZYsIbCMgRi21Iqt5TGY26hB0gkY1hAIGaKOedNm3 -# GBMyMDI1MDgyMTA2NTIyMS45MzlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHpMIIHIDCCBQigAwIBAgITMwAAAgbXvFE4mCPsLAABAAACBjANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNTAxMzAxOTQy -# NTBaFw0yNjA0MjIxOTQyNTBaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z -# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046N0YwMC0wNUUwLUQ5NDcxJTAjBgNV -# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB -# AQUAA4ICDwAwggIKAoICAQDpRIWbIM3Rlr397cjHaYx85l7I+ZVWGMCBCM911BpU -# 6+IGWCqksqgqefZFEjKzNVDYC9YcgITAz276NGgvECm4ZfNv/FPwcaSDz7xbDbsO -# oxbwQoHUNRro+x5ubZhT6WJeU97F06+vDjAw/Yt1vWOgRTqmP/dNr9oqIbE5oCLY -# dH3wI/noYmsJVc7966n+B7UAGAWU2se3Lz+xdxnNsNX4CR6zIMVJTSezP/2STNcx -# JTu9k2sl7/vzOhxJhCQ38rdaEoqhGHrXrmVkEhSv+S00DMJc1OIXxqfbwPjMqEVp -# 7K3kmczCkbum1BOIJ2wuDAbKuJelpteNZj/S58NSQw6khfuJAluqHK3igkS/Oux4 -# 9qTP+rU+PQeNuD+GtrCopFucRmanQvxISGNoxnBq3UeDTqphm6aI7GMHtFD6DOjJ -# lllH1gVWXPTyivf+4tN8TmO6yIgB4uP00bH9jn/dyyxSjxPQ2nGvZtgtqnvq3h3T -# RjRnkc+e1XB1uatDa1zUcS7r3iodTpyATe2hgkVX3m4DhRzI6A4SJ6fbJM9isLH8 -# AGKcymisKzYupAeFSTJ10JEFa6MjHQYYohoCF77R0CCwMNjvE4XfLHu+qKPY8GQf -# sZdigQ9clUAiydFmVt61hytoxZP7LmXbzjD0VecyzZoL4Equ1XszBsulAr5Ld2Kw -# cwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFO0wsLKdDGpT97cx3Iymyo/SBm4SMB8G -# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG -# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy -# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w -# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy -# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG -# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD -# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQB23GZOfe9ThTUvD29i4t6lDpxJhpVRMme+ -# UbyZhBFCZhoGTtjDdphAArU2Q61WYg3YVcl2RdJm5PUbZ2bA77zk+qtLxC+3dNxV -# sTcdtxPDSSWgwBHxTj6pCmoDNXolAYsWpvHQFCHDqEfAiBxX1dmaXbiTP1d0Xffv -# gR6dshUcqaH/mFfjDZAxLU1s6HcVgCvBQJlJ7xEG5jFKdtqapKWcbUHwTVqXQGbI -# lHVClNJ3yqW6Z3UJH/CFcYiLV/e68urTmGtiZxGSYb4SBSPArTrTYeHOlQIj/7lo -# VWmfWX2y4AGV/D+MzyZMyvFw4VyL0Vgq96EzQKyteiVeBaVEjxQKo3AcPULRF4Uz -# z98P2tCM5XbFZ3Qoj9PLg3rgFXr0oJEhfh2tqUrhTJd13+i4/fek9zWicoshlwXg -# Fu002ZWBVzASEFuqED48qyulZ/2jGJBcta+Fdk2loP2K3oSj4PQQe1MzzVZO52AX -# O42MHlhm3SHo3/RhQ+I1A0Ny+9uAehkQH6LrxkrVNvZG4f0PAKMbqUcXG7xznKJ0 -# x0HYr5ayWGbHKZRcObU+/34ZpL9NrXOedVDXmSd2ylKSl/vvi1QwNJqXJl/+gJkQ -# EetqmHAUFQkFtemi8MUXQG2w/RDHXXwWAjE+qIDZLQ/k4z2Z216tWaR6RDKHGkwe -# CoDtQtzkHTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI -# 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/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNM -# MIICNAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn -# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdGMDAtMDVFMC1EOTQ3MSUwIwYDVQQD -# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQAE -# a0f118XHM/VNdqKBs4QXxNnN96CBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# 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 -# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7FC/rTAiGA8yMDI1MDgyMDIxNDIw -# NVoYDzIwMjUwODIxMjE0MjA1WjBzMDkGCisGAQQBhFkKBAExKzApMAoCBQDsUL+t -# AgEAMAYCAQACAXUwBwIBAAICEmAwCgIFAOxSES0CAQAwNgYKKwYBBAGEWQoEAjEo -# MCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG -# 9w0BAQsFAAOCAQEAAFfUmFg7TopiHwYAyNSdj/9lfUz3sPdNkAssAcxQCwvrIfYU -# /A3Y1tBWYTf67SZO9hg7beoGPtyqRCQyQFy55LK5lEmWfqni4vTs9c+S6DSe1/Xo -# zIGmS5zLZHQeiNja/NpS30nYTreRtzXNquGeFxb4oz8HmPFsmDWTBekS1ZAdJg8I -# jcqDL7HAj4NwuOJ0FAg0o8v2QJXLNTgNAmka474jB49ytuPDT8Ev6R0BWX0taGfl -# uNHbLGKX4E6rDY6JwO0vvVxCXrbWYGG01HjeRUBMpxzPMWZnJosyPRBREPLSniSJ -# 4xJxfMGTKhOyXOwIovOvRtfLjV2mpBY/GOqf9TGCBA0wggQJAgEBMIGTMHwxCzAJ +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExM1oXDTI1MTAyMjE4MzExM1owgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAACBte8UTiYI+wsAAEAAAIGMA0G -# CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJ -# KoZIhvcNAQkEMSIEIIkTXicfDaQ50/hczwrJ9zxcGTJx8kqVfIQ/SX6wA+MyMIH6 -# BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg4Oj1lIiRnp1W0pP4T+5nHZYDLsqJ -# czlHUkg6E0l/S9IwgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# 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 -# MAITMwAAAgbXvFE4mCPsLAABAAACBjAiBCB5j59J9YCRfW9AMotZe+f2/ZsoJqLd -# /XyKhqe0lMVrQjANBgkqhkiG9w0BAQsFAASCAgC2vuyXIU3BHrWTTbNJYX+WzXZ8 -# vG1zc/7ZZEb7VqO4AKkPviG4TMy023jAY7iJeVkcBdvDm2Pa6CNNVwTcrjMbyw1W -# c/dHhxPIsJkrIEP5lS+8q/DQdLVNws9wBK7yHGuoSojQrDY0HGGkRqW8U5OWfF9p -# 57EtVRHBqgjp4RU4u9z0tjD3HMQ3vJiO08IopRGcV1LYfB9K0y6U3C5Megf9RxAR -# OzExwFlI0uTCO7RTEBrrAYnVr/6SFcvFgO9G38i0wp4VWS47TNff8St6TaZAezTu -# DgsqLyMOB9mR5HgzxHYHqrLdWw8oPJXX2k9ZfEilLg4CWsIPlE3aWPFzdJHephgX -# H/5CiLfQDFnZyuuQS5PxWw7oe4xWSqg2GCbDF2tw4hy9hClQgBdgaRZyPWpBLKt0 -# iC9I+6tyf6/x8gwl25JzE1ZuCi5eYZfTln7lg0F0ljxybhaKq6M3RmiZoISDmtLG -# p4+14XJSHXene/HxP+N7Z5mBM1lQJsfSs0YC5/gtUTnbUFeRGZR/P3FfpLxZ83er -# CdLB8LdAxNTb51pLcwu61oKNOlxEKSvbxdeqpXO8vwdipjmQrfpMbn8QR0pYvfK/ -# vA8VA+2gEw4ujPYPNpgIrjogM3MNJ9Eun80nWOkd43tsXuFaBjUZK/1Fa1Sm6MJL -# rzD5DxVlF6HvHA9NRQ== +# MDANBgkqhkiG9w0BAQsFAAIFAOyHEVEwIhgPMjAyNTEwMDEwMjMyNDlaGA8yMDI1 +# MTAwMjAyMzI0OVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcRUQIBADAKAgEA +# AgIC4QIB/zAHAgEAAgISTDAKAgUA7Ihi0QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQB2rJUBbV82zv/fG68I5fhMRRSkgirfFrnlWvW6RfzPd+5iYKdth6dU +# 6IOUUkXT8dO0qMuoHqkbT04FjLzmTDVMz/HkKyWOnfzbgSfBdr627tuQfCEGAwNV +# ucTR8DvaCruh9rBA7ZrkdmVxSbNWAKHET4DRUNE04kCzDtcJRlH+6DET6vv0aaWh +# 8jP2P7qVYhNnf2EbzfEphwGpR2qf12umLBqw3UuOLP409MRmZbnWF7ektopLFB0Q +# q2MmM3MvEuHDKHeP9zk2uDYd/JBwf4FNbMFJE/290pXYfcRhctqSoSE6hLmab8Cb +# xUvtPV6BaJ52RwxeSWsAM3GSZBGPrS0IMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgEmeF5oaa0lat8s66k9I6ahFYw/sboKYMj6AsWdn7CokwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA52wKr/KCFlVNYiWsCLsB4qhjEYEP3xHqY +# qDu1SSTlGDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+8vLbDdn5TCVAAEAAAH7MCIEICnkwtMY6H2GmiCyEEz1OMgXS5ZXQyQ7h2mA +# fwdrbCjpMA0GCSqGSIb3DQEBCwUABIICABJYVuOYY/FMZA+QTn5JWEO958iX7TnK +# ikVBtXDVT/BuDoA3Hd83YiUbf+NHgqQG1gPSRrF/T0F95JYEXh6dJAYQP2nAbna8 +# lYhljI26hhfaicf/RUxZZawTPCtm7ArQgtxlBh21J4tvfiaQJLGrAeLcsXPWDpXP +# uGzujnhPxFXWWUveWyYco8QRWLXXP6Geq6UxjfnxZooEbQ//Tw9TC/wOtyD/1Y5G +# gpFqdOYmRR5EamDMS+PI7oK4nfcfiz7EcslzDHcxw4VxDay0nEq4dMaNxqvnEu4v +# kaxHU2m12RNO8VZ4mbYCMLL0GQ7f4KiIqf0V+faAVBhLXUxJxWRt1aC8jtg5cuWg +# 3KqzG9ZB8CikzH4ufED8qrmm9UDdUN4ZK9XYm5oEAtAwZnTgVwsNT19dRErU5wMK +# O9M4NFaGRD2k4KpXn7ogwMyavCthN6YNO7r+Pud/31NnsFdpH+xomEvZR48dzVkY +# i6YsoxiIMxwfU0aTp6W/Sr3SAS1n84pOXMNb+93m2VxiUUV/ZCgdUWxxkgb5yhTg +# rNMaS2BJXnQu9AK34SWWLdyzethKbzK/iii14nZjeBbbhLNTNkqMeFrpc7HMso/Q +# WO0e1BtDnKWP7sCb1VLCXUkgaB93SZHV+NFtr/KzkA8wK5G7RqdlkGkHB8lSsLFr +# s50HQ1MxRiV4 # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 new file mode 100644 index 000000000000..69f91f7186eb --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 @@ -0,0 +1,260 @@ +#Check for the source module - Common Denominator +$moduleInfo = Get-Module -name "CommonDenominator" +#Check for the cmdlet +if($moduleInfo -ne $null) { +$dmsIdentifier = Get-command "Get-ClientType" -module "CommonDenominator" -ErrorAction SilentlyContinue +} +if($dmsIdentifier -ne $null) { +$isDms = & Get-ClientType + +if($isDms -eq "DMS") { + $env:MSTeamsContextInternal = "IsOCEModule" +} + +} +if($PSEdition -ne 'Desktop') +{ + Import-Module $('{0}\netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) + if ($env:MSTeamsContextInternal -ne "IsOCEModule") { + Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) + } + else + { + Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) + } + Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) + +} +else +{ + Import-Module $('{0}\net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) + [Reflection.Assembly]::Loadfrom($('{0}\net472\Newtonsoft.Json.dll' -f $PSScriptRoot)) + if ($env:MSTeamsContextInternal -ne "IsOCEModule") { + Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) + } + else + { + Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) + } + Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) +} +Import-Module $('{0}\Microsoft.Teams.Policy.Administration.psd1' -f $PSScriptRoot) +Import-Module $('{0}\Microsoft.Teams.ConfigAPI.Cmdlets.psd1' -f $PSScriptRoot) +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJponIg6/1vb48 +# stXuS4z8oBYcN1DNZwuhwmt7j7P5CaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIADB +# pasuVHSfoJTNR02qga8z3vkaj9V4PoBJXQ16dJ5RMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAUCezCbF74ISaWt46BJFpza6IglV2oUrfAu7c +# DKwuwxT1Abbxm/kSmf82Y6ykKNYKaNYQUIXk0XkqiZtytafGatB4/xvAWTV249Er +# X+DjrqkIyOCOeybGoEA07cZHJPm+g4odBbOMFDUXcu4F0Yla1G2moY3mzouXqPEd +# FD8Wrj9U4tyHdZoTntqHr/x/76G5a75PLkPFAtNo69QBDhq6mhFXSduE73OoKGdf +# l5U5Nh9Xeoyq9KbGulyF/2W2u5gY68zS5Ci15ra+Zu4n2A+DQ8GIdlVFeUvoenwb +# 8sXj/1wJ9mocwQ2M4P6W2Axu0g8AQPKjbXVZEulEN3xQ54ETAqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBMvtJAAlMM5GjgeF5DL27oDcouSzPvyXQ/ +# bQU0xQ/8owIGaKOvjMMzGBMyMDI1MTAwMTA4MzM0NC42NDNaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgpWAlZNXWAN7nQT/FGDrJJdqMmFbmsK+cS4fUtV0o9MMwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAFosbXb3BCNc+HiV5DVrFRw8TzmyDPNH +# r5VDxzMNKc0M1DPf/YBsAA6Mrl8PK+1IY9tZa0+EEfoGNDLSssyIOuPgqmoADTMl +# 7PyWdAQkwjmgO1H6pPafJP93PPTKI2PmVaqeyQyqlaCR+nuLl4/upUI+p9eEVWuu +# GqyOMdABvzC9x9WChQoWvnwMUGeBJpAD90nWHH0nPYNDb2BVuTGB9yMNwK7Dxrzj +# Eh5ZcSvkUE4a5ZqbL074lEAMvso4TaGsdLwOUryls9RJO+GLMSK5QS4/Uj5YrZu3 +# 4VVTNgMzGWSzSzFXtPF+qGFwyZJmGcl4clFaHIXzQuS/SVP+REBKbNJ45Qd5E2+i +# Ql/j3fvg4Ft7LhRmdkWZd1omPvTrOkiIYM4b09yEGvZKYFR86hgaG/FakeRZ7eGL +# UTjBJn26KNU1GuI0ywx80FpH72N5n9+CMWnDttwPv6bKcg+Ntx9rKAaym/WKdoJh +# majmmsyNNBlYRQMoOjyXkSQIeQ/nacPY+v0SvEtkfEtDr5tOTwiTymOoSsMNyHzr +# L6CkN69yYgHI9IU6RCQlsgmA52SxdGDcjUO3lIHZ1YhdH7tk8hks2hzaCkidY20e +# RWMUFxrD4h6XxU9YPuDX4AnCkLIkwVnapn3GU+PjrYL6uPyXAVv0i9DgpUtgIpI8 +# kr6V7l86zYBm +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/PSGetModuleInfo.xml b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml similarity index 60% rename from Modules/MicrosoftTeams/7.3.1/PSGetModuleInfo.xml rename to Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml index 5244a5d8c5d8..536164676025 100644 --- a/Modules/MicrosoftTeams/7.3.1/PSGetModuleInfo.xml +++ b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml @@ -7,13 +7,13 @@ MicrosoftTeams - 7.3.1 + 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-08-21T07:52:37+02:00
+
2025-10-06T13:29:35+02:00
https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt @@ -41,374 +41,114 @@ - Cmdlet + Function - Add-TeamChannelUser - Add-TeamUser - Connect-MicrosoftTeams - Disconnect-MicrosoftTeams - Set-TeamsEnvironmentConfig - Clear-TeamsEnvironmentConfig - Get-AssociatedTeam - Get-MultiGeoRegion - Get-Operation - Get-SharedWithTeam - Get-SharedWithTeamUser - Get-Team - Get-TeamAllChannel - Get-TeamChannel - Get-TeamChannelUser - Get-TeamIncomingChannel - Get-TeamsApp - Get-TeamUser - Get-M365TeamsApp - Get-AllM365TeamsApps - Get-M365UnifiedTenantSettings - Get-M365UnifiedCustomPendingApps - Get-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-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-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-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-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 - - - - - 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-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-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 + Clear-CsOnlineTelephoneNumberOrder + Complete-CsOnlineTelephoneNumberOrder + Disable-CsOnlineSipDomain + Enable-CsOnlineSipDomain + Export-CsAcquiredPhoneNumber + Export-CsAutoAttendantHolidays + Export-CsOnlineAudioFile + Find-CsGroup + Find-CsOnlineApplicationInstance + Get-CsApplicationAccessPolicy + Get-CsApplicationMeetingConfiguration + Get-CsAutoAttendant + Get-CsAutoAttendantHolidays + Get-CsAutoAttendantStatus + Get-CsAutoAttendantSupportedLanguage + Get-CsAutoAttendantSupportedTimeZone + Get-CsAutoAttendantTenantInformation + Get-CsBatchPolicyAssignmentOperation + Get-CsCallingLineIdentity + Get-CsCallQueue + Get-CsCloudCallDataConnection + Get-CsEffectiveTenantDialPlan + Get-CsExportAcquiredPhoneNumberStatus + Get-CsGroupPolicyAssignment + Get-CsHybridTelephoneNumber + Get-CsInboundBlockedNumberPattern + Get-CsInboundExemptNumberPattern + Get-CsMainlineAttendantAppointmentBookingFlow + Get-CsMainlineAttendantFlow + Get-CsMainlineAttendantQuestionAnswerFlow + Get-CsMeetingMigrationStatus + Get-CsOnlineApplicationInstance + Get-CsOnlineApplicationInstanceAssociation + Get-CsOnlineApplicationInstanceAssociationStatus + Get-CsOnlineAudioConferencingRoutingPolicy + Get-CsOnlineAudioFile + Get-CsOnlineDialInConferencingBridge + Get-CsOnlineDialInConferencingLanguagesSupported + Get-CsOnlineDialinConferencingPolicy + Get-CsOnlineDialInConferencingServiceNumber + Get-CsOnlineDialinConferencingTenantConfiguration + Get-CsOnlineDialInConferencingTenantSettings + Get-CsOnlineDialInConferencingUser + Get-CsOnlineDialOutPolicy + Get-CsOnlineDirectoryTenant + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + Get-CsOnlineLisCivicAddress + Get-CsOnlineLisLocation + Get-CsOnlineLisPort + Get-CsOnlineLisSubnet + Get-CsOnlineLisSwitch + Get-CsOnlineLisWirelessAccessPoint + Get-CsOnlinePSTNGateway + Get-CsOnlinePstnUsage + Get-CsOnlineSchedule + Get-CsOnlineSipDomain + Get-CsOnlineTelephoneNumber + Get-CsOnlineTelephoneNumberCountry + Get-CsOnlineTelephoneNumberOrder + Get-CsOnlineTelephoneNumberType + Get-CsOnlineUser + Get-CsOnlineVoicemailUserSettings + Get-CsOnlineVoiceRoute + Get-CsOnlineVoiceRoutingPolicy + Get-CsOnlineVoiceUser + Get-CsPhoneNumberAssignment + Get-CsPhoneNumberPolicyAssignment + Get-CsPhoneNumberTag + Get-CsPolicyPackage + Get-CsSdgBulkSignInRequestStatus + Get-CsSDGBulkSignInRequestsSummary + Get-CsTeamsAudioConferencingPolicy + Get-CsTeamsCallParkPolicy + Get-CsTeamsCortanaPolicy + Get-CsTeamsEmergencyCallRoutingPolicy + Get-CsTeamsEnhancedEncryptionPolicy + Get-CsTeamsGuestCallingConfiguration + Get-CsTeamsGuestMeetingConfiguration + Get-CsTeamsGuestMessagingConfiguration + Get-CsTeamsIPPhonePolicy + Get-CsTeamsMediaLoggingPolicy + Get-CsTeamsMeetingBroadcastConfiguration + Get-CsTeamsMeetingBroadcastPolicy + Get-CsTeamsMigrationConfiguration + Get-CsTeamsMobilityPolicy + Get-CsTeamsNetworkRoamingPolicy + Get-CsTeamsRoomVideoTeleConferencingPolicy + Get-CsTeamsSettingsCustomApp + Get-CsTeamsShiftsAppPolicy + Get-CsTeamsShiftsConnectionConnector + Get-CsTeamsShiftsConnectionErrorReport + Get-CsTeamsShiftsConnection + Get-CsTeamsShiftsConnectionInstance + Get-CsTeamsShiftsConnectionOperation + Get-CsTeamsShiftsConnectionSyncResult + Get-CsTeamsShiftsConnectionTeamMap + Get-CsTeamsShiftsConnectionWfmTeam + Get-CsTeamsShiftsConnectionWfmUser + Get-CsTeamsSurvivableBranchAppliance + Get-CsTeamsSurvivableBranchAppliancePolicy + Get-CsTeamsTargetingPolicy + Get-CsTeamsTranslationRule + Get-CsTeamsUnassignedNumberTreatment + Get-CsTeamsUpgradePolicy Get-CsTeamsVdiPolicy Get-CsTeamsVideoInteropServicePolicy Get-CsTeamsWorkLoadPolicy @@ -432,7 +172,7 @@ Grant-CsApplicationAccessPolicy Get-CsComplianceRecordingForCallQueueTemplate Get-CsSharedCallQueueHistoryTemplate - Get-CsMainlineAttendantFlow + Get-CsTagsTemplate Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment @@ -490,6 +230,8 @@ New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy @@ -535,9 +277,9 @@ New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag New-CsSharedCallQueueHistoryTemplate - New-CsMainlineAttendantAppointmentBookingFlow - New-CsMainlineAttendantQuestionAnswerFlow Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant @@ -548,6 +290,8 @@ Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile @@ -596,6 +340,7 @@ Remove-CsUserLicenseGracePeriod Remove-CsVideoInteropServiceProvider Remove-CsComplianceRecordingForCallQueueTemplate + Remove-CsTagsTemplate Remove-CsSharedCallQueueHistoryTemplate Set-CsApplicationAccessPolicy Set-CsApplicationMeetingConfiguration @@ -604,6 +349,8 @@ Set-CsCallQueue Set-CsInboundBlockedNumberPattern Set-CsInboundExemptNumberPattern + Set-CsMainlineAttendantAppointmentBookingFlow + Set-CsMainlineAttendantQuestionAnswerFlow Set-CsOnlineApplicationInstance Set-CsOnlineAudioConferencingRoutingPolicy Set-CsOnlineDialInConferencingBridge @@ -627,6 +374,7 @@ Set-CsOnlineVoiceRoutingPolicy Set-CsOnlineVoiceUser Set-CsPhoneNumberAssignment + Set-CsPhoneNumberPolicyAssignment Set-CsPhoneNumberTag Set-CsTeamsAudioConferencingPolicy Set-CsTeamsCallParkPolicy @@ -667,6 +415,7 @@ Set-CsUserCallingSettings Set-CsVideoInteropServiceProvider Set-CsComplianceRecordingForCallQueueTemplate + Set-CsTagsTemplate Set-CsSharedCallQueueHistoryTemplate Start-CsExMeetingMigration Sync-CsOnlineApplicationInstance @@ -715,31 +464,25 @@ Invoke-CsMsodsSync Get-CsUssUserSettings Set-CsUssUserSettings - Get-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberPolicyAssignment Invoke-CsRehomeuser Set-CsNotifyCache - Workflow - + RoleCapability + - - RoleCapability - - DscResource - + Command - + Add-TeamChannelUser @@ -759,6 +502,7 @@ Get-TeamChannelUser Get-TeamIncomingChannel Get-TeamsApp + Get-TeamsArtifacts Get-TeamUser Get-M365TeamsApp Get-AllM365TeamsApps @@ -808,6 +552,8 @@ Get-CsTeamsMeetingConfiguration Get-CsTeamsWorkLocationDetectionPolicy Get-CsTeamsRecordingRollOutPolicy + Get-CsTeamsRemoteLogCollectionConfiguration + Get-CsTeamsRemoteLogCollectionDevice Get-CsTeamsEducationConfiguration Get-CsTeamsBYODAndDesksPolicy Get-CsTeamsNotificationAndFeedsPolicy @@ -871,6 +617,7 @@ New-CsTeamsComplianceRecordingPairedApplication New-CsTeamsWorkLocationDetectionPolicy New-CsTeamsRecordingRollOutPolicy + New-CsTeamsRemoteLogCollectionDevice New-CsCustomPrompt New-CsCustomPromptPackage New-CsTeamsShiftsPolicy @@ -915,6 +662,7 @@ Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLocationDetectionPolicy Remove-CsTeamsRecordingRollOutPolicy + Remove-CsTeamsRemoteLogCollectionDevice Remove-CsTeamsBYODAndDesksPolicy Remove-CsTeamsNotificationAndFeedsPolicy Remove-CsTeamsPersonalAttendantPolicy @@ -965,6 +713,7 @@ Set-CsTeamsMeetingConfiguration Set-CsTeamsVdiPolicy Set-CsTeamsWorkLocationDetectionPolicy + Set-CsTeamsRemoteLogCollectionDevice Set-CsTeamsRecordingRollOutPolicy Set-CsTeamsCustomBannerText Set-CsTeamsBYODAndDesksPolicy @@ -1025,6 +774,9 @@ Get-CsHybridTelephoneNumber Get-CsInboundBlockedNumberPattern Get-CsInboundExemptNumberPattern + Get-CsMainlineAttendantAppointmentBookingFlow + Get-CsMainlineAttendantFlow + Get-CsMainlineAttendantQuestionAnswerFlow Get-CsMeetingMigrationStatus Get-CsOnlineApplicationInstance Get-CsOnlineApplicationInstanceAssociation @@ -1061,6 +813,7 @@ Get-CsOnlineVoiceRoutingPolicy Get-CsOnlineVoiceUser Get-CsPhoneNumberAssignment + Get-CsPhoneNumberPolicyAssignment Get-CsPhoneNumberTag Get-CsPolicyPackage Get-CsSdgBulkSignInRequestStatus @@ -1121,7 +874,7 @@ Grant-CsApplicationAccessPolicy Get-CsComplianceRecordingForCallQueueTemplate Get-CsSharedCallQueueHistoryTemplate - Get-CsMainlineAttendantFlow + Get-CsTagsTemplate Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment @@ -1179,6 +932,8 @@ New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy @@ -1224,9 +979,9 @@ New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag New-CsSharedCallQueueHistoryTemplate - New-CsMainlineAttendantAppointmentBookingFlow - New-CsMainlineAttendantQuestionAnswerFlow Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant @@ -1237,6 +992,8 @@ Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile @@ -1274,147 +1031,424 @@ 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-CsSharedCallQueueHistoryTemplate - Set-CsApplicationAccessPolicy - Set-CsApplicationMeetingConfiguration - Set-CsAutoAttendant - Set-CsCallingLineIdentity - Set-CsCallQueue - Set-CsInboundBlockedNumberPattern - Set-CsInboundExemptNumberPattern - 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-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 + 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-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-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 - Get-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberPolicyAssignment - Invoke-CsRehomeuser - Set-CsNotifyCache + 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.3.1-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Fixes New-Team cmdlet for EDU teams._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 + **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 @@ -1431,23 +1465,25 @@ Microsoft Corporation. All rights reserved. Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview False - **7.3.1-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Fixes New-Team cmdlet for EDU teams._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 + **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 - False - 180383 - 14181568 - 18367067 - 21-08-2025 07:52:37 +02:00 - 21-08-2025 07:52:37 +02:00 - 02-10-2025 21:40:00 +02:00 - Office365 MicrosoftTeams Teams PSModule PSEdition_Core PSEdition_Desktop PSCmdlet_Add-TeamChannelUser PSCommand_Add-TeamChannelUser PSCmdlet_Add-TeamUser PSCommand_Add-TeamUser PSCmdlet_Connect-MicrosoftTeams PSCommand_Connect-MicrosoftTeams PSCmdlet_Disconnect-MicrosoftTeams PSCommand_Disconnect-MicrosoftTeams PSCmdlet_Set-TeamsEnvironmentConfig PSCommand_Set-TeamsEnvironmentConfig PSCmdlet_Clear-TeamsEnvironmentConfig PSCommand_Clear-TeamsEnvironmentConfig PSCmdlet_Get-AssociatedTeam PSCommand_Get-AssociatedTeam PSCmdlet_Get-MultiGeoRegion PSCommand_Get-MultiGeoRegion PSCmdlet_Get-Operation PSCommand_Get-Operation PSCmdlet_Get-SharedWithTeam PSCommand_Get-SharedWithTeam PSCmdlet_Get-SharedWithTeamUser PSCommand_Get-SharedWithTeamUser PSCmdlet_Get-Team PSCommand_Get-Team PSCmdlet_Get-TeamAllChannel PSCommand_Get-TeamAllChannel PSCmdlet_Get-TeamChannel PSCommand_Get-TeamChannel PSCmdlet_Get-TeamChannelUser PSCommand_Get-TeamChannelUser PSCmdlet_Get-TeamIncomingChannel PSCommand_Get-TeamIncomingChannel PSCmdlet_Get-TeamsApp PSCommand_Get-TeamsApp PSCmdlet_Get-TeamUser PSCommand_Get-TeamUser PSCmdlet_Get-M365TeamsApp PSCommand_Get-M365TeamsApp PSCmdlet_Get-AllM365TeamsApps PSCommand_Get-AllM365TeamsApps PSCmdlet_Get-M365UnifiedTenantSettings PSCommand_Get-M365UnifiedTenantSettings PSCmdlet_Get-M365UnifiedCustomPendingApps PSCommand_Get-M365UnifiedCustomPendingApps PSCmdlet_Get-CsTeamsAcsFederationConfiguration PSCommand_Get-CsTeamsAcsFederationConfiguration PSCmdlet_Get-CsTeamsMessagingPolicy PSCommand_Get-CsTeamsMessagingPolicy PSCmdlet_Get-CsTeamsMeetingPolicy PSCommand_Get-CsTeamsMeetingPolicy PSCmdlet_Get-CsOnlineVoicemailPolicy PSCommand_Get-CsOnlineVoicemailPolicy PSCmdlet_Get-CsOnlineVoicemailValidationConfiguration PSCommand_Get-CsOnlineVoicemailValidationConfiguration PSCmdlet_Get-CsTeamsAIPolicy PSCommand_Get-CsTeamsAIPolicy PSCmdlet_Get-CsTeamsFeedbackPolicy PSCommand_Get-CsTeamsFeedbackPolicy PSCmdlet_Get-CsTeamsUpdateManagementPolicy PSCommand_Get-CsTeamsUpdateManagementPolicy PSCmdlet_Get-CsTeamsChannelsPolicy PSCommand_Get-CsTeamsChannelsPolicy PSCmdlet_Get-CsTeamsMeetingBrandingPolicy PSCommand_Get-CsTeamsMeetingBrandingPolicy PSCmdlet_Get-CsTeamsEmergencyCallingPolicy PSCommand_Get-CsTeamsEmergencyCallingPolicy PSCmdlet_Get-CsTeamsCallHoldPolicy PSCommand_Get-CsTeamsCallHoldPolicy PSCmdlet_Get-CsTeamsMessagingConfiguration PSCommand_Get-CsTeamsMessagingConfiguration PSCmdlet_Get-CsTeamsVoiceApplicationsPolicy PSCommand_Get-CsTeamsVoiceApplicationsPolicy PSCmdlet_Get-CsTeamsEventsPolicy PSCommand_Get-CsTeamsEventsPolicy PSCmdlet_Get-CsTeamsExternalAccessConfiguration PSCommand_Get-CsTeamsExternalAccessConfiguration PSCmdlet_Get-CsTeamsFilesPolicy PSCommand_Get-CsTeamsFilesPolicy PSCmdlet_Get-CsTeamsCallingPolicy PSCommand_Get-CsTeamsCallingPolicy PSCmdlet_Get-CsTeamsClientConfiguration PSCommand_Get-CsTeamsClientConfiguration PSCmdlet_Get-CsExternalAccessPolicy PSCommand_Get-CsExternalAccessPolicy PSCmdlet_Get-CsTeamsAppPermissionPolicy PSCommand_Get-CsTeamsAppPermissionPolicy PSCmdlet_Get-CsTeamsAppSetupPolicy PSCommand_Get-CsTeamsAppSetupPolicy PSCmdlet_Get-CsTeamsFirstPartyMeetingTemplateConfiguration PSCommand_Get-CsTeamsFirstPartyMeetingTemplateConfiguration PSCmdlet_Get-CsTeamsMeetingTemplatePermissionPolicy PSCommand_Get-CsTeamsMeetingTemplatePermissionPolicy PSCmdlet_Get-CsLocationPolicy PSCommand_Get-CsLocationPolicy PSCmdlet_Get-CsTeamsShiftsPolicy PSCommand_Get-CsTeamsShiftsPolicy PSCmdlet_Get-CsTenantNetworkSite PSCommand_Get-CsTenantNetworkSite PSCmdlet_Get-CsTeamsCarrierEmergencyCallRoutingPolicy PSCommand_Get-CsTeamsCarrierEmergencyCallRoutingPolicy PSCmdlet_Get-CsTeamsMeetingTemplateConfiguration PSCommand_Get-CsTeamsMeetingTemplateConfiguration PSCmdlet_Get-CsTeamsVirtualAppointmentsPolicy PSCommand_Get-CsTeamsVirtualAppointmentsPolicy PSCmdlet_Get-CsTeamsSharedCallingRoutingPolicy PSCommand_Get-CsTeamsSharedCallingRoutingPolicy PSCmdlet_Get-CsTeamsTemplatePermissionPolicy PSCommand_Get-CsTeamsTemplatePermissionPolicy PSCmdlet_Get-CsTeamsComplianceRecordingPolicy PSCommand_Get-CsTeamsComplianceRecordingPolicy PSCmdlet_Get-CsTeamsComplianceRecordingApplication PSCommand_Get-CsTeamsComplianceRecordingApplication PSCmdlet_Get-CsTeamsEducationAssignmentsAppPolicy PSCommand_Get-CsTeamsEducationAssignmentsAppPolicy PSCmdlet_Get-CsTeamsUpgradeConfiguration PSCommand_Get-CsTeamsUpgradeConfiguration PSCmdlet_Get-CsTeamsAudioConferencingCustomPromptsConfiguration PSCommand_Get-CsTeamsAudioConferencingCustomPromptsConfiguration PSCmdlet_Get-CsTeamsSipDevicesConfiguration PSCommand_Get-CsTeamsSipDevicesConfiguration PSCmdlet_Get-CsTeamsCustomBannerText PSCommand_Get-CsTeamsCustomBannerText PSCmdlet_Get-CsTeamsVdiPolicy PSCommand_Get-CsTeamsVdiPolicy PSCmdlet_Get-CsTeamsMediaConnectivityPolicy PSCommand_Get-CsTeamsMediaConnectivityPolicy PSCmdlet_Get-CsTeamsMeetingConfiguration PSCommand_Get-CsTeamsMeetingConfiguration PSCmdlet_Get-CsTeamsWorkLocationDetectionPolicy PSCommand_Get-CsTeamsWorkLocationDetectionPolicy PSCmdlet_Get-CsTeamsRecordingRollOutPolicy PSCommand_Get-CsTeamsRecordingRollOutPolicy PSCmdlet_Get-CsTeamsEducationConfiguration PSCommand_Get-CsTeamsEducationConfiguration PSCmdlet_Get-CsTeamsBYODAndDesksPolicy PSCommand_Get-CsTeamsBYODAndDesksPolicy PSCmdlet_Get-CsTeamsNotificationAndFeedsPolicy PSCommand_Get-CsTeamsNotificationAndFeedsPolicy PSCmdlet_Get-CsTeamsMultiTenantOrganizationConfiguration PSCommand_Get-CsTeamsMultiTenantOrganizationConfiguration PSCmdlet_Get-CsTeamsPersonalAttendantPolicy PSCommand_Get-CsTeamsPersonalAttendantPolicy PSCmdlet_Get-CsPrivacyConfiguration PSCommand_Get-CsPrivacyConfiguration PSCmdlet_Grant-CsTeamsAIPolicy PSCommand_Grant-CsTeamsAIPolicy PSCmdlet_Grant-CsTeamsMeetingBrandingPolicy PSCommand_Grant-CsTeamsMeetingBrandingPolicy PSCmdlet_Grant-CsExternalAccessPolicy PSCommand_Grant-CsExternalAccessPolicy PSCmdlet_Grant-CsTeamsCallingPolicy PSCommand_Grant-CsTeamsCallingPolicy PSCmdlet_Grant-CsTeamsAppPermissionPolicy PSCommand_Grant-CsTeamsAppPermissionPolicy PSCmdlet_Grant-CsTeamsAppSetupPolicy PSCommand_Grant-CsTeamsAppSetupPolicy PSCmdlet_Grant-CsTeamsEventsPolicy PSCommand_Grant-CsTeamsEventsPolicy PSCmdlet_Grant-CsTeamsFilesPolicy PSCommand_Grant-CsTeamsFilesPolicy PSCmdlet_Grant-CsTeamsMediaConnectivityPolicy PSCommand_Grant-CsTeamsMediaConnectivityPolicy PSCmdlet_Grant-CsTeamsMeetingTemplatePermissionPolicy PSCommand_Grant-CsTeamsMeetingTemplatePermissionPolicy PSCmdlet_Grant-CsTeamsCarrierEmergencyCallRoutingPolicy PSCommand_Grant-CsTeamsCarrierEmergencyCallRoutingPolicy PSCmdlet_Grant-CsTeamsVirtualAppointmentsPolicy PSCommand_Grant-CsTeamsVirtualAppointmentsPolicy PSCmdlet_Grant-CsTeamsSharedCallingRoutingPolicy PSCommand_Grant-CsTeamsSharedCallingRoutingPolicy PSCmdlet_Grant-CsTeamsShiftsPolicy PSCommand_Grant-CsTeamsShiftsPolicy PSCmdlet_Grant-CsTeamsRecordingRollOutPolicy PSCommand_Grant-CsTeamsRecordingRollOutPolicy PSCmdlet_Grant-CsTeamsVdiPolicy PSCommand_Grant-CsTeamsVdiPolicy PSCmdlet_Grant-CsTeamsWorkLocationDetectionPolicy PSCommand_Grant-CsTeamsWorkLocationDetectionPolicy PSCmdlet_Grant-CsTeamsBYODAndDesksPolicy PSCommand_Grant-CsTeamsBYODAndDesksPolicy PSCmdlet_Grant-CsTeamsPersonalAttendantPolicy PSCommand_Grant-CsTeamsPersonalAttendantPolicy PSCmdlet_New-Team PSCommand_New-Team PSCmdlet_New-TeamChannel PSCommand_New-TeamChannel PSCmdlet_New-TeamsApp PSCommand_New-TeamsApp PSCmdlet_New-CsTeamsAIPolicy PSCommand_New-CsTeamsAIPolicy PSCmdlet_New-CsTeamsMessagingPolicy PSCommand_New-CsTeamsMessagingPolicy PSCmdlet_New-CsTeamsMeetingPolicy PSCommand_New-CsTeamsMeetingPolicy PSCmdlet_New-CsOnlineVoicemailPolicy PSCommand_New-CsOnlineVoicemailPolicy PSCmdlet_New-CsTeamsFeedbackPolicy PSCommand_New-CsTeamsFeedbackPolicy PSCmdlet_New-CsTeamsUpdateManagementPolicy PSCommand_New-CsTeamsUpdateManagementPolicy PSCmdlet_New-CsTeamsChannelsPolicy PSCommand_New-CsTeamsChannelsPolicy PSCmdlet_New-CsTeamsFilesPolicy PSCommand_New-CsTeamsFilesPolicy PSCmdlet_New-CsTeamsMediaConnectivityPolicy PSCommand_New-CsTeamsMediaConnectivityPolicy PSCmdlet_New-CsTeamsMeetingBrandingTheme PSCommand_New-CsTeamsMeetingBrandingTheme PSCmdlet_New-CsTeamsMeetingBackgroundImage PSCommand_New-CsTeamsMeetingBackgroundImage PSCmdlet_New-CsTeamsNdiAssuranceSlate PSCommand_New-CsTeamsNdiAssuranceSlate PSCmdlet_New-CsTeamsMeetingBrandingPolicy PSCommand_New-CsTeamsMeetingBrandingPolicy PSCmdlet_New-CsTeamsEmergencyCallingPolicy PSCommand_New-CsTeamsEmergencyCallingPolicy PSCmdlet_New-CsTeamsEmergencyCallingExtendedNotification PSCommand_New-CsTeamsEmergencyCallingExtendedNotification PSCmdlet_New-CsTeamsCallHoldPolicy PSCommand_New-CsTeamsCallHoldPolicy PSCmdlet_New-CsTeamsVoiceApplicationsPolicy PSCommand_New-CsTeamsVoiceApplicationsPolicy PSCmdlet_New-CsTeamsEventsPolicy PSCommand_New-CsTeamsEventsPolicy PSCmdlet_New-CsTeamsCallingPolicy PSCommand_New-CsTeamsCallingPolicy PSCmdlet_New-CsExternalAccessPolicy PSCommand_New-CsExternalAccessPolicy PSCmdlet_New-CsTeamsAppPermissionPolicy PSCommand_New-CsTeamsAppPermissionPolicy PSCmdlet_New-CsTeamsAppSetupPolicy PSCommand_New-CsTeamsAppSetupPolicy PSCmdlet_New-CsTeamsMeetingTemplatePermissionPolicy PSCommand_New-CsTeamsMeetingTemplatePermissionPolicy PSCmdlet_New-CsLocationPolicy PSCommand_New-CsLocationPolicy PSCmdlet_New-CsTeamsCarrierEmergencyCallRoutingPolicy PSCommand_New-CsTeamsCarrierEmergencyCallRoutingPolicy PSCmdlet_New-CsTeamsHiddenMeetingTemplate PSCommand_New-CsTeamsHiddenMeetingTemplate PSCmdlet_New-CsTeamsVirtualAppointmentsPolicy PSCommand_New-CsTeamsVirtualAppointmentsPolicy PSCmdlet_New-CsTeamsSharedCallingRoutingPolicy PSCommand_New-CsTeamsSharedCallingRoutingPolicy PSCmdlet_New-CsTeamsHiddenTemplate PSCommand_New-CsTeamsHiddenTemplate PSCmdlet_New-CsTeamsTemplatePermissionPolicy PSCommand_New-CsTeamsTemplatePermissionPolicy PSCmdlet_New-CsTeamsComplianceRecordingPolicy PSCommand_New-CsTeamsComplianceRecordingPolicy PSCmdlet_New-CsTeamsComplianceRecordingApplication PSCommand_New-CsTeamsComplianceRecordingApplication PSCmdlet_New-CsTeamsComplianceRecordingPairedApplication PSCommand_New-CsTeamsComplianceRecordingPairedApplication PSCmdlet_New-CsTeamsWorkLocationDetectionPolicy PSCommand_New-CsTeamsWorkLocationDetectionPolicy PSCmdlet_New-CsTeamsRecordingRollOutPolicy PSCommand_New-CsTeamsRecordingRollOutPolicy PSCmdlet_New-CsCustomPrompt PSCommand_New-CsCustomPrompt PSCmdlet_New-CsCustomPromptPackage PSCommand_New-CsCustomPromptPackage PSCmdlet_New-CsTeamsShiftsPolicy PSCommand_New-CsTeamsShiftsPolicy PSCmdlet_New-CsTeamsCustomBannerText PSCommand_New-CsTeamsCustomBannerText PSCmdlet_New-CsTeamsVdiPolicy PSCommand_New-CsTeamsVdiPolicy PSCmdlet_New-CsTeamsBYODAndDesksPolicy PSCommand_New-CsTeamsBYODAndDesksPolicy PSCmdlet_New-CsTeamsPersonalAttendantPolicy PSCommand_New-CsTeamsPersonalAttendantPolicy PSCmdlet_Remove-SharedWithTeam PSCommand_Remove-SharedWithTeam PSCmdlet_Remove-Team PSCommand_Remove-Team PSCmdlet_Remove-TeamChannel PSCommand_Remove-TeamChannel PSCmdlet_Remove-TeamChannelUser PSCommand_Remove-TeamChannelUser PSCmdlet_Remove-TeamsApp PSCommand_Remove-TeamsApp PSCmdlet_Remove-TeamUser PSCommand_Remove-TeamUser PSCmdlet_Remove-CsTeamsAIPolicy PSCommand_Remove-CsTeamsAIPolicy PSCmdlet_Remove-CsTeamsMessagingPolicy PSCommand_Remove-CsTeamsMessagingPolicy PSCmdlet_Remove-CsTeamsMeetingPolicy PSCommand_Remove-CsTeamsMeetingPolicy PSCmdlet_Remove-CsOnlineVoicemailPolicy PSCommand_Remove-CsOnlineVoicemailPolicy PSCmdlet_Remove-CsTeamsFeedbackPolicy PSCommand_Remove-CsTeamsFeedbackPolicy PSCmdlet_Remove-CsTeamsFilesPolicy PSCommand_Remove-CsTeamsFilesPolicy PSCmdlet_Remove-CsTeamsUpdateManagementPolicy PSCommand_Remove-CsTeamsUpdateManagementPolicy PSCmdlet_Remove-CsTeamsChannelsPolicy PSCommand_Remove-CsTeamsChannelsPolicy PSCmdlet_Remove-CsTeamsMediaConnectivityPolicy PSCommand_Remove-CsTeamsMediaConnectivityPolicy PSCmdlet_Remove-CsTeamsMeetingBrandingPolicy PSCommand_Remove-CsTeamsMeetingBrandingPolicy PSCmdlet_Remove-CsTeamsEmergencyCallingPolicy PSCommand_Remove-CsTeamsEmergencyCallingPolicy PSCmdlet_Remove-CsTeamsCallHoldPolicy PSCommand_Remove-CsTeamsCallHoldPolicy PSCmdlet_Remove-CsTeamsVoiceApplicationsPolicy PSCommand_Remove-CsTeamsVoiceApplicationsPolicy PSCmdlet_Remove-CsTeamsEventsPolicy PSCommand_Remove-CsTeamsEventsPolicy PSCmdlet_Remove-CsTeamsCallingPolicy PSCommand_Remove-CsTeamsCallingPolicy PSCmdlet_Remove-CsExternalAccessPolicy PSCommand_Remove-CsExternalAccessPolicy PSCmdlet_Remove-CsTeamsAppPermissionPolicy PSCommand_Remove-CsTeamsAppPermissionPolicy PSCmdlet_Remove-CsTeamsAppSetupPolicy PSCommand_Remove-CsTeamsAppSetupPolicy PSCmdlet_Remove-CsTeamsMeetingTemplatePermissionPolicy PSCommand_Remove-CsTeamsMeetingTemplatePermissionPolicy PSCmdlet_Remove-CsLocationPolicy PSCommand_Remove-CsLocationPolicy PSCmdlet_Remove-CsTeamsCarrierEmergencyCallRoutingPolicy PSCommand_Remove-CsTeamsCarrierEmergencyCallRoutingPolicy PSCmdlet_Remove-CsTeamsVirtualAppointmentsPolicy PSCommand_Remove-CsTeamsVirtualAppointmentsPolicy PSCmdlet_Remove-CsTeamsSharedCallingRoutingPolicy PSCommand_Remove-CsTeamsSharedCallingRoutingPolicy PSCmdlet_Remove-CsTeamsTemplatePermissionPolicy PSCommand_Remove-CsTeamsTemplatePermissionPolicy PSCmdlet_Remove-CsTeamsComplianceRecordingPolicy PSCommand_Remove-CsTeamsComplianceRecordingPolicy PSCmdlet_Remove-CsTeamsComplianceRecordingApplication PSCommand_Remove-CsTeamsComplianceRecordingApplication PSCmdlet_Remove-CsTeamsShiftsPolicy PSCommand_Remove-CsTeamsShiftsPolicy PSCmdlet_Remove-CsTeamsCustomBannerText PSCommand_Remove-CsTeamsCustomBannerText PSCmdlet_Remove-CsTeamsVdiPolicy PSCommand_Remove-CsTeamsVdiPolicy PSCmdlet_Remove-CsTeamsWorkLocationDetectionPolicy PSCommand_Remove-CsTeamsWorkLocationDetectionPolicy PSCmdlet_Remove-CsTeamsRecordingRollOutPolicy PSCommand_Remove-CsTeamsRecordingRollOutPolicy PSCmdlet_Remove-CsTeamsBYODAndDesksPolicy PSCommand_Remove-CsTeamsBYODAndDesksPolicy PSCmdlet_Remove-CsTeamsNotificationAndFeedsPolicy PSCommand_Remove-CsTeamsNotificationAndFeedsPolicy PSCmdlet_Remove-CsTeamsPersonalAttendantPolicy PSCommand_Remove-CsTeamsPersonalAttendantPolicy PSCmdlet_Set-Team PSCommand_Set-Team PSCmdlet_Set-TeamArchivedState PSCommand_Set-TeamArchivedState PSCmdlet_Set-TeamChannel PSCommand_Set-TeamChannel PSCmdlet_Set-TeamPicture PSCommand_Set-TeamPicture PSCmdlet_Set-TeamsApp PSCommand_Set-TeamsApp PSCmdlet_Set-CsTeamsAcsFederationConfiguration PSCommand_Set-CsTeamsAcsFederationConfiguration PSCmdlet_Set-CsTeamsAIPolicy PSCommand_Set-CsTeamsAIPolicy PSCmdlet_Set-CsTeamsMessagingPolicy PSCommand_Set-CsTeamsMessagingPolicy PSCmdlet_Set-CsTeamsMeetingPolicy PSCommand_Set-CsTeamsMeetingPolicy PSCmdlet_Set-CsOnlineVoicemailPolicy PSCommand_Set-CsOnlineVoicemailPolicy PSCmdlet_Set-CsTeamsFilesPolicy PSCommand_Set-CsTeamsFilesPolicy PSCmdlet_Set-CsOnlineVoicemailValidationConfiguration PSCommand_Set-CsOnlineVoicemailValidationConfiguration PSCmdlet_Set-CsTeamsFeedbackPolicy PSCommand_Set-CsTeamsFeedbackPolicy PSCmdlet_Set-CsTeamsUpdateManagementPolicy PSCommand_Set-CsTeamsUpdateManagementPolicy PSCmdlet_Set-CsTeamsChannelsPolicy PSCommand_Set-CsTeamsChannelsPolicy PSCmdlet_Set-CsTeamsMediaConnectivityPolicy PSCommand_Set-CsTeamsMediaConnectivityPolicy PSCmdlet_Set-CsTeamsMeetingBrandingPolicy PSCommand_Set-CsTeamsMeetingBrandingPolicy PSCmdlet_Set-CsTeamsEmergencyCallingPolicy PSCommand_Set-CsTeamsEmergencyCallingPolicy PSCmdlet_Set-CsTeamsEducationConfiguration PSCommand_Set-CsTeamsEducationConfiguration PSCmdlet_Set-CsTeamsCallHoldPolicy PSCommand_Set-CsTeamsCallHoldPolicy PSCmdlet_Set-CsTeamsMessagingConfiguration PSCommand_Set-CsTeamsMessagingConfiguration PSCmdlet_Set-CsTeamsVoiceApplicationsPolicy PSCommand_Set-CsTeamsVoiceApplicationsPolicy PSCmdlet_Set-CsTeamsEventsPolicy PSCommand_Set-CsTeamsEventsPolicy PSCmdlet_Set-CsTeamsExternalAccessConfiguration PSCommand_Set-CsTeamsExternalAccessConfiguration PSCmdlet_Set-CsTeamsCallingPolicy PSCommand_Set-CsTeamsCallingPolicy PSCmdlet_Set-CsTeamsClientConfiguration PSCommand_Set-CsTeamsClientConfiguration PSCmdlet_Set-CsExternalAccessPolicy PSCommand_Set-CsExternalAccessPolicy PSCmdlet_Set-CsTeamsAppPermissionPolicy PSCommand_Set-CsTeamsAppPermissionPolicy PSCmdlet_Set-CsTeamsAppSetupPolicy PSCommand_Set-CsTeamsAppSetupPolicy PSCmdlet_Set-CsTeamsFirstPartyMeetingTemplateConfiguration PSCommand_Set-CsTeamsFirstPartyMeetingTemplateConfiguration PSCmdlet_Set-CsTeamsMeetingTemplatePermissionPolicy PSCommand_Set-CsTeamsMeetingTemplatePermissionPolicy PSCmdlet_Set-CsTeamsMultiTenantOrganizationConfiguration PSCommand_Set-CsTeamsMultiTenantOrganizationConfiguration PSCmdlet_Set-CsLocationPolicy PSCommand_Set-CsLocationPolicy PSCmdlet_Set-CsTeamsCarrierEmergencyCallRoutingPolicy PSCommand_Set-CsTeamsCarrierEmergencyCallRoutingPolicy PSCmdlet_Set-CsTeamsVirtualAppointmentsPolicy PSCommand_Set-CsTeamsVirtualAppointmentsPolicy PSCmdlet_Set-CsTeamsSharedCallingRoutingPolicy PSCommand_Set-CsTeamsSharedCallingRoutingPolicy PSCmdlet_Set-CsTeamsTemplatePermissionPolicy PSCommand_Set-CsTeamsTemplatePermissionPolicy PSCmdlet_Set-CsTeamsComplianceRecordingPolicy PSCommand_Set-CsTeamsComplianceRecordingPolicy PSCmdlet_Set-CsTeamsEducationAssignmentsAppPolicy PSCommand_Set-CsTeamsEducationAssignmentsAppPolicy PSCmdlet_Set-CsTeamsComplianceRecordingApplication PSCommand_Set-CsTeamsComplianceRecordingApplication PSCmdlet_Set-CsTeamsShiftsPolicy PSCommand_Set-CsTeamsShiftsPolicy PSCmdlet_Set-CsTeamsUpgradeConfiguration PSCommand_Set-CsTeamsUpgradeConfiguration PSCmdlet_Set-CsTeamsAudioConferencingCustomPromptsConfiguration PSCommand_Set-CsTeamsAudioConferencingCustomPromptsConfiguration PSCmdlet_Set-CsTeamsSipDevicesConfiguration PSCommand_Set-CsTeamsSipDevicesConfiguration PSCmdlet_Set-CsTeamsMeetingConfiguration PSCommand_Set-CsTeamsMeetingConfiguration PSCmdlet_Set-CsTeamsVdiPolicy PSCommand_Set-CsTeamsVdiPolicy PSCmdlet_Set-CsTeamsWorkLocationDetectionPolicy PSCommand_Set-CsTeamsWorkLocationDetectionPolicy PSCmdlet_Set-CsTeamsRecordingRollOutPolicy PSCommand_Set-CsTeamsRecordingRollOutPolicy PSCmdlet_Set-CsTeamsCustomBannerText PSCommand_Set-CsTeamsCustomBannerText PSCmdlet_Set-CsTeamsBYODAndDesksPolicy PSCommand_Set-CsTeamsBYODAndDesksPolicy PSCmdlet_Set-CsTeamsNotificationAndFeedsPolicy PSCommand_Set-CsTeamsNotificationAndFeedsPolicy PSCmdlet_Set-CsTeamsPersonalAttendantPolicy PSCommand_Set-CsTeamsPersonalAttendantPolicy PSCmdlet_Set-CsPrivacyConfiguration PSCommand_Set-CsPrivacyConfiguration PSCmdlet_Update-M365TeamsApp PSCommand_Update-M365TeamsApp PSCmdlet_Update-M365UnifiedTenantSettings PSCommand_Update-M365UnifiedTenantSettings PSCmdlet_Update-M365UnifiedCustomPendingApp PSCommand_Update-M365UnifiedCustomPendingApp PSCmdlet_Get-CsBatchOperationDefinition PSCommand_Get-CsBatchOperationDefinition PSCmdlet_Get-CsBatchOperationStatus PSCommand_Get-CsBatchOperationStatus PSCmdlet_Get-CsConfiguration PSCommand_Get-CsConfiguration PSCmdlet_Get-CsGroupPolicyAssignments PSCommand_Get-CsGroupPolicyAssignments PSCmdlet_Get-CsLoginInfo PSCommand_Get-CsLoginInfo PSCmdlet_Get-CsUserProvHistory PSCommand_Get-CsUserProvHistory PSCmdlet_Get-GPAGroupMembers PSCommand_Get-GPAGroupMembers PSCmdlet_Get-GPAUserMembership PSCommand_Get-GPAUserMembership PSCmdlet_Get-NgtProvInstanceFailOverStatus PSCommand_Get-NgtProvInstanceFailOverStatus PSCmdlet_Get-CsTeamsTenantAbuseConfiguration PSCommand_Get-CsTeamsTenantAbuseConfiguration PSCmdlet_Invoke-CsDirectoryObjectSync PSCommand_Invoke-CsDirectoryObjectSync PSCmdlet_Invoke-CsGenericNgtProvCommand PSCommand_Invoke-CsGenericNgtProvCommand PSCmdlet_Invoke-CsRefreshGroupUsers PSCommand_Invoke-CsRefreshGroupUsers PSCmdlet_Invoke-CsReprocessBatchOperation PSCommand_Invoke-CsReprocessBatchOperation PSCmdlet_Invoke-CsReprocessGroupPolicyAssignment PSCommand_Invoke-CsReprocessGroupPolicyAssignment PSCmdlet_Move-NgtProvInstance PSCommand_Move-NgtProvInstance PSCmdlet_New-CsConfiguration PSCommand_New-CsConfiguration PSCmdlet_Remove-CsConfiguration PSCommand_Remove-CsConfiguration PSCmdlet_Set-CsConfiguration PSCommand_Set-CsConfiguration PSCmdlet_Set-CsTeamsTenantAbuseConfiguration PSCommand_Set-CsTeamsTenantAbuseConfiguration PSCmdlet_Set-CsPublishPolicySchemaDefaults PSCommand_Set-CsPublishPolicySchemaDefaults PSCmdlet_Get-TeamTargetingHierarchyStatus PSCommand_Get-TeamTargetingHierarchyStatus PSCmdlet_Remove-TeamTargetingHierarchy PSCommand_Remove-TeamTargetingHierarchy PSCmdlet_Set-TeamTargetingHierarchy PSCommand_Set-TeamTargetingHierarchy PSIncludes_Cmdlet PSFunction_Clear-CsOnlineTelephoneNumberOrder PSCommand_Clear-CsOnlineTelephoneNumberOrder PSFunction_Complete-CsOnlineTelephoneNumberOrder PSCommand_Complete-CsOnlineTelephoneNumberOrder PSFunction_Disable-CsOnlineSipDomain PSCommand_Disable-CsOnlineSipDomain PSFunction_Enable-CsOnlineSipDomain PSCommand_Enable-CsOnlineSipDomain PSFunction_Export-CsAcquiredPhoneNumber PSCommand_Export-CsAcquiredPhoneNumber PSFunction_Export-CsAutoAttendantHolidays PSCommand_Export-CsAutoAttendantHolidays PSFunction_Export-CsOnlineAudioFile PSCommand_Export-CsOnlineAudioFile PSFunction_Find-CsGroup PSCommand_Find-CsGroup PSFunction_Find-CsOnlineApplicationInstance PSCommand_Find-CsOnlineApplicationInstance PSFunction_Get-CsApplicationAccessPolicy PSCommand_Get-CsApplicationAccessPolicy PSFunction_Get-CsApplicationMeetingConfiguration PSCommand_Get-CsApplicationMeetingConfiguration PSFunction_Get-CsAutoAttendant PSCommand_Get-CsAutoAttendant PSFunction_Get-CsAutoAttendantHolidays PSCommand_Get-CsAutoAttendantHolidays PSFunction_Get-CsAutoAttendantStatus PSCommand_Get-CsAutoAttendantStatus PSFunction_Get-CsAutoAttendantSupportedLanguage PSCommand_Get-CsAutoAttendantSupportedLanguage PSFunction_Get-CsAutoAttendantSupportedTimeZone PSCommand_Get-CsAutoAttendantSupportedTimeZone PSFunction_Get-CsAutoAttendantTenantInformation PSCommand_Get-CsAutoAttendantTenantInformation PSFunction_Get-CsBatchPolicyAssignmentOperation PSCommand_Get-CsBatchPolicyAssignmentOperation PSFunction_Get-CsCallingLineIdentity PSCommand_Get-CsCallingLineIdentity PSFunction_Get-CsCallQueue PSCommand_Get-CsCallQueue PSFunction_Get-CsCloudCallDataConnection PSCommand_Get-CsCloudCallDataConnection PSFunction_Get-CsEffectiveTenantDialPlan PSCommand_Get-CsEffectiveTenantDialPlan PSFunction_Get-CsExportAcquiredPhoneNumberStatus PSCommand_Get-CsExportAcquiredPhoneNumberStatus PSFunction_Get-CsGroupPolicyAssignment PSCommand_Get-CsGroupPolicyAssignment PSFunction_Get-CsHybridTelephoneNumber PSCommand_Get-CsHybridTelephoneNumber PSFunction_Get-CsInboundBlockedNumberPattern PSCommand_Get-CsInboundBlockedNumberPattern PSFunction_Get-CsInboundExemptNumberPattern PSCommand_Get-CsInboundExemptNumberPattern PSFunction_Get-CsMeetingMigrationStatus PSCommand_Get-CsMeetingMigrationStatus PSFunction_Get-CsOnlineApplicationInstance PSCommand_Get-CsOnlineApplicationInstance PSFunction_Get-CsOnlineApplicationInstanceAssociation PSCommand_Get-CsOnlineApplicationInstanceAssociation PSFunction_Get-CsOnlineApplicationInstanceAssociationStatus PSCommand_Get-CsOnlineApplicationInstanceAssociationStatus PSFunction_Get-CsOnlineAudioConferencingRoutingPolicy PSCommand_Get-CsOnlineAudioConferencingRoutingPolicy PSFunction_Get-CsOnlineAudioFile PSCommand_Get-CsOnlineAudioFile PSFunction_Get-CsOnlineDialInConferencingBridge PSCommand_Get-CsOnlineDialInConferencingBridge PSFunction_Get-CsOnlineDialInConferencingLanguagesSupported PSCommand_Get-CsOnlineDialInConferencingLanguagesSupported PSFunction_Get-CsOnlineDialinConferencingPolicy PSCommand_Get-CsOnlineDialinConferencingPolicy PSFunction_Get-CsOnlineDialInConferencingServiceNumber PSCommand_Get-CsOnlineDialInConferencingServiceNumber PSFunction_Get-CsOnlineDialinConferencingTenantConfiguration PSCommand_Get-CsOnlineDialinConferencingTenantConfiguration PSFunction_Get-CsOnlineDialInConferencingTenantSettings PSCommand_Get-CsOnlineDialInConferencingTenantSettings PSFunction_Get-CsOnlineDialInConferencingUser PSCommand_Get-CsOnlineDialInConferencingUser PSFunction_Get-CsOnlineDialOutPolicy PSCommand_Get-CsOnlineDialOutPolicy PSFunction_Get-CsOnlineDirectoryTenant PSCommand_Get-CsOnlineDirectoryTenant PSFunction_Get-CsOnlineEnhancedEmergencyServiceDisclaimer PSCommand_Get-CsOnlineEnhancedEmergencyServiceDisclaimer PSFunction_Get-CsOnlineLisCivicAddress PSCommand_Get-CsOnlineLisCivicAddress PSFunction_Get-CsOnlineLisLocation PSCommand_Get-CsOnlineLisLocation PSFunction_Get-CsOnlineLisPort PSCommand_Get-CsOnlineLisPort PSFunction_Get-CsOnlineLisSubnet PSCommand_Get-CsOnlineLisSubnet PSFunction_Get-CsOnlineLisSwitch PSCommand_Get-CsOnlineLisSwitch PSFunction_Get-CsOnlineLisWirelessAccessPoint PSCommand_Get-CsOnlineLisWirelessAccessPoint PSFunction_Get-CsOnlinePSTNGateway PSCommand_Get-CsOnlinePSTNGateway PSFunction_Get-CsOnlinePstnUsage PSCommand_Get-CsOnlinePstnUsage PSFunction_Get-CsOnlineSchedule PSCommand_Get-CsOnlineSchedule PSFunction_Get-CsOnlineSipDomain PSCommand_Get-CsOnlineSipDomain PSFunction_Get-CsOnlineTelephoneNumber PSCommand_Get-CsOnlineTelephoneNumber PSFunction_Get-CsOnlineTelephoneNumberCountry PSCommand_Get-CsOnlineTelephoneNumberCountry PSFunction_Get-CsOnlineTelephoneNumberOrder PSCommand_Get-CsOnlineTelephoneNumberOrder PSFunction_Get-CsOnlineTelephoneNumberType PSCommand_Get-CsOnlineTelephoneNumberType PSFunction_Get-CsOnlineUser PSCommand_Get-CsOnlineUser PSFunction_Get-CsOnlineVoicemailUserSettings PSCommand_Get-CsOnlineVoicemailUserSettings PSFunction_Get-CsOnlineVoiceRoute PSCommand_Get-CsOnlineVoiceRoute PSFunction_Get-CsOnlineVoiceRoutingPolicy PSCommand_Get-CsOnlineVoiceRoutingPolicy PSFunction_Get-CsOnlineVoiceUser PSCommand_Get-CsOnlineVoiceUser PSFunction_Get-CsPhoneNumberAssignment PSCommand_Get-CsPhoneNumberAssignment PSFunction_Get-CsPhoneNumberTag PSCommand_Get-CsPhoneNumberTag PSFunction_Get-CsPolicyPackage PSCommand_Get-CsPolicyPackage PSFunction_Get-CsSdgBulkSignInRequestStatus PSCommand_Get-CsSdgBulkSignInRequestStatus PSFunction_Get-CsSDGBulkSignInRequestsSummary PSCommand_Get-CsSDGBulkSignInRequestsSummary PSFunction_Get-CsTeamsAudioConferencingPolicy PSCommand_Get-CsTeamsAudioConferencingPolicy PSFunction_Get-CsTeamsCallParkPolicy PSCommand_Get-CsTeamsCallParkPolicy PSFunction_Get-CsTeamsCortanaPolicy PSCommand_Get-CsTeamsCortanaPolicy PSFunction_Get-CsTeamsEmergencyCallRoutingPolicy PSCommand_Get-CsTeamsEmergencyCallRoutingPolicy PSFunction_Get-CsTeamsEnhancedEncryptionPolicy PSCommand_Get-CsTeamsEnhancedEncryptionPolicy PSFunction_Get-CsTeamsGuestCallingConfiguration PSCommand_Get-CsTeamsGuestCallingConfiguration PSFunction_Get-CsTeamsGuestMeetingConfiguration PSCommand_Get-CsTeamsGuestMeetingConfiguration PSFunction_Get-CsTeamsGuestMessagingConfiguration PSCommand_Get-CsTeamsGuestMessagingConfiguration PSFunction_Get-CsTeamsIPPhonePolicy PSCommand_Get-CsTeamsIPPhonePolicy PSFunction_Get-CsTeamsMediaLoggingPolicy PSCommand_Get-CsTeamsMediaLoggingPolicy PSFunction_Get-CsTeamsMeetingBroadcastConfiguration PSCommand_Get-CsTeamsMeetingBroadcastConfiguration PSFunction_Get-CsTeamsMeetingBroadcastPolicy PSCommand_Get-CsTeamsMeetingBroadcastPolicy PSFunction_Get-CsTeamsMigrationConfiguration PSCommand_Get-CsTeamsMigrationConfiguration PSFunction_Get-CsTeamsMobilityPolicy PSCommand_Get-CsTeamsMobilityPolicy PSFunction_Get-CsTeamsNetworkRoamingPolicy PSCommand_Get-CsTeamsNetworkRoamingPolicy PSFunction_Get-CsTeamsRoomVideoTeleConferencingPolicy PSCommand_Get-CsTeamsRoomVideoTeleConferencingPolicy PSFunction_Get-CsTeamsSettingsCustomApp PSCommand_Get-CsTeamsSettingsCustomApp PSFunction_Get-CsTeamsShiftsAppPolicy PSCommand_Get-CsTeamsShiftsAppPolicy PSFunction_Get-CsTeamsShiftsConnectionConnector PSCommand_Get-CsTeamsShiftsConnectionConnector PSFunction_Get-CsTeamsShiftsConnectionErrorReport PSCommand_Get-CsTeamsShiftsConnectionErrorReport PSFunction_Get-CsTeamsShiftsConnection PSCommand_Get-CsTeamsShiftsConnection PSFunction_Get-CsTeamsShiftsConnectionInstance PSCommand_Get-CsTeamsShiftsConnectionInstance PSFunction_Get-CsTeamsShiftsConnectionOperation PSCommand_Get-CsTeamsShiftsConnectionOperation PSFunction_Get-CsTeamsShiftsConnectionSyncResult PSCommand_Get-CsTeamsShiftsConnectionSyncResult PSFunction_Get-CsTeamsShiftsConnectionTeamMap PSCommand_Get-CsTeamsShiftsConnectionTeamMap PSFunction_Get-CsTeamsShiftsConnectionWfmTeam PSCommand_Get-CsTeamsShiftsConnectionWfmTeam PSFunction_Get-CsTeamsShiftsConnectionWfmUser PSCommand_Get-CsTeamsShiftsConnectionWfmUser PSFunction_Get-CsTeamsSurvivableBranchAppliance PSCommand_Get-CsTeamsSurvivableBranchAppliance PSFunction_Get-CsTeamsSurvivableBranchAppliancePolicy PSCommand_Get-CsTeamsSurvivableBranchAppliancePolicy PSFunction_Get-CsTeamsTargetingPolicy PSCommand_Get-CsTeamsTargetingPolicy PSFunction_Get-CsTeamsTranslationRule PSCommand_Get-CsTeamsTranslationRule PSFunction_Get-CsTeamsUnassignedNumberTreatment PSCommand_Get-CsTeamsUnassignedNumberTreatment PSFunction_Get-CsTeamsUpgradePolicy PSCommand_Get-CsTeamsUpgradePolicy PSFunction_Get-CsTeamsVdiPolicy PSCommand_Get-CsTeamsVdiPolicy PSFunction_Get-CsTeamsVideoInteropServicePolicy PSCommand_Get-CsTeamsVideoInteropServicePolicy PSFunction_Get-CsTeamsWorkLoadPolicy PSCommand_Get-CsTeamsWorkLoadPolicy PSFunction_Get-CsTeamTemplate PSCommand_Get-CsTeamTemplate PSFunction_Get-CsTeamTemplateList PSCommand_Get-CsTeamTemplateList PSFunction_Get-CsTenant PSCommand_Get-CsTenant PSFunction_Get-CsTenantBlockedCallingNumbers PSCommand_Get-CsTenantBlockedCallingNumbers PSFunction_Get-CsTenantDialPlan PSCommand_Get-CsTenantDialPlan PSFunction_Get-CsTenantFederationConfiguration PSCommand_Get-CsTenantFederationConfiguration PSFunction_Get-CsTenantLicensingConfiguration PSCommand_Get-CsTenantLicensingConfiguration PSFunction_Get-CsTenantMigrationConfiguration PSCommand_Get-CsTenantMigrationConfiguration PSFunction_Get-CsTenantNetworkConfiguration PSCommand_Get-CsTenantNetworkConfiguration PSFunction_Get-CsTenantNetworkRegion PSCommand_Get-CsTenantNetworkRegion PSFunction_Get-CsTenantNetworkSubnet PSCommand_Get-CsTenantNetworkSubnet PSFunction_Get-CsTenantTrustedIPAddress PSCommand_Get-CsTenantTrustedIPAddress PSFunction_Get-CsUserCallingSettings PSCommand_Get-CsUserCallingSettings PSFunction_Get-CsUserPolicyAssignment PSCommand_Get-CsUserPolicyAssignment PSFunction_Get-CsUserPolicyPackage PSCommand_Get-CsUserPolicyPackage PSFunction_Get-CsUserPolicyPackageRecommendation PSCommand_Get-CsUserPolicyPackageRecommendation PSFunction_Get-CsVideoInteropServiceProvider PSCommand_Get-CsVideoInteropServiceProvider PSFunction_Grant-CsApplicationAccessPolicy PSCommand_Grant-CsApplicationAccessPolicy PSFunction_Get-CsComplianceRecordingForCallQueueTemplate PSCommand_Get-CsComplianceRecordingForCallQueueTemplate PSFunction_Get-CsSharedCallQueueHistoryTemplate PSCommand_Get-CsSharedCallQueueHistoryTemplate PSFunction_Get-CsMainlineAttendantFlow PSCommand_Get-CsMainlineAttendantFlow PSFunction_Grant-CsCallingLineIdentity PSCommand_Grant-CsCallingLineIdentity PSFunction_Grant-CsDialoutPolicy PSCommand_Grant-CsDialoutPolicy PSFunction_Grant-CsGroupPolicyPackageAssignment PSCommand_Grant-CsGroupPolicyPackageAssignment PSFunction_Grant-CsOnlineAudioConferencingRoutingPolicy PSCommand_Grant-CsOnlineAudioConferencingRoutingPolicy PSFunction_Grant-CsOnlineVoicemailPolicy PSCommand_Grant-CsOnlineVoicemailPolicy PSFunction_Grant-CsOnlineVoiceRoutingPolicy PSCommand_Grant-CsOnlineVoiceRoutingPolicy PSFunction_Grant-CsTeamsAudioConferencingPolicy PSCommand_Grant-CsTeamsAudioConferencingPolicy PSFunction_Grant-CsTeamsCallHoldPolicy PSCommand_Grant-CsTeamsCallHoldPolicy PSFunction_Grant-CsTeamsCallParkPolicy PSCommand_Grant-CsTeamsCallParkPolicy PSFunction_Grant-CsTeamsChannelsPolicy PSCommand_Grant-CsTeamsChannelsPolicy PSFunction_Grant-CsTeamsCortanaPolicy PSCommand_Grant-CsTeamsCortanaPolicy PSFunction_Grant-CsTeamsEmergencyCallingPolicy PSCommand_Grant-CsTeamsEmergencyCallingPolicy PSFunction_Grant-CsTeamsEmergencyCallRoutingPolicy PSCommand_Grant-CsTeamsEmergencyCallRoutingPolicy PSFunction_Grant-CsTeamsEnhancedEncryptionPolicy PSCommand_Grant-CsTeamsEnhancedEncryptionPolicy PSFunction_Grant-CsTeamsFeedbackPolicy PSCommand_Grant-CsTeamsFeedbackPolicy PSFunction_Grant-CsTeamsIPPhonePolicy PSCommand_Grant-CsTeamsIPPhonePolicy PSFunction_Grant-CsTeamsMediaLoggingPolicy PSCommand_Grant-CsTeamsMediaLoggingPolicy PSFunction_Grant-CsTeamsMeetingBroadcastPolicy PSCommand_Grant-CsTeamsMeetingBroadcastPolicy PSFunction_Grant-CsTeamsMeetingPolicy PSCommand_Grant-CsTeamsMeetingPolicy PSFunction_Grant-CsTeamsMessagingPolicy PSCommand_Grant-CsTeamsMessagingPolicy PSFunction_Grant-CsTeamsMobilityPolicy PSCommand_Grant-CsTeamsMobilityPolicy PSFunction_Grant-CsTeamsRoomVideoTeleConferencingPolicy PSCommand_Grant-CsTeamsRoomVideoTeleConferencingPolicy PSFunction_Grant-CsTeamsSurvivableBranchAppliancePolicy PSCommand_Grant-CsTeamsSurvivableBranchAppliancePolicy PSFunction_Grant-CsTeamsUpdateManagementPolicy PSCommand_Grant-CsTeamsUpdateManagementPolicy PSFunction_Grant-CsTeamsUpgradePolicy PSCommand_Grant-CsTeamsUpgradePolicy PSFunction_Grant-CsTeamsVideoInteropServicePolicy PSCommand_Grant-CsTeamsVideoInteropServicePolicy PSFunction_Grant-CsTeamsVoiceApplicationsPolicy PSCommand_Grant-CsTeamsVoiceApplicationsPolicy PSFunction_Grant-CsTeamsWorkLoadPolicy PSCommand_Grant-CsTeamsWorkLoadPolicy PSFunction_Grant-CsTenantDialPlan PSCommand_Grant-CsTenantDialPlan PSFunction_Grant-CsUserPolicyPackage PSCommand_Grant-CsUserPolicyPackage PSFunction_Grant-CsTeamsComplianceRecordingPolicy PSCommand_Grant-CsTeamsComplianceRecordingPolicy PSFunction_Import-CsAutoAttendantHolidays PSCommand_Import-CsAutoAttendantHolidays PSFunction_Import-CsOnlineAudioFile PSCommand_Import-CsOnlineAudioFile PSFunction_Invoke-CsInternalPSTelemetry PSCommand_Invoke-CsInternalPSTelemetry PSFunction_Move-CsInternalHelper PSCommand_Move-CsInternalHelper PSFunction_New-CsApplicationAccessPolicy PSCommand_New-CsApplicationAccessPolicy PSFunction_New-CsAutoAttendant PSCommand_New-CsAutoAttendant PSFunction_New-CsAutoAttendantCallableEntity PSCommand_New-CsAutoAttendantCallableEntity PSFunction_New-CsAutoAttendantCallFlow PSCommand_New-CsAutoAttendantCallFlow PSFunction_New-CsAutoAttendantCallHandlingAssociation PSCommand_New-CsAutoAttendantCallHandlingAssociation PSFunction_New-CsAutoAttendantDialScope PSCommand_New-CsAutoAttendantDialScope PSFunction_New-CsAutoAttendantMenu PSCommand_New-CsAutoAttendantMenu PSFunction_New-CsAutoAttendantMenuOption PSCommand_New-CsAutoAttendantMenuOption PSFunction_New-CsAutoAttendantPrompt PSCommand_New-CsAutoAttendantPrompt PSFunction_New-CsBatchPolicyAssignmentOperation PSCommand_New-CsBatchPolicyAssignmentOperation PSFunction_New-CsBatchPolicyPackageAssignmentOperation PSCommand_New-CsBatchPolicyPackageAssignmentOperation PSFunction_New-CsCallingLineIdentity PSCommand_New-CsCallingLineIdentity PSFunction_New-CsCallQueue PSCommand_New-CsCallQueue PSFunction_New-CsCloudCallDataConnection PSCommand_New-CsCloudCallDataConnection PSFunction_New-CsCustomPolicyPackage PSCommand_New-CsCustomPolicyPackage PSFunction_New-CsEdgeAllowAllKnownDomains PSCommand_New-CsEdgeAllowAllKnownDomains PSFunction_New-CsEdgeAllowList PSCommand_New-CsEdgeAllowList PSFunction_New-CsEdgeDomainPattern PSCommand_New-CsEdgeDomainPattern PSFunction_New-CsGroupPolicyAssignment PSCommand_New-CsGroupPolicyAssignment PSFunction_New-CsHybridTelephoneNumber PSCommand_New-CsHybridTelephoneNumber PSFunction_New-CsInboundBlockedNumberPattern PSCommand_New-CsInboundBlockedNumberPattern PSFunction_New-CsInboundExemptNumberPattern PSCommand_New-CsInboundExemptNumberPattern PSFunction_New-CsOnlineApplicationInstance PSCommand_New-CsOnlineApplicationInstance PSFunction_New-CsOnlineApplicationInstanceAssociation PSCommand_New-CsOnlineApplicationInstanceAssociation PSFunction_New-CsOnlineAudioConferencingRoutingPolicy PSCommand_New-CsOnlineAudioConferencingRoutingPolicy PSFunction_New-CsOnlineDateTimeRange PSCommand_New-CsOnlineDateTimeRange PSFunction_New-CsOnlineLisCivicAddress PSCommand_New-CsOnlineLisCivicAddress PSFunction_New-CsOnlineLisLocation PSCommand_New-CsOnlineLisLocation PSFunction_New-CsOnlinePSTNGateway PSCommand_New-CsOnlinePSTNGateway PSFunction_New-CsOnlineSchedule PSCommand_New-CsOnlineSchedule PSFunction_New-CsOnlineTelephoneNumberOrder PSCommand_New-CsOnlineTelephoneNumberOrder PSFunction_New-CsOnlineTimeRange PSCommand_New-CsOnlineTimeRange PSFunction_New-CsOnlineVoiceRoute PSCommand_New-CsOnlineVoiceRoute PSFunction_New-CsOnlineVoiceRoutingPolicy PSCommand_New-CsOnlineVoiceRoutingPolicy PSFunction_New-CsSdgBulkSignInRequest PSCommand_New-CsSdgBulkSignInRequest PSFunction_New-CsTeamsAudioConferencingPolicy PSCommand_New-CsTeamsAudioConferencingPolicy PSFunction_New-CsTeamsCallParkPolicy PSCommand_New-CsTeamsCallParkPolicy PSFunction_New-CsTeamsCortanaPolicy PSCommand_New-CsTeamsCortanaPolicy PSFunction_New-CsTeamsEmergencyCallRoutingPolicy PSCommand_New-CsTeamsEmergencyCallRoutingPolicy PSFunction_New-CsTeamsEmergencyNumber PSCommand_New-CsTeamsEmergencyNumber PSFunction_New-CsTeamsEnhancedEncryptionPolicy PSCommand_New-CsTeamsEnhancedEncryptionPolicy PSFunction_New-CsTeamsIPPhonePolicy PSCommand_New-CsTeamsIPPhonePolicy PSFunction_New-CsTeamsMeetingBroadcastPolicy PSCommand_New-CsTeamsMeetingBroadcastPolicy PSFunction_New-CsTeamsMobilityPolicy PSCommand_New-CsTeamsMobilityPolicy PSFunction_New-CsTeamsNetworkRoamingPolicy PSCommand_New-CsTeamsNetworkRoamingPolicy PSFunction_New-CsTeamsRoomVideoTeleConferencingPolicy PSCommand_New-CsTeamsRoomVideoTeleConferencingPolicy PSFunction_New-CsTeamsShiftsConnectionBatchTeamMap PSCommand_New-CsTeamsShiftsConnectionBatchTeamMap PSFunction_New-CsTeamsShiftsConnection PSCommand_New-CsTeamsShiftsConnection PSFunction_New-CsTeamsShiftsConnectionInstance PSCommand_New-CsTeamsShiftsConnectionInstance PSFunction_New-CsTeamsSurvivableBranchAppliance PSCommand_New-CsTeamsSurvivableBranchAppliance PSFunction_New-CsTeamsSurvivableBranchAppliancePolicy PSCommand_New-CsTeamsSurvivableBranchAppliancePolicy PSFunction_New-CsTeamsTranslationRule PSCommand_New-CsTeamsTranslationRule PSFunction_New-CsTeamsUnassignedNumberTreatment PSCommand_New-CsTeamsUnassignedNumberTreatment PSFunction_New-CsTeamsVdiPolicy PSCommand_New-CsTeamsVdiPolicy PSFunction_New-CsTeamsWorkLoadPolicy PSCommand_New-CsTeamsWorkLoadPolicy PSFunction_New-CsTeamTemplate PSCommand_New-CsTeamTemplate PSFunction_New-CsTenantDialPlan PSCommand_New-CsTenantDialPlan PSFunction_New-CsTenantNetworkRegion PSCommand_New-CsTenantNetworkRegion PSFunction_New-CsTenantNetworkSite PSCommand_New-CsTenantNetworkSite PSFunction_New-CsTenantNetworkSubnet PSCommand_New-CsTenantNetworkSubnet PSFunction_New-CsTenantTrustedIPAddress PSCommand_New-CsTenantTrustedIPAddress PSFunction_New-CsUserCallingDelegate PSCommand_New-CsUserCallingDelegate PSFunction_New-CsVideoInteropServiceProvider PSCommand_New-CsVideoInteropServiceProvider PSFunction_New-CsVoiceNormalizationRule PSCommand_New-CsVoiceNormalizationRule PSFunction_New-CsOnlineDirectRoutingTelephoneNumberUploadOrder PSCommand_New-CsOnlineDirectRoutingTelephoneNumberUploadOrder PSFunction_New-CsOnlineTelephoneNumberReleaseOrder PSCommand_New-CsOnlineTelephoneNumberReleaseOrder PSFunction_New-CsComplianceRecordingForCallQueueTemplate PSCommand_New-CsComplianceRecordingForCallQueueTemplate PSFunction_New-CsSharedCallQueueHistoryTemplate PSCommand_New-CsSharedCallQueueHistoryTemplate PSFunction_New-CsMainlineAttendantAppointmentBookingFlow PSCommand_New-CsMainlineAttendantAppointmentBookingFlow PSFunction_New-CsMainlineAttendantQuestionAnswerFlow PSCommand_New-CsMainlineAttendantQuestionAnswerFlow PSFunction_Register-CsOnlineDialInConferencingServiceNumber PSCommand_Register-CsOnlineDialInConferencingServiceNumber PSFunction_Remove-CsApplicationAccessPolicy PSCommand_Remove-CsApplicationAccessPolicy PSFunction_Remove-CsAutoAttendant PSCommand_Remove-CsAutoAttendant PSFunction_Remove-CsCallingLineIdentity PSCommand_Remove-CsCallingLineIdentity PSFunction_Remove-CsCallQueue PSCommand_Remove-CsCallQueue PSFunction_Remove-CsCustomPolicyPackage PSCommand_Remove-CsCustomPolicyPackage PSFunction_Remove-CsGroupPolicyAssignment PSCommand_Remove-CsGroupPolicyAssignment PSFunction_Remove-CsHybridTelephoneNumber PSCommand_Remove-CsHybridTelephoneNumber PSFunction_Remove-CsInboundBlockedNumberPattern PSCommand_Remove-CsInboundBlockedNumberPattern PSFunction_Remove-CsInboundExemptNumberPattern PSCommand_Remove-CsInboundExemptNumberPattern PSFunction_Remove-CsOnlineApplicationInstanceAssociation PSCommand_Remove-CsOnlineApplicationInstanceAssociation PSFunction_Remove-CsOnlineAudioConferencingRoutingPolicy PSCommand_Remove-CsOnlineAudioConferencingRoutingPolicy PSFunction_Remove-CsOnlineAudioFile PSCommand_Remove-CsOnlineAudioFile PSFunction_Remove-CsOnlineDialInConferencingTenantSettings PSCommand_Remove-CsOnlineDialInConferencingTenantSettings PSFunction_Remove-CsOnlineLisCivicAddress PSCommand_Remove-CsOnlineLisCivicAddress PSFunction_Remove-CsOnlineLisLocation PSCommand_Remove-CsOnlineLisLocation PSFunction_Remove-CsOnlineLisPort PSCommand_Remove-CsOnlineLisPort PSFunction_Remove-CsOnlineLisSubnet PSCommand_Remove-CsOnlineLisSubnet PSFunction_Remove-CsOnlineLisSwitch PSCommand_Remove-CsOnlineLisSwitch PSFunction_Remove-CsOnlineLisWirelessAccessPoint PSCommand_Remove-CsOnlineLisWirelessAccessPoint PSFunction_Remove-CsOnlinePSTNGateway PSCommand_Remove-CsOnlinePSTNGateway PSFunction_Remove-CsOnlineSchedule PSCommand_Remove-CsOnlineSchedule PSFunction_Remove-CsOnlineTelephoneNumber PSCommand_Remove-CsOnlineTelephoneNumber PSFunction_Remove-CsOnlineVoiceRoute PSCommand_Remove-CsOnlineVoiceRoute PSFunction_Remove-CsOnlineVoiceRoutingPolicy PSCommand_Remove-CsOnlineVoiceRoutingPolicy PSFunction_Remove-CsPhoneNumberAssignment PSCommand_Remove-CsPhoneNumberAssignment PSFunction_Remove-CsPhoneNumberTag PSCommand_Remove-CsPhoneNumberTag PSFunction_Remove-CsTeamsAudioConferencingPolicy PSCommand_Remove-CsTeamsAudioConferencingPolicy PSFunction_Remove-CsTeamsCallParkPolicy PSCommand_Remove-CsTeamsCallParkPolicy PSFunction_Remove-CsTeamsCortanaPolicy PSCommand_Remove-CsTeamsCortanaPolicy PSFunction_Remove-CsTeamsEmergencyCallRoutingPolicy PSCommand_Remove-CsTeamsEmergencyCallRoutingPolicy PSFunction_Remove-CsTeamsEnhancedEncryptionPolicy PSCommand_Remove-CsTeamsEnhancedEncryptionPolicy PSFunction_Remove-CsTeamsIPPhonePolicy PSCommand_Remove-CsTeamsIPPhonePolicy PSFunction_Remove-CsTeamsMeetingBroadcastPolicy PSCommand_Remove-CsTeamsMeetingBroadcastPolicy PSFunction_Remove-CsTeamsMobilityPolicy PSCommand_Remove-CsTeamsMobilityPolicy PSFunction_Remove-CsTeamsNetworkRoamingPolicy PSCommand_Remove-CsTeamsNetworkRoamingPolicy PSFunction_Remove-CsTeamsRoomVideoTeleConferencingPolicy PSCommand_Remove-CsTeamsRoomVideoTeleConferencingPolicy PSFunction_Remove-CsTeamsShiftsConnection PSCommand_Remove-CsTeamsShiftsConnection PSFunction_Remove-CsTeamsShiftsConnectionInstance PSCommand_Remove-CsTeamsShiftsConnectionInstance PSFunction_Remove-CsTeamsShiftsConnectionTeamMap PSCommand_Remove-CsTeamsShiftsConnectionTeamMap PSFunction_Remove-CsTeamsShiftsScheduleRecord PSCommand_Remove-CsTeamsShiftsScheduleRecord PSFunction_Remove-CsTeamsSurvivableBranchAppliance PSCommand_Remove-CsTeamsSurvivableBranchAppliance PSFunction_Remove-CsTeamsSurvivableBranchAppliancePolicy PSCommand_Remove-CsTeamsSurvivableBranchAppliancePolicy PSFunction_Remove-CsTeamsTargetingPolicy PSCommand_Remove-CsTeamsTargetingPolicy PSFunction_Remove-CsTeamsTranslationRule PSCommand_Remove-CsTeamsTranslationRule PSFunction_Remove-CsTeamsUnassignedNumberTreatment PSCommand_Remove-CsTeamsUnassignedNumberTreatment PSFunction_Remove-CsTeamsVdiPolicy PSCommand_Remove-CsTeamsVdiPolicy PSFunction_Remove-CsTeamsWorkLoadPolicy PSCommand_Remove-CsTeamsWorkLoadPolicy PSFunction_Remove-CsTeamTemplate PSCommand_Remove-CsTeamTemplate PSFunction_Remove-CsTenantDialPlan PSCommand_Remove-CsTenantDialPlan PSFunction_Remove-CsTenantNetworkRegion PSCommand_Remove-CsTenantNetworkRegion PSFunction_Remove-CsTenantNetworkSite PSCommand_Remove-CsTenantNetworkSite PSFunction_Remove-CsTenantNetworkSubnet PSCommand_Remove-CsTenantNetworkSubnet PSFunction_Remove-CsTenantTrustedIPAddress PSCommand_Remove-CsTenantTrustedIPAddress PSFunction_Remove-CsUserCallingDelegate PSCommand_Remove-CsUserCallingDelegate PSFunction_Remove-CsUserLicenseGracePeriod PSCommand_Remove-CsUserLicenseGracePeriod PSFunction_Remove-CsVideoInteropServiceProvider PSCommand_Remove-CsVideoInteropServiceProvider PSFunction_Remove-CsComplianceRecordingForCallQueueTemplate PSCommand_Remove-CsComplianceRecordingForCallQueueTemplate PSFunction_Remove-CsSharedCallQueueHistoryTemplate PSCommand_Remove-CsSharedCallQueueHistoryTemplate PSFunction_Set-CsApplicationAccessPolicy PSCommand_Set-CsApplicationAccessPolicy PSFunction_Set-CsApplicationMeetingConfiguration PSCommand_Set-CsApplicationMeetingConfiguration PSFunction_Set-CsAutoAttendant PSCommand_Set-CsAutoAttendant PSFunction_Set-CsCallingLineIdentity PSCommand_Set-CsCallingLineIdentity PSFunction_Set-CsCallQueue PSCommand_Set-CsCallQueue PSFunction_Set-CsInboundBlockedNumberPattern PSCommand_Set-CsInboundBlockedNumberPattern PSFunction_Set-CsInboundExemptNumberPattern PSCommand_Set-CsInboundExemptNumberPattern PSFunction_Set-CsOnlineApplicationInstance PSCommand_Set-CsOnlineApplicationInstance PSFunction_Set-CsOnlineAudioConferencingRoutingPolicy PSCommand_Set-CsOnlineAudioConferencingRoutingPolicy PSFunction_Set-CsOnlineDialInConferencingBridge PSCommand_Set-CsOnlineDialInConferencingBridge PSFunction_Set-CsOnlineDialInConferencingServiceNumber PSCommand_Set-CsOnlineDialInConferencingServiceNumber PSFunction_Set-CsOnlineDialInConferencingTenantSettings PSCommand_Set-CsOnlineDialInConferencingTenantSettings PSFunction_Set-CsOnlineDialInConferencingUser PSCommand_Set-CsOnlineDialInConferencingUser PSFunction_Set-CsOnlineDialInConferencingUserDefaultNumber PSCommand_Set-CsOnlineDialInConferencingUserDefaultNumber PSFunction_Set-CsOnlineEnhancedEmergencyServiceDisclaimer PSCommand_Set-CsOnlineEnhancedEmergencyServiceDisclaimer PSFunction_Set-CsOnlineLisCivicAddress PSCommand_Set-CsOnlineLisCivicAddress PSFunction_Set-CsOnlineLisLocation PSCommand_Set-CsOnlineLisLocation PSFunction_Set-CsOnlineLisPort PSCommand_Set-CsOnlineLisPort PSFunction_Set-CsOnlineLisSubnet PSCommand_Set-CsOnlineLisSubnet PSFunction_Set-CsOnlineLisSwitch PSCommand_Set-CsOnlineLisSwitch PSFunction_Set-CsOnlineLisWirelessAccessPoint PSCommand_Set-CsOnlineLisWirelessAccessPoint PSFunction_Set-CsOnlinePSTNGateway PSCommand_Set-CsOnlinePSTNGateway PSFunction_Set-CsOnlinePstnUsage PSCommand_Set-CsOnlinePstnUsage PSFunction_Set-CsOnlineSchedule PSCommand_Set-CsOnlineSchedule PSFunction_Set-CsOnlineVoiceApplicationInstance PSCommand_Set-CsOnlineVoiceApplicationInstance PSFunction_Set-CsOnlineVoicemailUserSettings PSCommand_Set-CsOnlineVoicemailUserSettings PSFunction_Set-CsOnlineVoiceRoute PSCommand_Set-CsOnlineVoiceRoute PSFunction_Set-CsOnlineVoiceRoutingPolicy PSCommand_Set-CsOnlineVoiceRoutingPolicy PSFunction_Set-CsOnlineVoiceUser PSCommand_Set-CsOnlineVoiceUser PSFunction_Set-CsPhoneNumberAssignment PSCommand_Set-CsPhoneNumberAssignment PSFunction_Set-CsPhoneNumberTag PSCommand_Set-CsPhoneNumberTag PSFunction_Set-CsTeamsAudioConferencingPolicy PSCommand_Set-CsTeamsAudioConferencingPolicy PSFunction_Set-CsTeamsCallParkPolicy PSCommand_Set-CsTeamsCallParkPolicy PSFunction_Set-CsTeamsCortanaPolicy PSCommand_Set-CsTeamsCortanaPolicy PSFunction_Set-CsTeamsEmergencyCallRoutingPolicy PSCommand_Set-CsTeamsEmergencyCallRoutingPolicy PSFunction_Set-CsTeamsEnhancedEncryptionPolicy PSCommand_Set-CsTeamsEnhancedEncryptionPolicy PSFunction_Set-CsTeamsGuestCallingConfiguration PSCommand_Set-CsTeamsGuestCallingConfiguration PSFunction_Set-CsTeamsGuestMeetingConfiguration PSCommand_Set-CsTeamsGuestMeetingConfiguration PSFunction_Set-CsTeamsGuestMessagingConfiguration PSCommand_Set-CsTeamsGuestMessagingConfiguration PSFunction_Set-CsTeamsIPPhonePolicy PSCommand_Set-CsTeamsIPPhonePolicy PSFunction_Set-CsTeamsMeetingBroadcastConfiguration PSCommand_Set-CsTeamsMeetingBroadcastConfiguration PSFunction_Set-CsTeamsMeetingBroadcastPolicy PSCommand_Set-CsTeamsMeetingBroadcastPolicy PSFunction_Set-CsTeamsMigrationConfiguration PSCommand_Set-CsTeamsMigrationConfiguration PSFunction_Set-CsTeamsMobilityPolicy PSCommand_Set-CsTeamsMobilityPolicy PSFunction_Set-CsTeamsNetworkRoamingPolicy PSCommand_Set-CsTeamsNetworkRoamingPolicy PSFunction_Set-CsTeamsRoomVideoTeleConferencingPolicy PSCommand_Set-CsTeamsRoomVideoTeleConferencingPolicy PSFunction_Set-CsTeamsSettingsCustomApp PSCommand_Set-CsTeamsSettingsCustomApp PSFunction_Set-CsTeamsShiftsAppPolicy PSCommand_Set-CsTeamsShiftsAppPolicy PSFunction_Set-CsTeamsShiftsConnection PSCommand_Set-CsTeamsShiftsConnection PSFunction_Set-CsTeamsShiftsConnectionInstance PSCommand_Set-CsTeamsShiftsConnectionInstance PSFunction_Set-CsTeamsSurvivableBranchAppliance PSCommand_Set-CsTeamsSurvivableBranchAppliance PSFunction_Set-CsTeamsSurvivableBranchAppliancePolicy PSCommand_Set-CsTeamsSurvivableBranchAppliancePolicy PSFunction_Set-CsTeamsTargetingPolicy PSCommand_Set-CsTeamsTargetingPolicy PSFunction_Set-CsTeamsTranslationRule PSCommand_Set-CsTeamsTranslationRule PSFunction_Set-CsTeamsUnassignedNumberTreatment PSCommand_Set-CsTeamsUnassignedNumberTreatment PSFunction_Set-CsTeamsVdiPolicy PSCommand_Set-CsTeamsVdiPolicy PSFunction_Set-CsTeamsWorkLoadPolicy PSCommand_Set-CsTeamsWorkLoadPolicy PSFunction_Set-CsTenantBlockedCallingNumbers PSCommand_Set-CsTenantBlockedCallingNumbers PSFunction_Set-CsTenantDialPlan PSCommand_Set-CsTenantDialPlan PSFunction_Set-CsTenantFederationConfiguration PSCommand_Set-CsTenantFederationConfiguration PSFunction_Set-CsTenantMigrationConfiguration PSCommand_Set-CsTenantMigrationConfiguration PSFunction_Set-CsTenantNetworkRegion PSCommand_Set-CsTenantNetworkRegion PSFunction_Set-CsTenantNetworkSite PSCommand_Set-CsTenantNetworkSite PSFunction_Set-CsTenantNetworkSubnet PSCommand_Set-CsTenantNetworkSubnet PSFunction_Set-CsTenantTrustedIPAddress PSCommand_Set-CsTenantTrustedIPAddress PSFunction_Set-CsUser PSCommand_Set-CsUser PSFunction_Set-CsUserCallingDelegate PSCommand_Set-CsUserCallingDelegate PSFunction_Set-CsUserCallingSettings PSCommand_Set-CsUserCallingSettings PSFunction_Set-CsVideoInteropServiceProvider PSCommand_Set-CsVideoInteropServiceProvider PSFunction_Set-CsComplianceRecordingForCallQueueTemplate PSCommand_Set-CsComplianceRecordingForCallQueueTemplate PSFunction_Set-CsSharedCallQueueHistoryTemplate PSCommand_Set-CsSharedCallQueueHistoryTemplate PSFunction_Start-CsExMeetingMigration PSCommand_Start-CsExMeetingMigration PSFunction_Sync-CsOnlineApplicationInstance PSCommand_Sync-CsOnlineApplicationInstance PSFunction_Test-CsEffectiveTenantDialPlan PSCommand_Test-CsEffectiveTenantDialPlan PSFunction_Test-CsInboundBlockedNumberPattern PSCommand_Test-CsInboundBlockedNumberPattern PSFunction_Test-CsTeamsShiftsConnectionValidate PSCommand_Test-CsTeamsShiftsConnectionValidate PSFunction_Test-CsTeamsTranslationRule PSCommand_Test-CsTeamsTranslationRule PSFunction_Test-CsTeamsUnassignedNumberTreatment PSCommand_Test-CsTeamsUnassignedNumberTreatment PSFunction_Test-CsVoiceNormalizationRule PSCommand_Test-CsVoiceNormalizationRule PSFunction_Unregister-CsOnlineDialInConferencingServiceNumber PSCommand_Unregister-CsOnlineDialInConferencingServiceNumber PSFunction_Update-CsAutoAttendant PSCommand_Update-CsAutoAttendant PSFunction_Update-CsCustomPolicyPackage PSCommand_Update-CsCustomPolicyPackage PSFunction_Update-CsPhoneNumberTag PSCommand_Update-CsPhoneNumberTag PSFunction_Update-CsTeamsShiftsConnection PSCommand_Update-CsTeamsShiftsConnection PSFunction_Update-CsTeamsShiftsConnectionInstance PSCommand_Update-CsTeamsShiftsConnectionInstance PSFunction_Update-CsTeamTemplate PSCommand_Update-CsTeamTemplate PSFunction_New-CsBatchTeamsDeployment PSCommand_New-CsBatchTeamsDeployment PSFunction_Get-CsBatchTeamsDeploymentStatus PSCommand_Get-CsBatchTeamsDeploymentStatus PSFunction_Get-CsPersonalAttendantSettings PSCommand_Get-CsPersonalAttendantSettings PSFunction_Set-CsPersonalAttendantSettings PSCommand_Set-CsPersonalAttendantSettings PSFunction_Set-CsOCEContext PSCommand_Set-CsOCEContext PSFunction_Clear-CsOCEContext PSCommand_Clear-CsOCEContext PSFunction_Get-CsRegionContext PSCommand_Get-CsRegionContext PSFunction_Set-CsRegionContext PSCommand_Set-CsRegionContext PSFunction_Clear-CsRegionContext PSCommand_Clear-CsRegionContext PSFunction_Get-CsMeetingMigrationTransactionHistory PSCommand_Get-CsMeetingMigrationTransactionHistory PSFunction_Get-CsMasVersionedSchemaData PSCommand_Get-CsMasVersionedSchemaData PSFunction_Get-CsMasObjectChangelog PSCommand_Get-CsMasObjectChangelog PSFunction_Get-CsBusinessVoiceDirectoryDiagnosticData PSCommand_Get-CsBusinessVoiceDirectoryDiagnosticData PSFunction_Get-CsCloudTenant PSCommand_Get-CsCloudTenant PSFunction_Get-CsCloudUser PSCommand_Get-CsCloudUser PSFunction_Get-CsHostingProvider PSCommand_Get-CsHostingProvider PSFunction_Set-CsTenantUserBackfill PSCommand_Set-CsTenantUserBackfill PSFunction_Invoke-CsCustomHandlerNgtprov PSCommand_Invoke-CsCustomHandlerNgtprov PSFunction_Invoke-CsCustomHandlerCallBackNgtprov PSCommand_Invoke-CsCustomHandlerCallBackNgtprov PSFunction_New-CsSdgDeviceTaggingRequest PSCommand_New-CsSdgDeviceTaggingRequest PSFunction_Get-CsMoveTenantServiceInstanceTaskStatus PSCommand_Get-CsMoveTenantServiceInstanceTaskStatus PSFunction_Move-CsTenantServiceInstance PSCommand_Move-CsTenantServiceInstance PSFunction_Move-CsTenantCrossRegion PSCommand_Move-CsTenantCrossRegion PSFunction_Invoke-CsDirectObjectSync PSCommand_Invoke-CsDirectObjectSync PSFunction_New-CsSDGDeviceTransferRequest PSCommand_New-CsSDGDeviceTransferRequest PSFunction_Get-CsAadTenant PSCommand_Get-CsAadTenant PSFunction_Get-CsAadUser PSCommand_Get-CsAadUser PSFunction_Clear-CsCacheOperation PSCommand_Clear-CsCacheOperation PSFunction_Move-CsAvsTenantPartition PSCommand_Move-CsAvsTenantPartition PSFunction_Invoke-CsMsodsSync PSCommand_Invoke-CsMsodsSync PSFunction_Get-CsUssUserSettings PSCommand_Get-CsUssUserSettings PSFunction_Set-CsUssUserSettings PSCommand_Set-CsUssUserSettings PSFunction_Get-CsPhoneNumberPolicyAssignment PSCommand_Get-CsPhoneNumberPolicyAssignment PSFunction_Set-CsPhoneNumberPolicyAssignment PSCommand_Set-CsPhoneNumberPolicyAssignment PSFunction_Invoke-CsRehomeuser PSCommand_Invoke-CsRehomeuser PSFunction_Set-CsNotifyCache PSCommand_Set-CsNotifyCache PSIncludes_Function + 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-10-02T21:40:00Z - 7.3.1 + 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\ESRPClientLogs0821070850426.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 + 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 @@ -1455,7 +1491,7 @@ Microsoft Corporation
- C:\Temp\MicrosoftTeams\MicrosoftTeams\7.3.1 + C:\Users\kris6\Documents\Programming\CIPP-Project\CIPP-API\Modules\MicrosoftTeams\MicrosoftTeams\7.4.0 diff --git a/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 new file mode 100644 index 000000000000..933a7990f95a --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 @@ -0,0 +1,237 @@ +#This file is setting HostingEnvironment environment variable using which we can decide in nested modules, that which cmdlets it has to export. + +# We don't have access to the module at load time, since loading occurs last +# Instead we set up a one-time event to set the OnRemove scriptblock once the module has been loaded +$null = Register-EngineEvent -SourceIdentifier PowerShell.OnIdle -MaxTriggerCount 1 -Action { + $m = Get-Module MicrosoftTeams + $m.OnRemove = { + Write-Verbose "Removing MSTeamsReleaseEnvironment" + $env:MSTeamsReleaseEnvironment = $null + Disconnect-MicrosoftTeams + } +} + +$env:MSTeamsReleaseEnvironment = 'TeamsGA' + +#The below line will be uncommented by build process if its preview module + +#preview $env:MSTeamsReleaseEnvironment = 'TeamsPreview' + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6QSrbNq5qY4CX +# 15x6qVrEe3OnMqckrZDKvtChfXP5jaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKwh +# nAu5OLUmTWVzGDxzwu87ECHdTJ+a4iX/WmYDn6qeMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAGAFmuGT0xYp48V7BoXX6c89KcPLcocoWe9yk +# OsZ2mM0SV8SDsDRat3chIFt6CQlTBXdfH/0kHRTKmp5a9zPdfiqOEfpcSIfM1spN +# EfChvGCHMmj6tm9rVOiTm/ACgZ/a36TYoO/Xk2qLB5LR8RceaGaJktbddSv2HmVw +# t2T0Y3p2Wb/NdaaxfibTrbis1pf4UFkndDUrsBN9xntUYr+2s9Lb46uB8CMItikt +# 5+eKPnrWrjU/sTq2Z8FyRt5t24eGJJJhBkXBFMuqgCHzezt+iayOKjPlHBVQgQlu +# 1pLfVECoeblhROX5wExp4DSg2/bNqGMPgq7Q8RPTECU992WI2aGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCybXx942s9ucM9RAj+edkEKhgA/IQAl6IT +# JKKbMorgnwIGaKR4CbEBGBMyMDI1MTAwMTA4MzMwNi4wODJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 +# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG +# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd +# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 +# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK +# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah +# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 +# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L +# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p +# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN +# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG +# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW +# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf +# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat +# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS +# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V +# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 +# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs +# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M +# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe +# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z +# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw +# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 +# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA +# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy +# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH +# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot +# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c +# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp +# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQg7HjPTEjWdbHC5DbQT2CRTnCRPtHiIR1bwkSqcqBdea4wgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS +# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+vs7RNN3M8bTAAEAAAH6MCIEICgabd0aMglwPIRAQpeLtPTt+Pmsi4Ljxvse +# jujm3TVJMA0GCSqGSIb3DQEBCwUABIICAKftgUAhg5jy45bSUwWDwbN2MyiesyeP +# EbW/RtV5SWp04Sh8iODjU2kr16FqEYRLcQiFngcx7nulT2HZS2PjxNRMdYEZQhDu +# Bw0rrcusqyGYqwrdwOuphEEtSyDX9o99H3ZWhJLWEtH63dNeBg/t+y9JOcD1EoIa +# iUPLcQSrJ8W13tuRDLAfQ+4EKH6F1l8mePWB8tbV8ukD8yqu46TxSUj3ssuMzm5x +# Ry1attYEp+HiHFvAX8zq5RR0flTziW23ytEy3VXSDaUb3pghGXMQ6WjDcQYxmPII +# Wle+N7Q4S2DBOEAf7/5DNUrDEMLCDpOv6qMurDbA1RCxKARtgPY01o/7nlrqn2ET +# 2rEgJGNmB0LMIW64Es4aIr8w3IZSvPzYYNonkf3PfMFoS08eysKN7g3z0RuR67rE +# ol4Q7/6JMbcvTaK/ha5nr08PnPDdhFQXxx2OU9SeAwmTpz3ESeXyjSq1qeGE4mUc +# a4GaQcRLCOgGACt2F7mZuy8c/D6MEAl1wUYeHHwVBj1hpP30q2fL8dXTVEQPR7hL +# bR9gVoy7xHb3jrqhcQiy/N9ys3kt6B3H6iNgUOhKnJcRFIZ9NBn35/Y7dZ3tzovy +# r8BNizclS3wvtMoaDn4i+zaqqUMpGnlf+nw6MDk5p/04fGzjMUT5mTa1blP+ODvu +# hmtke0jN2dH2 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/SfbRpsModule.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/SfbRpsModule.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml index f3d565131cc2..e35f4203faf1 100644 --- a/Modules/MicrosoftTeams/7.3.1/SfbRpsModule.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml @@ -26319,220 +26319,219 @@ - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json new file mode 100644 index 000000000000..0bcf9b1b11d5 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json @@ -0,0 +1 @@ +{"StdOut":"******************************************************************************\r\nMachine Information\r\nMachine Name: at-greenXRHDM6\r\nMachine Ip: 10.211.0.35\r\nOperating System: Microsoft Windows NT 10.0.26100.0\r\nUser Name: at-greenXRHDM6$\r\nProcessor Count: 16\r\nProcess Name: EsrpClient\r\nProcess Id: 12620\r\nCaller Program: EsrpClient.exe\r\nIdentity: NT AUTHORITY\\NETWORK SERVICE\r\nProcess Version: 1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\r\nProcess Bitness: 64 bit\r\n******************************************************************************\r\nCommandline received: Sign | -a | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_732621.json | -p | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_111037.json | -c | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_983718.json | -i | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp16552_249474.json | -o | c:\\Temp\\AzureTemp\\TFSTemp\\v3AFC7.tmp | -l | Verbose ESRP session Id is: 66dab103-b92d-4f32-9b63-9c12aa64e33f\r\n2025-10-01T08:54:04.7640203Z:Command you are trying to use is: Sign\r\n2025-10-01T08:54:04.7708276Z:Correlation Vector for this run is: 09677df8-c683-43ee-a868-1ff194b9c298\r\n2025-10-01T08:54:04.7708276Z:Groupid for this run is empty\r\n2025-10-01T08:54:04.8956931Z:request signing cert being used is this thumbprint: F388C0BB292D7EA97B143D697E3A06B712A7DA78 in store LocalMachine\\My\r\n2025-10-01T08:54:04.8956931Z:Both certificates validation passed.\r\n2025-10-01T08:54:04.8977020Z:The auth cert we choose to use, subject name is: CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f.microsoft.com, thumbprint is: 7C97C9D92D40890074C31B2FE8A8C25E7DB98A78\r\n2025-10-01T08:54:05.0004372Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:04Z] ConfidentialClientApplication 37368736 created\r\n2025-10-01T08:54:05.0024508Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0231481Z:There is no memory mapped file accociated with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0283815Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0630559Z:Validate and Renew Token if necessary finished: 00:00:00.0309379\r\n2025-10-01T08:54:05.1802170Z:Session request is: {\r\n \"expiresAfter\": \"3.00:00:00\",\r\n \"partitionCount\": 0,\r\n \"isProvisionStorage\": true,\r\n \"isLegacyCopsModel\": false,\r\n \"commandName\": \"Sign\",\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\"\r\n}\r\n2025-10-01T08:54:05.2142799Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z] ConfidentialClientApplication 29578451 created\r\n2025-10-01T08:54:05.2142799Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.2214329Z:Gateway Client: a new client and client id is created: 657591f3-1578-4b8a-ae04-ed5b1d2bacd2\r\n2025-10-01T08:54:05.2833584Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] MSAL MSAL.Desktop with assembly version '4.70.0.0'. CorrelationId(ab77b488-0329-4456-8a76-4141701ccbbe)\r\n2025-10-01T08:54:05.2984143Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] === AcquireTokenForClientParameters ===\r\nSendX5C: True\r\nForceRefresh: False\r\nAccessTokenHashToRefresh: False\r\n\r\n2025-10-01T08:54:05.3126256Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n=== Request Data ===\r\nAuthority Provided? - True\r\nScopes - https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\nExtra Query Params Keys (space separated) - \r\nApiId - AcquireTokenForClient\r\nIsConfidentialClient - True\r\nSendX5C - True\r\nLoginHint ? False\r\nIsBrokerConfigured - False\r\nHomeAccountId - False\r\nCorrelationId - ab77b488-0329-4456-8a76-4141701ccbbe\r\nUserAssertion set: False\r\nLongRunningOboCacheKey set: False\r\nRegion configured: \r\n\r\n2025-10-01T08:54:05.3135235Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] === Token Acquisition (ClientCredentialRequest) started:\r\n\t Scopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\n\tAuthority Host: login.microsoftonline.com\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Internal cache] Total number of cache partitions found while getting access tokens: 0\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [FindAccessTokenAsync] Discovered 0 access tokens in cache using partition key: 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d_AppTokenCache\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [FindAccessTokenAsync] No access tokens found in the cache. Skipping filtering. \r\n2025-10-01T08:54:05.3420748Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Instance discovery is enabled and will be performed\r\n2025-10-01T08:54:05.3464079Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Region discovery] WithAzureRegion not configured. \r\n2025-10-01T08:54:05.3464079Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Region discovery] Not using a regional authority. \r\n2025-10-01T08:54:05.3501710Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Tried to use network cache provider for login.microsoftonline.com. Success? False. \r\n2025-10-01T08:54:05.3608975Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Fetching instance discovery from the network from host login.microsoftonline.com. \r\n2025-10-01T08:54:05.3798361Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [Oauth2Client] Sending GET request \r\n2025-10-01T08:54:05.3840050Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [HttpManager] ExecuteAsync\r\n2025-10-01T08:54:05.3900338Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Sending request. Method: GET. Host: https://login.microsoftonline.com. Binding Certificate: False \r\n2025-10-01T08:54:05.7221789Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Received response. Status code: OK. \r\n2025-10-01T08:54:05.7327215Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [HttpManager] ExecuteAsync in 350 ms\r\n2025-10-01T08:54:05.7339629Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [Oauth2Client] Sending GET request in 355 ms\r\n2025-10-01T08:54:05.7464599Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [OAuth2Client] Deserializing response\r\n2025-10-01T08:54:05.9299240Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [OAuth2Client] Deserializing response in 184 ms\r\n2025-10-01T08:54:05.9319285Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Tried to use network cache provider for login.microsoftonline.com. Success? True. \r\n2025-10-01T08:54:05.9319285Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] After hitting the discovery endpoint, the network provider found an entry for login.microsoftonline.com ? True. \r\n2025-10-01T08:54:05.9355197Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Authority validation enabled? True. \r\n2025-10-01T08:54:05.9355197Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Authority validation - is known env? True. \r\n2025-10-01T08:54:05.9527328Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting TokenClient:SendTokenRequestAsync\r\n2025-10-01T08:54:05.9568333Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [TokenClient] Before adding the client assertion / secret\r\n2025-10-01T08:54:05.9578390Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Building assertion from certificate with clientId: 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f at endpoint: https://login.microsoftonline.com/33e01921-4d64-4f8c-a055-5bdaffd5e33d/oauth2/v2.0/token\r\n2025-10-01T08:54:05.9578390Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Proceeding with JWT token creation and adding client assertion.\r\n2025-10-01T08:54:05.9940457Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [TokenClient] After adding the client assertion / secret\r\n2025-10-01T08:54:06.0032118Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Token Client] Fetching MsalTokenResponse .... \r\n2025-10-01T08:54:06.0032118Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [Oauth2Client] Sending POST request \r\n2025-10-01T08:54:06.0095336Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [HttpManager] ExecuteAsync\r\n2025-10-01T08:54:06.0095336Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Sending request. Method: POST. Host: https://login.microsoftonline.com. Binding Certificate: False \r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Received response. Status code: OK. \r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [HttpManager] ExecuteAsync in 97 ms\r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [Oauth2Client] Sending POST request in 102 ms\r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [OAuth2Client] Deserializing response\r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [OAuth2Client] Deserializing response in 17 ms\r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] ScopeSet was missing from the token response, so using developer provided scopes in the result. \r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished TokenClient:SendTokenRequestAsync in 170 ms\r\n2025-10-01T08:54:06.1249866Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Checking client info returned from the server..\r\n2025-10-01T08:54:06.1253352Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Saving token response to cache..\r\n2025-10-01T08:54:06.1339807Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n[MsalTokenResponse]\r\nError: \r\nErrorDescription: \r\nScopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\nExpiresIn: 86399\r\nRefreshIn: 43199\r\nAccessToken returned: True\r\nAccessToken Type: Bearer\r\nRefreshToken returned: False\r\nIdToken returned: False\r\nClientInfo returned: False\r\nFamilyId: \r\nWamAccountId exists: False\r\n2025-10-01T08:54:06.1350240Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] ID Token not present in response. \r\n2025-10-01T08:54:06.1362438Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Cannot determine home account ID - or id token or no client info and no subject \r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Entering token cache semaphore. Count Real semaphore: True. Count: 1.\r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Entered token cache semaphore. \r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Saving AT in cache and removing overlapping ATs...\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Looking for scopes for the authority in the cache which intersect with https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z] [Internal cache] Total number of cache partitions found while getting access tokens: 0\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Intersecting scope entries count - 0\r\n2025-10-01T08:54:06.1449186Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Not saving to ADAL legacy cache. \r\n2025-10-01T08:54:06.1449186Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Released token cache semaphore. \r\n2025-10-01T08:54:06.1486739Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n\t=== Token Acquisition finished successfully:\r\n2025-10-01T08:54:06.1491522Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] AT expiration time: 10/2/2025 8:54:05 AM +00:00, scopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default. source: IdentityProvider\r\n2025-10-01T08:54:06.1491522Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Fetched access token from host login.microsoftonline.com. \r\n2025-10-01T08:54:06.1511578Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n[LogMetricsFromAuthResult] Cache Refresh Reason: NoCachedAccessToken\r\n[LogMetricsFromAuthResult] DurationInCacheInMs: 0\r\n[LogMetricsFromAuthResult] DurationTotalInMs: 846\r\n[LogMetricsFromAuthResult] DurationInHttpInMs: 426\r\n2025-10-01T08:54:06.1511578Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] TokenEndpoint: ****\r\n2025-10-01T08:54:06.1654484Z:Use AAD token. CERT\r\n2025-10-01T08:54:06.1750036Z:New Token Acquisition Time: 00:00:00.9366187\r\n2025-10-01T08:54:06.2075678Z:Gateway Client: the client id that is sending a request is: 657591f3-1578-4b8a-ae04-ed5b1d2bacd2\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:07.0409063+00:00\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:07.4024972+00:00\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.3615909\r\n2025-10-01T08:54:07.4893906Z:Session request requestid: 0cd4a227-2e49-4831-91bc-e5b7b1f0be66, and submission status is: Pass\r\n2025-10-01T08:54:07.5499219Z:Provision storage complete. Total shards: 100\r\n2025-10-01T08:54:07.5544544Z:Loading DigestSignErrorMappingCache mapping info\r\n2025-10-01T08:54:07.5804830Z:DigestSignErrorMappingCache from server, # of DigestSignOperationErrorPatterns object we get is :: \r\n2025-10-01T08:54:07.6335888Z:Consolidate DigestSignErrorMappingCache, # of DigestSignOperationErrorPatterns object we get is :: 34\r\n2025-10-01T08:54:07.6343279Z:Successfully retrieved policy: policy is {\"policy\":{\"id\":\"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f-0\",\"workflowExecutionType\":3}}\r\n2025-10-01T08:54:07.6446930Z:Successfully get telemetry connection string: Endpo......\r\n2025-10-01T08:54:07.6466995Z:Warning: \r\n2025-10-01T08:54:07.6501437Z:IAuthInfo constructed: {\r\n \"authenticationType\": \"AAD_CERT\",\r\n \"clientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"tenantId\": \"33e01921-4d64-4f8c-a055-5bdaffd5e33d\",\r\n \"aadAuthorityBaseUri\": \"https://login.microsoftonline.com/\",\r\n \"authCert\": {\r\n \"storeLocation\": \"LocalMachine\",\r\n \"storeName\": \"My\",\r\n \"subjectName\": \"CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f.microsoft.com\",\r\n \"sendX5c\": true,\r\n \"withAzureRegion\": false,\r\n \"getCertFromKeyVault\": false,\r\n \"keyVaultName\": null,\r\n \"keyVaultCertName\": null\r\n },\r\n \"requestSigningCert\": {\r\n \"storeLocation\": \"LocalMachine\",\r\n \"storeName\": \"My\",\r\n \"subjectName\": \"CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"sendX5c\": false,\r\n \"withAzureRegion\": false,\r\n \"getCertFromKeyVault\": false,\r\n \"keyVaultName\": null,\r\n \"keyVaultCertName\": null\r\n },\r\n \"oAuthToken\": null,\r\n \"version\": \"1.0.0\",\r\n \"esrpClientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"federatedTokenData\": null,\r\n \"federatedTokenPath\": null\r\n}\r\n2025-10-01T08:54:07.6512257Z:IPolicyInfo constructed: {\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\",\r\n \"version\": \"1.0.0\"\r\n}\r\n2025-10-01T08:54:07.6559153Z:IConfigInfo constructed: {\r\n \"esrpApiBaseUri\": \"https://api.esrp.microsoft.com/api/v2/\",\r\n \"esrpSessionTimeoutInSec\": 60,\r\n \"minThreadPoolThreads\": 64,\r\n \"maxDegreeOfParallelism\": 64,\r\n \"exponentialFirstFastRetry\": true,\r\n \"exponentialRetryCount\": 2,\r\n \"exponentialRetryDeltaBackOff\": \"00:00:05\",\r\n \"exponentialRetryMaxBackOff\": \"00:01:00\",\r\n \"exponentialRetryMinBackOff\": \"00:00:03\",\r\n \"appDataFolder\": \"C:\\\\Windows\\\\ServiceProfiles\\\\NetworkService\\\\AppData\\\\Local\",\r\n \"certificateCacheFolder\": null,\r\n \"version\": \"1.0.0\",\r\n \"exitOnFlaggedFile\": false,\r\n \"flaggedFileClientWaitTimeout\": \"1.00:00:00\",\r\n \"servicePointManagerDefaultConnectionLimit\": 64,\r\n \"isOnPremGateway\": false,\r\n \"diagnosticListeners\": null,\r\n \"securityProtocolType\": \"Tls12\",\r\n \"parallelOperationsInFileUploadDownload\": 300,\r\n \"maxTelemetryBuffer\": 200000,\r\n \"telemetryTimeoutInSec\": 0,\r\n \"resourceUri\": \"https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com\",\r\n \"cacheRootFolder\": null,\r\n \"cachedFileTTLInMin\": 7200\r\n}\r\n2025-10-01T08:54:07.9315962Z:Client Telemetry: Xpert agent is not running on the machine. Using events hub for processing client telemetry.\r\n2025-10-01T08:54:08.1322038Z:Key: TotalSignOperationDataCount, Value: 1\r\n2025-10-01T08:54:08.1520078Z:Start Time:10/1/2025 8:54:08 AM, Starting the sign workflow...\r\n2025-10-01T08:54:08.1638281Z:some input info: {\r\n \"contextData\": {\r\n \"build_buildnumber\": \"AzureDevOps_M261_20250915.2\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.35\",\r\n \"userAgent\": \"at-greenXRHDM6\"\r\n },\r\n \"sourceDirectory\": null,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"destinationDirectory\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"sizeInBytes\": 0,\r\n \"name\": \"manifest.cat\",\r\n \"isSuccess\": null,\r\n \"operationStartedAt\": \"0001-01-01T00:00:00+00:00\",\r\n \"operationEndedAt\": \"0001-01-01T00:00:00+00:00\",\r\n \"operationDurationMS\": 0,\r\n \"processName\": \"EsrpClient\",\r\n \"processId\": 12620,\r\n \"processVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"customerCorrelationId\": null,\r\n \"esrpClientSessionGuid\": \"66dab103-b92d-4f32-9b63-9c12aa64e33f\",\r\n \"callerProgram\": \"EsrpClient\",\r\n \"indentity\": \"NT AUTHORITY\\\\NETWORK SERVICE\",\r\n \"clientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"exceptionData\": null,\r\n \"apiBaseUrl\": \"https://api.esrp.microsoft.com/api/v2/\",\r\n \"handlerWorkflow\": \"Sign\",\r\n \"submissionRequest\": {\r\n \"contextData\": {\r\n \"build_buildnumber\": \"AzureDevOps_M261_20250915.2\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.35\",\r\n \"userAgent\": \"at-greenXRHDM6\"\r\n },\r\n \"groupId\": null,\r\n \"correlationVector\": \"09677df8-c683-43ee-a868-1ff194b9c298\",\r\n \"driEmail\": null,\r\n \"version\": \"1.0.0\"\r\n },\r\n \"policyInfo\": {\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\",\r\n \"version\": \"1.0.0\"\r\n },\r\n \"osVersion\": \"Microsoft Windows NT 10.0.26100.0\",\r\n \"executingMachineIPAddress\": \"10.211.0.35\"\r\n}\r\n2025-10-01T08:54:08.2134377Z:Executing SignWorkflowType is DigestSignStaticAzure\r\n2025-10-01T08:54:08.2332335Z:Source file \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" hashed in 4 ms\r\n2025-10-01T08:54:08.2878722Z:Thread: 1 - Certificate file mutex \"AYe1piBMWl6c+yAfCCK+GYCJgWyyp4b/mXvqszRe4cs=_CP-464321\" acquired (waited 0 ms).\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:08Z] ConfidentialClientApplication 44123454 created\r\n2025-10-01T08:54:08.3065632Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.3070274Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.3070274Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.5082531Z:Global cached token is valid from 10/1/2025 8:49:06 AM to 10/2/2025 8:54:06 AM (UTC). Total validity from current time is 86397.4917469 seconds\r\n2025-10-01T08:54:08.5082531Z:Validate and Renew Token if necessary finished: 00:00:00.2016961\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:08Z] ConfidentialClientApplication 20852350 created\r\n2025-10-01T08:54:08.5082531Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.5082531Z:Gateway Client: a new client and client id is created: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:08.5082531Z:10/1/2025 8:54:08 AM +00:00:Digest Signing Factory Client type loaded is - [AzureGatewaySubmitter].\r\n2025-10-01T08:54:08.5183009Z:Existing Token Acquisition Time: 00:00:00.0004403\r\n2025-10-01T08:54:08.5964809Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:09.0435903+00:00\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:09.1072230+00:00\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0636327\r\n2025-10-01T08:54:09.1092296Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:09.1092296+00:00\r\n2025-10-01T08:54:09.6351902Z:Existing Token Acquisition Time: 00:00:00.0005160\r\n2025-10-01T08:54:09.6397527Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:10.1268031+00:00\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:10.2161062+00:00\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0893031\r\n2025-10-01T08:54:10.2197530Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:10.2197530+00:00\r\n2025-10-01T08:54:10.2208065Z:10/1/2025 8:54:10 AM +00:00: Status Request - Non-successful status returned: Inprogress, operation id is: 5224c384-4c8c-40ae-853d-3f26b84c0514 - Attempt 1 (Delaying 00:00:00.5000000)...\r\n2025-10-01T08:54:10.2208065Z:Existing Token Acquisition Time: 00:00:00.0003484\r\n2025-10-01T08:54:10.2208065Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:10.6355854+00:00\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:10.6908402+00:00\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0552548\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:10.6908402+00:00\r\n2025-10-01T08:54:10.6908402Z:10/1/2025 8:54:10 AM +00:00: Status Request - Non-successful status returned: Inprogress, operation id is: 5224c384-4c8c-40ae-853d-3f26b84c0514 - Attempt 2 (Delaying 00:00:00.5000000)...\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events published in this batch: 4\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events received so far in this session: 4\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events published so far in this session: 4\r\n2025-10-01T08:54:11.2019208Z:Existing Token Acquisition Time: 00:00:00.0007189\r\n2025-10-01T08:54:11.2019208Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:11.6262840+00:00\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:11.7060125+00:00\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0797285\r\n2025-10-01T08:54:11.7108793Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:11.7100838+00:00\r\n2025-10-01T08:54:11.7149424Z:Reading thumbprint from \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\" (9692 bytes)...\r\n2025-10-01T08:54:11.7376912Z:Thread: 1 - Wrote new certificate file to \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\".\r\n2025-10-01T08:54:11.7376912Z:Thread: 1 - Certificate file mutex \"AYe1piBMWl6c+yAfCCK+GYCJgWyyp4b/mXvqszRe4cs=_CP-464321\" released (held for 3449 ms).\r\n2025-10-01T08:54:11.7376912Z:digest sign request expire time is: 10/1/2025 8:55:07 AM\r\n2025-10-01T08:54:15.6252656Z:Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe sign /NPH /fd \"SHA256\" /f \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\" /sha1 \"AD95D3F9C0F944EB9243147B346F8B93A7A6BB67\" /du \"https://www.1eswiki.com/wiki/ADO_Manifest_Generator\" /d \"Packaging SSSC Codesign - DigestSign\" /tr \"http://aztss.trafficmanager.net/TSS/HttpTspServer\" /td sha256 /dlib \"c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\EsrpClient.Sign.DigestSignLib.dll\" /dmdf \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\C3333C0DFCC7410D886C4B72FA96BB94.json\" \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" completed in 3885 ms\r\nExit Code: 0\r\nStdOut:\r\nDone Adding Additional Store\r\n\r\nESRP Digest Signing\r\n\r\n2025-10-01T08:54:12.6750185Z:Digest Signer : SecurityProtocolType used from the metadata info is : Tls12\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:12Z] ConfidentialClientApplication 654897 created\r\n2025-10-01T08:54:12.8131862Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:12.8149316Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:12.9258856Z:Global cached token is valid from 10/1/2025 8:49:06 AM to 10/2/2025 8:54:06 AM (UTC). Total validity from current time is 86393.0741144 seconds\r\n2025-10-01T08:54:12.9258856Z:Validate and Renew Token if necessary finished: 00:00:00.1111354\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:12Z] ConfidentialClientApplication 49044892 created\r\n2025-10-01T08:54:12.9892728Z:Existing Token Acquisition Time: 00:00:00.0024867\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Request Signing Time: 00:00:00.1160404\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Request Send Time: 00:00:00.9840257\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Overall Submission Time: 00:00:01.1164695\r\n2025-10-01T08:54:14.1082545Z:Operation ID: f937b610-6299-480d-b6ca-7661e84e5156\r\n2025-10-01T08:54:14.6213390Z:Gateway Status Delay Time: 00:00:00.5123966\r\n2025-10-01T08:54:14.6334345Z:Existing Token Acquisition Time: 00:00:00.0005967\r\n2025-10-01T08:54:15.0550435Z:Gateway Status Request Send Time: 00:00:00.4156499\r\n2025-10-01T08:54:15.0550435Z:Gateway Status Overall Time: 00:00:00.4190311\r\n2025-10-01T08:54:15.0645058Z:Gateway Submission Duration: 1431\r\n2025-10-01T08:54:15.0645058Z:Gateway Submission Attempts: 1\r\n2025-10-01T08:54:15.0645058Z:Gateway GetStatus Duration: 433\r\n2025-10-01T08:54:15.0645058Z:Gateway GetStatus Attempts: 1\r\n2025-10-01T08:54:15.0645058Z:$$5a9f5111cf8f42a0a0edc419862b95dc##_ThrottleCount: 0\r\n2025-10-01T08:54:15.0645058Z:$$65265a48891640eb86e148d3c9a627fa##_ThrottledTimeInSec: 0\r\n2025-10-01T08:54:15.0645058Z:Service Call: 2544.6251 ms\r\nSuccessfully signed: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\n\r\n\r\n\r\nStdErr:\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.8072720Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.8086553Z:Warning: Warning: Operation Error (1) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" - Retrying in 500 ms...\r\n2025-10-01T08:54:15.9287132Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.9287132Z:Warning: Warning: Operation Error (2) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" - Retrying in 500 ms...\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events published in this batch: 2\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events received so far in this session: 7\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events published so far in this session: 6\r\n2025-10-01T08:54:16.5204567Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:16.5519160Z:\r\n2025-10-01T08:54:16.5535963Z:Error: System.AggregateException: One or more errors occurred. ---> MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)\r\n --- End of inner exception stack trace ---\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.d__23.MoveNext()\r\n---> (Inner Exception #0) MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)<---\r\n\r\n2025-10-01T08:54:16.5847103Z:Constructing EsrpClientResponse\r\n2025-10-01T08:54:16.5851950Z:EsrpClientResponse is constructed\r\n2025-10-01T08:54:16.6167319Z:OperationDurationMs: 8380\r\n2025-10-01T08:54:16.6167319Z:DynamicCertGenerationTimeMs: 0\r\n2025-10-01T08:54:16.6167319Z:TimeToGetStorageShradsMs: 0\r\n2025-10-01T08:54:16.6167319Z:TotalScanSubmissionTimeMs: 0\r\n2025-10-01T08:54:16.6167319Z:ThrottleCount: 0\r\n2025-10-01T08:54:16.6167319Z:ThrottledTimeInSec: 0\r\n2025-10-01T08:54:16.6167319Z:\r\n2025-10-01T08:54:16.6167319Z:0/1 files signed in 00:00:08.380 (0 files/s, total number of certs refreshed: 0)\r\n2025-10-01T08:54:16.6194710Z:result json is: {\r\n \"submissionResponses\": [\r\n {\r\n \"fileStatusDetail\": [\r\n {\r\n \"sourceHash\": \"6L9bS5hm8BqIMDFl6QFcoxjrnEcawUuHYDPkw1cTjj8=\",\r\n \"hashType\": \"sha256\",\r\n \"destinationHash\": null,\r\n \"certificateThumbprint\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"destinationFileSizeInBytes\": 0,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\"\r\n }\r\n ],\r\n \"operationId\": \"f937b610-6299-480d-b6ca-7661e84e5156\",\r\n \"customerCorrelationId\": \"09677df8-c683-43ee-a868-1ff194b9c298\",\r\n \"statusCode\": \"failCanRetry\",\r\n \"errorInfo\": {\r\n \"code\": \"3138\",\r\n \"details\": {\r\n \"operation\": \"c:\\\\AT\\\\sitesroot\\\\0\\\\bin\\\\Plugins\\\\ESRPClient\\\\Win10.x86\\\\signtool.exe verify /pa /tw \\\"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\\\"\",\r\n \"exitCode\": \"1\",\r\n \"stdOut\": \"File: c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\\r\\nIndex Algorithm Timestamp \\r\\n========================================\\r\\n\\r\\nNumber of errors: 1\\r\\n\\r\\n\\r\\n\",\r\n \"stdErr\": \"SignTool Error: A certificate chain processed, but terminated in a root\\r\\n\\tcertificate which is not trusted by the trust provider.\\r\\n\\r\\n\"\r\n },\r\n \"innerError\": null\r\n }\r\n }\r\n ],\r\n \"esrpClientSessionGuid\": \"66dab103-b92d-4f32-9b63-9c12aa64e33f\",\r\n \"version\": \"1.0.0\"\r\n}\r\n2025-10-01T08:54:16.6629484Z:Warning: \r\n\r\n2025-10-01T08:54:16.6629484Z:esrp-client-finalTime: 12772.3093\r\n2025-10-01T08:54:16.6629484Z:Final return code is: 1\r\n2025-10-01T08:54:16.6629484Z:ClientTelemetryDispose started, this is not affecting Exe reliability, only lost telemetry if error happens ***********************\r\n2025-10-01T08:54:16.6681609Z:Client Telemetry: Flushing telemetry buffer with timeout 0 ms\r\n2025-10-01T08:54:16.6712004Z:Client Telemetry: Flushing telemetry buffer completed within timeout (true/false): False\r\n2025-10-01T08:54:16.6712004Z:Client Telemetry: Disposing telemetry buffer and event hub client\r\n2025-10-01T08:54:16.6743576Z:Client Telemetry: Events published in this batch: 1\r\n2025-10-01T08:54:16.6750734Z:Client Telemetry: Events received so far in this session: 11\r\n2025-10-01T08:54:16.6750734Z:Client Telemetry: Events published so far in this session: 7\r\n2025-10-01T08:54:17.0123717Z:Warning: event lost number: 4\r\n2025-10-01T08:54:17.0123717Z:total event processed number: 7\r\n2025-10-01T08:54:17.0123717Z:total event received number: 11\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.TotalEventsProcessed##: 7\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.TotalEventsReceived##: 11\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.DisposeTimeMilliseconds##: 349\r\n2025-10-01T08:54:17.0123717Z:ClientTelemetryDispose ended ***********************\r\n","StdErr":"2025-10-01T08:54:16.5535963Z:Error: System.AggregateException: One or more errors occurred. ---> MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)\r\n --- End of inner exception stack trace ---\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.d__23.MoveNext()\r\n---> (Inner Exception #0) MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)<---\r\n\r\n","ExitCode":1,"RunningTime":"00:00:13.9788515"} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/bsi.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose similarity index 90% rename from Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/bsi.cose rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose index 615b6a2fe0e3..a0e730c8c710 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/bsi.cose and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose differ diff --git a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/bsi.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json similarity index 50% rename from Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/bsi.json rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json index ed15ef050cb1..26f241cd93d5 100644 --- a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/bsi.json +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json @@ -1 +1 @@ -{"Source":"InternalBuild","Data":{"System.CollectionId":"2ce6486e-7d3b-47bb-8e16-5f19a43015c9","System.DefinitionId":"17372","System.TeamProjectId":"81cf09ca-992f-4cab-9a5f-96d728b4c339","System.TeamProject":"SBS","Build.BuildId":"71990329","Build.BuildNumber":"2.250821.4","Build.DefinitionName":"infrastructure_itpro_teamspowershellmodule","Build.DefinitionRevision":"123","Build.Repository.Name":"infrastructure_itpro_teamspowershellmodule","Build.Repository.Provider":"TfsGit","Build.Repository.Id":"fe62ea1f-ff64-4287-87a3-b6184a6fc36c","Build.SourceBranch":"refs/heads/release/7.3.1-GA","Build.SourceBranchName":"7.3.1-GA","Build.SourceVersion":"95f579459a0a2ffd5cfb44edcee076d63afd820a","Build.Repository.Uri":"https://skype.visualstudio.com/SBS/_git/infrastructure_itpro_teamspowershellmodule","EbomId":"dd6ac6b7-e630-5712-ae39-627831b32752","1ES.PT.TemplateType":"official"},"Feed":null} \ No newline at end of file +{"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.3.1/_manifest/spdx_2.2/manifest.cat b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat similarity index 56% rename from Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.cat rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat index 97c774062e8c..5a0b504e91d0 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.cat and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat differ diff --git a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose similarity index 90% rename from Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.cose rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose index 0e6e8fa2f071..55ebc2964d73 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.cose and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose differ diff --git a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json similarity index 78% rename from Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.json rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json index 6e3005b06af8..8d7834b0ce09 100644 --- a/Modules/MicrosoftTeams/7.3.1/_manifest/spdx_2.2/manifest.spdx.json +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json @@ -2,15 +2,15 @@ "files": [ { "fileName": "./../../_manifest/spdx_2.2/manifest.spdx.json", - "SPDXID": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-A8B741FAA7E4DD5A1A4B41C651A76F8E4871D581", + "SPDXID": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-DF0BA998C710F21E197664508D999D436F9101B6", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "1c5afebb87c11a1a6ce1c2c0c4d7f6826d6da860ef1aa63f469851ffc1ef6fc4" + "checksumValue": "641bf4f36bd0ab896c4dc013a00539ef9161447d85f6949218765ee4818753fb" }, { "algorithm": "SHA1", - "checksumValue": "a8b741faa7e4dd5a1a4b41c651a76f8e4871d581" + "checksumValue": "df0ba998c710f21e197664508d999d436f9101b6" } ], "licenseConcluded": "NOASSERTION", @@ -24,15 +24,15 @@ }, { "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-E99F7324A88E8515D0C2286047C68B445050B553", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-358D6795FF6A747404383425E64D23D1336CB1C0", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "f85f6b97ec98785e908f4681790b3ba4f6cefd04d60079b28de196a9df0920c7" + "checksumValue": "85509c83f8048ae73d6488c1dc698fb86635f3b6921d4b35bf4246d1cb0354d0" }, { "algorithm": "SHA1", - "checksumValue": "e99f7324a88e8515d0c2286047c68b445050b553" + "checksumValue": "358d6795ff6a747404383425e64d23d1336cb1c0" } ], "licenseConcluded": "NOASSERTION", @@ -42,16 +42,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./LICENSE.txt", - "SPDXID": "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-06F2DE05C56549DA9A8C48D6BD6D237AC1B2F3DB", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "1cd91cba185bdde7d815c11eb1fd9ec359715d9c071172dc964755c5801ad905" + "checksumValue": "0a09f7df982a6cf4baaf9c97431adcacb16bb3d54be9a4ad47a3fdc335facbd6" }, { "algorithm": "SHA1", - "checksumValue": "ab40082210620a2914d58b309a048459e784e962" + "checksumValue": "06f2de05c56549da9a8c48d6bd6d237ac1b2f3db" } ], "licenseConcluded": "NOASSERTION", @@ -61,16 +61,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-80FDFDD8EFC4D19437D87EAB379D51C6D723137B", + "fileName": "./GetTeamSettings.format.ps1xml", + "SPDXID": "SPDXRef-File--GetTeamSettings.format.ps1xml-0E61084BD489773DFB45DB5991C5901CB7A5EFE1", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e0ec97b37ebd1a4eb3ec1b3c479053bb90ffd8317022d5cd0ce07b8d7be0c5a8" + "checksumValue": "e395f9a23e1b13f067cdea2f143455c2ea7cc798292f55f65f8bc90c2ee59e2e" }, { "algorithm": "SHA1", - "checksumValue": "80fdfdd8efc4d19437d87eab379d51c6d723137b" + "checksumValue": "0e61084bd489773dfb45db5991c5901cb7a5efe1" } ], "licenseConcluded": "NOASSERTION", @@ -80,16 +80,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-4510CBF7B6BD6D4364B22DEB9349E49F82095ABC", + "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": "b59f260c8902bfdb7b3acbd54b980519ab5b281f467ef6ceb8c6863ac9cbe60c" + "checksumValue": "71e2b01c74b6ba03885df8b0dd09f9d0bbccde414c16bfa6a61b031dd2d923f2" }, { "algorithm": "SHA1", - "checksumValue": "4510cbf7b6bd6d4364b22deb9349e49f82095abc" + "checksumValue": "c9a8bee198e3f026b489127b8693505e98b051ae" } ], "licenseConcluded": "NOASSERTION", @@ -99,16 +99,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./GetTeamSettings.format.ps1xml", - "SPDXID": "SPDXRef-File--GetTeamSettings.format.ps1xml-E1D870E09A9BB929597D90D925FB50512AF1D9E4", + "fileName": "./LICENSE.txt", + "SPDXID": "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "67af8fd40f86dc100fa026f84afd16d308becddb2c20cc10c80b4291f15fa51d" + "checksumValue": "1cd91cba185bdde7d815c11eb1fd9ec359715d9c071172dc964755c5801ad905" }, { "algorithm": "SHA1", - "checksumValue": "e1d870e09a9bb929597d90d925fb50512af1d9e4" + "checksumValue": "ab40082210620a2914d58b309a048459e784e962" } ], "licenseConcluded": "NOASSERTION", @@ -118,16 +118,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-CA0EFD6D4A87B97607CF9AE875DE945D7DEAD9BD", + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-29654B497D19C8508ABA749E8A25890FB166F3D3", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "057c7910bac6a8a1296aa5b2c0f29c6d865dd20b3dcdc0a67513fcac55b2fa07" + "checksumValue": "27bc1c17ad463c97af6237cef277a58bbd65d0ed56d3acf13fbb16edea38d0fe" }, { "algorithm": "SHA1", - "checksumValue": "ca0efd6d4a87b97607cf9ae875de945d7dead9bd" + "checksumValue": "29654b497d19c8508aba749e8a25890fb166f3d3" } ], "licenseConcluded": "NOASSERTION", @@ -138,15 +138,15 @@ }, { "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-EC42D11F294CDC11DADD50149BBF7B79B28CFEB5", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-963D4C2F388DECE045FD19E22F7DA7F85931807F", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "bd2a78accbe3a02ddda9755e12bfbfee14c17569dd275ec0337c33c7bba786a0" + "checksumValue": "0934ee941a91c53e56375e0f850e2589a8e6afbd5b1c20f464dae16c2a7a9645" }, { "algorithm": "SHA1", - "checksumValue": "ec42d11f294cdc11dadd50149bbf7b79b28cfeb5" + "checksumValue": "963d4c2f388dece045fd19e22f7da7f85931807f" } ], "licenseConcluded": "NOASSERTION", @@ -156,16 +156,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-EB1769C406CB801F482549E13362E0AF6016F106", + "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": "815f5c9136001ed24fd3219daa6420ed712cf8a86b8e9b67ff6c1e2a009d9f9e" + "checksumValue": "9ed7777bd38057277a0fa4f9b279448d8b272c7750f17aff5df821456e428f7b" }, { "algorithm": "SHA1", - "checksumValue": "eb1769c406cb801f482549e13362e0af6016f106" + "checksumValue": "a5c9abd7c91c563124045980dbf5688288ea007f" } ], "licenseConcluded": "NOASSERTION", @@ -175,16 +175,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-0F4BA3ACD2719F5DB1D62BEFAB343AD986E87056", + "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": "4c67cac313e43125f4c71d6c382a83f2f54c67e1fb69591fd615196a886cd213" + "checksumValue": "171359032e4bfd63b6f4664dbb86d1c14aeea4c93d1c8d2f038c12675b25c57e" }, { "algorithm": "SHA1", - "checksumValue": "0f4ba3acd2719f5db1d62befab343ad986e87056" + "checksumValue": "4683a04476426b5af5bcb26b98c17ca2b5cbfb02" } ], "licenseConcluded": "NOASSERTION", @@ -195,15 +195,15 @@ }, { "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-608E2C517FF2BA67A53CC052D52E09957031882D", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-2B971324EA70583EF0B37D0DC6E0DA6D02060D2E", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "19c8e495631a957ef8181ea36792bd0bcae4543d76206d3137ccaaf71e933cc3" + "checksumValue": "d03608c9b950fcc154a84b6185fc38b484be022cb715af7ec296f8472b8ea05c" }, { "algorithm": "SHA1", - "checksumValue": "608e2c517ff2ba67a53cc052d52e09957031882d" + "checksumValue": "2b971324ea70583ef0b37d0dc6e0da6d02060d2e" } ], "licenseConcluded": "NOASSERTION", @@ -213,16 +213,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-24D7CF2936AE31D7C39999A1372929B4279F043A", + "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": "da6454742a45791b81c3e601338531ffb376aa9e4dd731dbd66d7c7acf41ec86" + "checksumValue": "df2a6630db615ab8dfd353eafe2bb63deb5f401366bcb2892abf6b4c4b1707c4" }, { "algorithm": "SHA1", - "checksumValue": "24d7cf2936ae31d7c39999a1372929b4279f043a" + "checksumValue": "eb263ff298d384dfd53520a387339547cad10294" } ], "licenseConcluded": "NOASSERTION", @@ -232,16 +232,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-123E389CD273B537465E52B4364888E0E4614FC4", + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "4007c56e86b6b6998b0c9cd8e2a16e7ba69ebec301ecc23185fb024a134cee7b" + "checksumValue": "4a314344b36ff15c11166f2aa5d1b5e313448cda0ddf2fbc1eeed8d0f78b6f65" }, { "algorithm": "SHA1", - "checksumValue": "123e389cd273b537465e52b4364888e0e4614fc4" + "checksumValue": "88c2b299a3efedad1899aa8b26920dde35863a3c" } ], "licenseConcluded": "NOASSERTION", @@ -251,16 +251,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-2B19B7BD0EF74A536D8C630EA8F8DC1E6DD988EB", + "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": "80a3817bf121351592b27d3202dc44758d819279b4dca5ae7ec1c235984480ac" + "checksumValue": "1ba34db541a6b7673882078d196aa0d9cc165b95cbf7df707005f820944c8c9b" }, { "algorithm": "SHA1", - "checksumValue": "2b19b7bd0ef74a536d8c630ea8f8dc1e6dd988eb" + "checksumValue": "cf6d5ea1db485c9b63ea6da6aeac79d6a2c0249f" } ], "licenseConcluded": "NOASSERTION", @@ -270,16 +270,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", + "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": "4a314344b36ff15c11166f2aa5d1b5e313448cda0ddf2fbc1eeed8d0f78b6f65" + "checksumValue": "9a6af3ee1b05ac3514b8ec5c52547a0cb4cc979e08791dd6d38221e50a365011" }, { "algorithm": "SHA1", - "checksumValue": "88c2b299a3efedad1899aa8b26920dde35863a3c" + "checksumValue": "037b8bd58ee4da3aaa0f696446289aed702b569e" } ], "licenseConcluded": "NOASSERTION", @@ -289,16 +289,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-BD93C20C5A2A2F3325C33555CB6C5ADE1A68AD56", + "fileName": "./Microsoft.Teams.Policy.Administration.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-AD8AC869067A6601073B9C0EC4406C1A08DD7AED", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "c5354f9bf91d55cd565a4f2339667bcfbef8be303a70da9e81b5a3eaec8b15c7" + "checksumValue": "130d281b15aa9989041f200751a9b7cbbfd1c6964d12db1cf1a82478056827f2" }, { "algorithm": "SHA1", - "checksumValue": "bd93c20c5a2a2f3325c33555cb6c5ade1a68ad56" + "checksumValue": "ad8ac869067a6601073b9c0ec4406c1a08dd7aed" } ], "licenseConcluded": "NOASSERTION", @@ -309,15 +309,15 @@ }, { "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-89CA360E305AFF3F2AE713B6DD5A53B2F5DDCD97", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-12984994444338BBAF1E1597874FE6D8AEA40BCA", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6597ee415077ec09cd8877bc2b5ab202000807f208cb3e05d8c5eca4f9bafd48" + "checksumValue": "a7a276f14f21521ab98395a0b51e7fa41ab2574616d8a27da097b191335b1eed" }, { "algorithm": "SHA1", - "checksumValue": "89ca360e305aff3f2ae713b6dd5a53b2f5ddcd97" + "checksumValue": "12984994444338bbaf1e1597874fe6d8aea40bca" } ], "licenseConcluded": "NOASSERTION", @@ -327,16 +327,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-CDEDBFC5CF33DEA7B09A48963ACD132DA893B717", + "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": "a712f54badda89c6a521566f23ce88ff483593030e7909f282a9aa89b3115b45" + "checksumValue": "849d6fd93333ce839f9593b0420581090de7a6543f79e59e1a0962ef4659065b" }, { "algorithm": "SHA1", - "checksumValue": "cdedbfc5cf33dea7b09a48963acd132da893b717" + "checksumValue": "b954f5ed1ecc7be8740624d48ed04222953c8139" } ], "licenseConcluded": "NOASSERTION", @@ -346,16 +346,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-4208DBE5000D7524F7A4191D1D202E5EC3654C67", + "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": "87e62a49628f223b37ac1f75821d34759cc05f4177445389c8f98805a96e2eb5" + "checksumValue": "7b389faa9392f7cba03aa6de7cbb19d7989cbef18113955c6641c7df12d1a83c" }, { "algorithm": "SHA1", - "checksumValue": "4208dbe5000d7524f7a4191d1d202e5ec3654c67" + "checksumValue": "e04d2c01142905abbb85203df7bbc17a146faa1d" } ], "licenseConcluded": "NOASSERTION", @@ -365,16 +365,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-2DFA482D04A677D6FF23A223C3A2D32735F91606", + "fileName": "./MicrosoftTeams.psm1", + "SPDXID": "SPDXRef-File--MicrosoftTeams.psm1-CE47D645C9A82231AD62188F14704A6DFC34C77A", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "0a858c8395b4345710088e0fa14a562de1da68e2921e4255620cc78ccbb6e873" + "checksumValue": "7a5ac37ad548a7c04e67e0c71d4bf3d20ac5df21f0dd2d207373b0fc4e90edd0" }, { "algorithm": "SHA1", - "checksumValue": "2dfa482d04a677d6ff23a223c3a2d32735f91606" + "checksumValue": "ce47d645c9a82231ad62188f14704a6dfc34c77a" } ], "licenseConcluded": "NOASSERTION", @@ -384,16 +384,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-80095484E5562CDF59754BC5916A78A8AF2A3FCD", + "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": "6994c842021b3e0be9307af1297261d446180f38a1c060c131569fddc6377527" + "checksumValue": "b44ce79fabd3753ce7c7f2ea4a542b8da575123b4097292687d4217567879db8" }, { "algorithm": "SHA1", - "checksumValue": "80095484e5562cdf59754bc5916a78a8af2a3fcd" + "checksumValue": "8fe74e08bc9d801bdd0e388ab369ee06c0cf45ef" } ], "licenseConcluded": "NOASSERTION", @@ -403,16 +403,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-52A3C2102B756541404CB7B06B275755C57034A5", + "fileName": "./Microsoft.Teams.Policy.Administration.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "47362647fb3d7f736049181d91ab6a107647ad8d3cda3aa6f77b2fcb10d883a5" + "checksumValue": "6e11132a8afa44b044667064190ba3e354f5a705eaf6952bccd22b1100c4dc16" }, { "algorithm": "SHA1", - "checksumValue": "52a3c2102b756541404cb7b06b275755c57034a5" + "checksumValue": "56e8bfb9f020adf074710972f5afd1b1ced156fd" } ], "licenseConcluded": "NOASSERTION", @@ -422,16 +422,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.PowerShell.Module.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-DC1D08C8126D965B23565174CEF4A81366FF0F5E", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + "checksumValue": "216feb979cc06e1bff6354dedbda0c457d241c352c200207a4fa93051ab5ae89" }, { "algorithm": "SHA1", - "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + "checksumValue": "dc1d08c8126d965b23565174cef4a81366ff0f5e" } ], "licenseConcluded": "NOASSERTION", @@ -441,16 +441,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-E838F6AC8692EACC953D94BCCA068A54D9AE9F2F", + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-88D15FB2F26191E1A37F10E60DF4CEE1F9BD0F17", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "dfb7861fbd493a6b2ed4bda03137daf547a843325de11912ac1a649320c258be" + "checksumValue": "a65fa456458c161c0308c9c1d666f65dbfa6816618024b4706227e5327ac51ec" }, { "algorithm": "SHA1", - "checksumValue": "e838f6ac8692eacc953d94bcca068a54d9ae9f2f" + "checksumValue": "88d15fb2f26191e1a37f10e60df4cee1f9bd0f17" } ], "licenseConcluded": "NOASSERTION", @@ -460,16 +460,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", + "fileName": "./SetMSTeamsReleaseEnvironment.ps1", + "SPDXID": "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-F7DEE6409FCFBCFDA09733084816A3E3E46BCDEC", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6e11132a8afa44b044667064190ba3e354f5a705eaf6952bccd22b1100c4dc16" + "checksumValue": "5f9755d39eebffcaced62973e22395a17aba72c589f8ce0052dc958617178a64" }, { "algorithm": "SHA1", - "checksumValue": "56e8bfb9f020adf074710972f5afd1b1ced156fd" + "checksumValue": "f7dee6409fcfbcfda09733084816a3e3e46bcdec" } ], "licenseConcluded": "NOASSERTION", @@ -479,16 +479,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.psm1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-A29776AA3A5DFBB302E241303327569F56E5A6F9", + "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": "115e21b2ca223f83636d2359f3525f42c07e4880337cfe161bd55b779e7da78f" + "checksumValue": "12206134876e1bde11edb2bd7bdf651d1cf7a979c8509392074f169a5938bf81" }, { "algorithm": "SHA1", - "checksumValue": "a29776aa3a5dfbb302e241303327569f56e5a6f9" + "checksumValue": "341891343cb3b9b8e207a7225210aef601e6c779" } ], "licenseConcluded": "NOASSERTION", @@ -498,16 +498,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-28722B42A746D983F4A97FFECD0567DA3C3C2DE2", + "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": "f48764c7c42f85acd4a8d8a7d08ea26f355ed9aa5be28afdfb2c3358bfa59979" + "checksumValue": "bc86d3c5b77059a51e3e7fde6099b419696c3208d491439a8c8a20faef5a9718" }, { "algorithm": "SHA1", - "checksumValue": "28722b42a746d983f4a97ffecd0567da3c3c2de2" + "checksumValue": "4c798b7ac19201899cbf18d0d9bc4145d5c0dce1" } ], "licenseConcluded": "NOASSERTION", @@ -517,16 +517,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-A50601E6FA548D8E82BEA01C22EEE48819829885", + "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": "0a7fb1b7ca26edbe21a6c71db30457c424edc185ae208004794043ec4d0a8fb7" + "checksumValue": "9d95994cad4659d3fc2a0a6c93d6c262f09ea078bdbb25432435134ae0143e53" }, { "algorithm": "SHA1", - "checksumValue": "a50601e6fa548d8e82bea01c22eee48819829885" + "checksumValue": "ca346c864afa6a636e57fbaf71010cac45d122d1" } ], "licenseConcluded": "NOASSERTION", @@ -537,15 +537,15 @@ }, { "fileName": "./bin/Microsoft.IdentityModel.Logging.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-83BC439CE27E048A354FBA3FF72494588B2A4360", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-6209CAFD403DF6FB9DA046F36D7D89635FAE41A4", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "632c06fb6b0bd2bfcc3e4973abcad035aae4087813248d64481db5a4e7f7ffea" + "checksumValue": "3909aa735f98f4c57edc81a8e674364d085db13b1f10734377259e0f6c35c97a" }, { "algorithm": "SHA1", - "checksumValue": "83bc439ce27e048a354fba3ff72494588b2a4360" + "checksumValue": "6209cafd403df6fb9da046f36d7d89635fae41a4" } ], "licenseConcluded": "NOASSERTION", @@ -555,16 +555,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./SetMSTeamsReleaseEnvironment.ps1", - "SPDXID": "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-D37669DF752E750EF9D32BB0DF16A9BC08A3FBD4", + "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": "d86a4e51c88c9a8827af40d6d5e0b307697cf21d4fa015021578bfbf4299a7ef" + "checksumValue": "07ad1ffefa084c9bd05bf2ee0a98155499c17c005b653a88d709770941067a1f" }, { "algorithm": "SHA1", - "checksumValue": "d37669df752e750ef9d32bb0df16a9bc08a3fbd4" + "checksumValue": "c9d1a219945a688828be50fc9e0ff4c663334995" } ], "licenseConcluded": "NOASSERTION", @@ -574,16 +574,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-A3FD5A660724384B3197D6B4934F0D9485BB15BD", + "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": "08569ed2e1476dda73c6de97cd83b0864db5184c5461a2e0b74f6601a1395a9e" + "checksumValue": "2165e86e3adb0f410f299a0eb5dc8e73818d6c9497db71b31b600a8fde438347" }, { "algorithm": "SHA1", - "checksumValue": "a3fd5a660724384b3197d6b4934f0d9485bb15bd" + "checksumValue": "796caf23506427abfd0cbb113fdcc1d690d70890" } ], "licenseConcluded": "NOASSERTION", @@ -593,16 +593,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-32FFD2E31610145482AE308C43D72E5F2A6F4671", + "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": "c860d016a6fc8ee7fc5985a9c639a896c569061552e5c88261ccfb79b641fcfd" + "checksumValue": "94c3c284350b1d8d1da4ace9f258ff6a0b0a841ca1bee1456518990c3376066a" }, { "algorithm": "SHA1", - "checksumValue": "32ffd2e31610145482ae308c43d72e5f2a6f4671" + "checksumValue": "af55f0c8ae06af16da52f63f8dd7ce43689a71a2" } ], "licenseConcluded": "NOASSERTION", @@ -612,16 +612,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./MicrosoftTeams.psm1", - "SPDXID": "SPDXRef-File--MicrosoftTeams.psm1-1E14FCCFB5EDDC3395718B4F54776DCD20FC1A44", + "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": "0ab0a4e11c4fb059f4e0cec09c4c8e9558ac42f08b29946be6889f2321b5f94f" + "checksumValue": "563f21803a0eb0cbb466ce4f6e299e7bf387aa0663c6ccc71306d8ac50ca2f63" }, { "algorithm": "SHA1", - "checksumValue": "1e14fccfb5eddc3395718b4f54776dcd20fc1a44" + "checksumValue": "edc75b30df78641733d30dcde1276706a601ab19" } ], "licenseConcluded": "NOASSERTION", @@ -631,16 +631,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1", - "SPDXID": "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-81AAF23A17DB70848CC1D507F319E744ED6D1058", + "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": "1de26fef931326bd593627f843113ffff3fc0990151b1f0bf085cf821a6a479b" + "checksumValue": "527766ba7d1df9011aaf3926dcb69b6d4dcd78c180a20ee04e89a38b9a852a2a" }, { "algorithm": "SHA1", - "checksumValue": "81aaf23a17db70848cc1d507f319e744ed6d1058" + "checksumValue": "58ae49ef1b2af7de983d1caf24b20b5143d39652" } ], "licenseConcluded": "NOASSERTION", @@ -650,16 +650,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml-7067DC6AA26501044FDDE047592CCCC376FD0E7C", + "fileName": "./Microsoft.Teams.Policy.Administration.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-CAA75251D6858155BFB20A66AB60474F844BE319", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "23de27306f818195e4b55502ee2b9af6cab3cb1ac7919c4aef7e3acdb1943918" + "checksumValue": "2fbd06d6136c841d154150afb4864c0987bc1c77a3900def23543597920d9217" }, { "algorithm": "SHA1", - "checksumValue": "7067dc6aa26501044fdde047592cccc376fd0e7c" + "checksumValue": "caa75251d6858155bfb20a66ab60474f844be319" } ], "licenseConcluded": "NOASSERTION", @@ -669,16 +669,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-D26C9351307A5F7EAB692C6B457594E4E8B0F53F", + "fileName": "./Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "9cae3a3e7ddc8aa4d309fdf30812f43308ffe7a8184a0f972fd0fd2d9bb2c9e7" + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" }, { "algorithm": "SHA1", - "checksumValue": "d26c9351307a5f7eab692c6b457594e4e8b0f53f" + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" } ], "licenseConcluded": "NOASSERTION", @@ -688,16 +688,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json", - "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-796CAF23506427ABFD0CBB113FDCC1D690D70890", + "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": "2165e86e3adb0f410f299a0eb5dc8e73818d6c9497db71b31b600a8fde438347" + "checksumValue": "af1b6ac42469c1497fef14463898f65ad7be09f84f66d9637c5c5b405b3cc97f" }, { "algorithm": "SHA1", - "checksumValue": "796caf23506427abfd0cbb113fdcc1d690d70890" + "checksumValue": "086d2a71368a70c95d7c14eb16e1e8ab9d85a950" } ], "licenseConcluded": "NOASSERTION", @@ -707,16 +707,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-5081CA43FCE72FB45333F367476B739296CC7BEC", + "fileName": "./MicrosoftTeams.psd1", + "SPDXID": "SPDXRef-File--MicrosoftTeams.psd1-8419998A42D801598EE6BF96F39993FDFA043632", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e5a09b284f49023ffec5af0c17742a4a998e02df0de4f46ab19d6a1b112f2d5c" + "checksumValue": "b6097f6019a5789486d425c35a92d7bcbc9eda36ad1acfb82639a1d1ccfe055f" }, { "algorithm": "SHA1", - "checksumValue": "5081ca43fce72fb45333f367476b739296cc7bec" + "checksumValue": "8419998a42d801598ee6bf96f39993fdfa043632" } ], "licenseConcluded": "NOASSERTION", @@ -726,16 +726,16 @@ "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", + "fileName": "./custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1", + "SPDXID": "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-A507BC7A295AC14035F81E138A39F9CAA03DA5A2", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "345bab954c5ae4f9a52420f3b88e78d96080dc4a4d0a8db76d50dd9af571eaa9" + "checksumValue": "ccdfb4a2b9439941d75be19cfc0347f4861b43c94ab8223615208514cafae2fe" }, { "algorithm": "SHA1", - "checksumValue": "fefa595d1ecc65f8818c1a38f2bfee3cf7e0575e" + "checksumValue": "a507bc7a295ac14035f81e138a39f9caa03da5a2" } ], "licenseConcluded": "NOASSERTION", @@ -745,16 +745,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./MicrosoftTeams.psd1", - "SPDXID": "SPDXRef-File--MicrosoftTeams.psd1-5291F9C15F07DBA9A0F1B96C7D7BF2544434949E", + "fileName": "./bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-06ECDF615E407E69513D3771EEF0678ECCAFA269", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "db05d8aa47a0dac30afdf7db99f91f3c38e849fe7f9563760cab87581323c08d" + "checksumValue": "d14796fbbd20f0ed206c1db80faca50e353b1bca306c2ae21f03a2649d6720e0" }, { "algorithm": "SHA1", - "checksumValue": "5291f9c15f07dba9a0f1b96c7d7bf2544434949e" + "checksumValue": "06ecdf615e407e69513d3771eef0678eccafa269" } ], "licenseConcluded": "NOASSERTION", @@ -765,15 +765,15 @@ }, { "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-3C7E2D0B99179AABB4E475D06FAA70629AA26174", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-DBFCA41EABFFE3B81453F66B9C37667D5CD777B6", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "729d5b97c0117aea21e3b257378294cf982d185986921c6ca9e6ba9c5013d191" + "checksumValue": "7dcc7523ee28be53b078dfd793ea11f081a7cb51393fd17ed514c00bee849800" }, { "algorithm": "SHA1", - "checksumValue": "3c7e2d0b99179aabb4e475d06faa70629aa26174" + "checksumValue": "dbfca41eabffe3b81453f66b9c37667d5cd777b6" } ], "licenseConcluded": "NOASSERTION", @@ -783,16 +783,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-21F11DD98C6C41684FA460C917CFF7744EAC0F32", + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-32022DFD0447DA7210CABCB550C0B5834D73BE83", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "b1d9c165d14fa842671ced3b73bbe7a7ea773876dfb8375028c5dd588cd882e1" + "checksumValue": "11f673efe46c3a6adb5fec3f92ea7a4769e565244503721210ba19eeecfdffd8" }, { "algorithm": "SHA1", - "checksumValue": "21f11dd98c6c41684fa460c917cff7744eac0f32" + "checksumValue": "32022dfd0447da7210cabcb550c0b5834d73be83" } ], "licenseConcluded": "NOASSERTION", @@ -802,16 +802,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-369A36A1A325C60CCD91A0DA565F768AC3F03511", + "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": "a4f50fe51811016292a5a94e6f0e83f74ba63446aa102f4db797fe6d712ef11f" + "checksumValue": "345bab954c5ae4f9a52420f3b88e78d96080dc4a4d0a8db76d50dd9af571eaa9" }, { "algorithm": "SHA1", - "checksumValue": "369a36a1a325c60ccd91a0da565f768ac3f03511" + "checksumValue": "fefa595d1ecc65f8818c1a38f2bfee3cf7e0575e" } ], "licenseConcluded": "NOASSERTION", @@ -840,16 +840,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/CmdletSettings.json", - "SPDXID": "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "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": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" + "checksumValue": "5b29b0f5298699972d9479c42e9156933e33def8524f94b0470718e758cced30" }, { "algorithm": "SHA1", - "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" + "checksumValue": "0031cfcda71fb7b73ed2bca2ddad351018824c28" } ], "licenseConcluded": "NOASSERTION", @@ -859,16 +859,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-FC5D31B0DD60499D3C08370336437ABE8A6883EA", + "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": "2664fae153138d24f6f20e3c99fb6657d2b4ef7bb097fcad58bb18d73394706f" + "checksumValue": "c771bf28f755eaede1ff2222db9e23c2d603928f9cf170cf05bb37f0ec458fec" }, { "algorithm": "SHA1", - "checksumValue": "fc5d31b0dd60499d3c08370336437abe8a6883ea" + "checksumValue": "34bb735eaeb2987a8aa72c522173dbdfcde15331" } ], "licenseConcluded": "NOASSERTION", @@ -878,16 +878,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-496E85669194E299F443B1754BDB4A3CD04B8BCC", + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-3D8B6E0C11BD6300FFF53D1C1A7A32B6AA20EEDA", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "34347fb15a159e83d2b52e1088e59f827e6481cac5fd26b15d3ace1d068eeb74" + "checksumValue": "58b2ea0cdcabcb8862f9ebebe9ec12b5c6e728343e9b02d742a2addaf594c5d5" }, { "algorithm": "SHA1", - "checksumValue": "496e85669194e299f443b1754bdb4a3cd04b8bcc" + "checksumValue": "3d8b6e0c11bd6300fff53d1c1a7a32b6aa20eeda" } ], "licenseConcluded": "NOASSERTION", @@ -897,16 +897,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Extensions.Configuration.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-3750CF3EAFA4D3997459ADA6309803337910A4C3", + "fileName": "./net472/CmdletSettings.json", + "SPDXID": "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "8e5ca0b8a2f30507498f61e875e8b71261fc9c50e7c7b4b82e800b5547f0b095" + "checksumValue": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" }, { "algorithm": "SHA1", - "checksumValue": "3750cf3eafa4d3997459ada6309803337910a4c3" + "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" } ], "licenseConcluded": "NOASSERTION", @@ -916,16 +916,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml", - "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-4243CCEDC31218198FBD0E69C6B5BB670910CAA8", + "fileName": "./net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-B68459369627DCCF555526C5B1385DB735A6B596", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "f61e5f29a27fedcb428dcde6ba46461a49bbfdc214ad766ea005d4c7849aa8da" + "checksumValue": "94488e5191be3a39e010f9f8ffbd1d36046d91d46ab316cb1495232afc8554a1" }, { "algorithm": "SHA1", - "checksumValue": "4243ccedc31218198fbd0e69c6b5bb670910caa8" + "checksumValue": "b68459369627dccf555526c5b1385db735a6b596" } ], "licenseConcluded": "NOASSERTION", @@ -935,16 +935,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Extensions.Logging.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-581124CB768D48E241E812BC4FC3DB872442B91B", + "fileName": "./bin/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-87551F36BC46BFCBCC035626DBB42C764F085B3F", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "d60e294c94661dc1114ad859d5cae30a7b165fd8ce3944b2db44b950a76d4138" + "checksumValue": "a8b0dd2c74857b93aea6fd37ff1cc5ad8f9d081918994fb73bca5000cbb8a557" }, { "algorithm": "SHA1", - "checksumValue": "581124cb768d48e241e812bc4fc3db872442b91b" + "checksumValue": "87551f36bc46bfcbcc035626dbb42c764f085b3f" } ], "licenseConcluded": "NOASSERTION", @@ -954,16 +954,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psd1", - "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-F0B8DC9CC0C9B4492A18A4697637269F840F6FA3", + "fileName": "./net472/Microsoft.Extensions.Configuration.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-4D43E8350E71147AD6970E9F0DE4782470A76A0D", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "a16b02a40df6102ed14f8f4f27711bd5e1a7a64362fc51b4fb4349fbc9a5d951" + "checksumValue": "e2882c6ff3eb35ad16048d6099b7a4ea4213072157bdb47f10b451c88b3fe17e" }, { "algorithm": "SHA1", - "checksumValue": "f0b8dc9cc0c9b4492a18a4697637269f840f6fa3" + "checksumValue": "4d43e8350e71147ad6970e9f0de4782470a76a0d" } ], "licenseConcluded": "NOASSERTION", @@ -973,16 +973,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Identity.Client.Desktop.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-2F8F2D8A722680DFE03F6BA2CF103F69BCA5C9B9", + "fileName": "./net472/Microsoft.Extensions.Logging.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "9b93d5e2891820a5a4f7cf5028bcc65ca9a74fc0756b3fa3e043c1c4202233ea" + "checksumValue": "3c786c0b64c0f71eb099960804ca311660046e919925a42841bb3be1a7c547f7" }, { "algorithm": "SHA1", - "checksumValue": "2f8f2d8a722680dfe03f6ba2cf103f69bca5c9b9" + "checksumValue": "35ea89f23c780b1575b2066db0d59f255971eb3d" } ], "licenseConcluded": "NOASSERTION", @@ -992,16 +992,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./bin/Microsoft.IdentityModel.JsonWebTokens.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-17AE72D05FBDF218582AED81028911E7AD77D47B", + "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": "6ce48a35986b0b982d6c3fc0eff5eb5177634c96643e227c567fee46d5665dae" + "checksumValue": "caabdcf997a01b83f22b8509fc2d23f21add76585cc1cf0821dbe34b45d7e8e5" }, { "algorithm": "SHA1", - "checksumValue": "17ae72d05fbdf218582aed81028911e7ad77d47b" + "checksumValue": "0a3b265d20e863cbdcb264974391ca7d26766c0e" } ], "licenseConcluded": "NOASSERTION", @@ -1011,16 +1011,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Identity.Client.NativeInterop.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-1A958E3054862F5193272D487A996FBA2AB4E18C", + "fileName": "./net472/Microsoft.Identity.Client.Desktop.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-F2B3DF67CE4F9D0963240B693154CBBEFC74ACF3", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "41924b4625b250f37b82b8a3e048e95b0ccd710f62bb10fc405312fbcd8afae7" + "checksumValue": "fd4dcec737f97be913f194997293983d3f9444832134aad357e8b29621a9e5b9" }, { "algorithm": "SHA1", - "checksumValue": "1a958e3054862f5193272d487a996fba2ab4e18c" + "checksumValue": "f2b3df67ce4f9d0963240b693154cbbefc74acf3" } ], "licenseConcluded": "NOASSERTION", @@ -1031,15 +1031,15 @@ }, { "fileName": "./SfbRpsModule.format.ps1xml", - "SPDXID": "SPDXRef-File--SfbRpsModule.format.ps1xml-B606F1AC1C980350169996BB21FCC92F4E012F16", + "SPDXID": "SPDXRef-File--SfbRpsModule.format.ps1xml-95C93BA2237F52307E16FD0011B73A8A17198988", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "c16f3d12795e1cf8112b528e7ee9b62647bdae75d27c37298b2d65b4a3aad981" + "checksumValue": "c0449db803d01bcb24822326197f90b4f34b347c93cb0b940b0ddaa6d04d053e" }, { "algorithm": "SHA1", - "checksumValue": "b606f1ac1c980350169996bb21fcc92f4e012f16" + "checksumValue": "95c93ba2237f52307e16fd0011b73a8a17198988" } ], "licenseConcluded": "NOASSERTION", @@ -1049,16 +1049,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Rest.ClientRuntime.Azure.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-876DC8E05BC22ABBDF55CE4EF151264612E4CFB1", + "fileName": "./net472/Microsoft.Identity.Client.NativeInterop.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-3C40B6CE463B6BBAACA4AEA0A2DE8B0BE9CFEA3D", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "ba1d88ff3e48429ce2dfe49c19ac6c639e8f3abcd36106be5b64b2232d034ff3" + "checksumValue": "496ee225a7ca6e65d3153f277b853a55c4528be2541a6514baecf10822145342" }, { "algorithm": "SHA1", - "checksumValue": "876dc8e05bc22abbdf55ce4ef151264612e4cfb1" + "checksumValue": "3c40b6ce463b6bbaaca4aea0a2de8b0be9cfea3d" } ], "licenseConcluded": "NOASSERTION", @@ -1068,16 +1068,16 @@ "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", + "fileName": "./net472/Microsoft.Rest.ClientRuntime.Azure.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-8070B48D5F4D2FDDDAC48DA510BC149691B59500", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "caabdcf997a01b83f22b8509fc2d23f21add76585cc1cf0821dbe34b45d7e8e5" + "checksumValue": "840919b961d621a14815de0d23195d8843fb747fceba72664208a96c01324fa1" }, { "algorithm": "SHA1", - "checksumValue": "0a3b265d20e863cbdcb264974391ca7d26766c0e" + "checksumValue": "8070b48d5f4d2fdddac48da510bc149691b59500" } ], "licenseConcluded": "NOASSERTION", @@ -1087,16 +1087,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Teams.PowerShell.Module.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-0F2127067C61F6988FD49CF8714B410249E5EC2B", + "fileName": "./bin/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-3A24CC14199BFC426F29EF91DE9EF8614248CE87", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "0746a885712be8492f9bad6bf95aa44c3618ae179d7bda423b23f74d289877ff" + "checksumValue": "c6bee905346157559f26648f1c772ad25ecd7000621830557c628059966c0e3b" }, { "algorithm": "SHA1", - "checksumValue": "0f2127067c61f6988fd49cf8714b410249e5ec2b" + "checksumValue": "3a24cc14199bfc426f29ef91de9ef8614248ce87" } ], "licenseConcluded": "NOASSERTION", @@ -1106,16 +1106,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./bin/System.IdentityModel.Tokens.Jwt.dll", - "SPDXID": "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-FBE247CC3A305F2C2062E94B356A1BAD46FFAF89", + "fileName": "./net472/Microsoft.Teams.PowerShell.Module.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-C00F202A7BBEBFB084966C3BE0027F9DF0BD47E6", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "f157dc4cccba7d924b5b6079d6ea3a4b6ef4d0819790c7cfb42f26b43f7bf922" + "checksumValue": "3e9e8e61308067a627bd07d673c18104357f577713ff0ed054d206a6e96759f5" }, { "algorithm": "SHA1", - "checksumValue": "fbe247cc3a305f2c2062e94b356a1bad46ffaf89" + "checksumValue": "c00f202a7bbebfb084966c3be0027f9df0bd47e6" } ], "licenseConcluded": "NOASSERTION", @@ -1125,16 +1125,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Applications.Events.Server.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-F38C1C4B5790E34EC6CB9874CDD291FE5D453E56", + "fileName": "./bin/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-55E4A13A430919E0B5EBF5FFEDBDAA0D66F84629", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "122069d53bdfbcbcddae358e5fc0d5d3cf4ac0636dcd5f6e8a5717d3ad5f4a0b" + "checksumValue": "40a73a31ce1dd5b6bd3593edddd6831e6aab2078053d65cb6eca32f761076dc2" }, { "algorithm": "SHA1", - "checksumValue": "f38c1c4b5790e34ec6cb9874cdd291fe5d453e56" + "checksumValue": "55e4a13a430919e0b5ebf5ffedbdaa0d66f84629" } ], "licenseConcluded": "NOASSERTION", @@ -1144,16 +1144,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./bin/Microsoft.IdentityModel.Tokens.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-3E7AE643ED9D05ED31E81266C2F2B20DCC01CDC9", + "fileName": "./net472/Microsoft.Applications.Events.Server.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "ca2d9b4aef7d50e04da3062495bf26097c8b6e0cc7d91051f0aa86b41e946907" + "checksumValue": "c1eaa5d9c465ab18d7ca530d8f79b4c762044c81e35ceda7f4a3a00e9280fbca" }, { "algorithm": "SHA1", - "checksumValue": "3e7ae643ed9d05ed31e81266c2f2b20dcc01cdc9" + "checksumValue": "8784d6c77efa3361390f5ba5f5f56a62434a4a35" } ], "licenseConcluded": "NOASSERTION", @@ -1164,15 +1164,15 @@ }, { "fileName": "./net472/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-062AB1D4091E653C555DE2A5348E57F195341D90", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "1cc01c2ef3acd90dc2c586631ea08887f1531cbf77db497362714554bdee16d0" + "checksumValue": "68dcce73772f4109e08106d5117516aad682f12b359809d1c0d84d2a132ac4f7" }, { "algorithm": "SHA1", - "checksumValue": "062ab1d4091e653c555de2a5348e57f195341d90" + "checksumValue": "b82f9689f6c16fb1f5db89a0e92f2b9f756aec48" } ], "licenseConcluded": "NOASSERTION", @@ -1183,15 +1183,15 @@ }, { "fileName": "./net472/Microsoft.Identity.Client.Extensions.Msal.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-926DC77DFF9AE8F96C2F404443D799FF6DEBAB1E", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "5122d671a7d13b86a7fd8d4346272921a01b5951635ee12db7d5992d28c5281f" + "checksumValue": "ada85e7854037947f14cf746aecf6945193b4cf15d12193ef385f77e5b8bcf74" }, { "algorithm": "SHA1", - "checksumValue": "926dc77dff9ae8f96c2f404443d799ff6debab1e" + "checksumValue": "c328acf08de3e229e48083958d9df2a0eb25511a" } ], "licenseConcluded": "NOASSERTION", @@ -1202,15 +1202,15 @@ }, { "fileName": "./net472/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-B37CBE3C9D3E332A9DDB5BAF8E6DC3B93D46A94B", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "dfd0365f54085a9602fa13f7553c5b1f593e064420d063f63411dd6d93da885c" + "checksumValue": "6457a00dbe141bb431c32b375c52ab61e1552beb50f27f8cf9706f7761448480" }, { "algorithm": "SHA1", - "checksumValue": "b37cbe3c9d3e332a9ddb5baf8e6dc3b93d46a94b" + "checksumValue": "2598cbe499a5c56e7eb9715e1bf6f19ecbcfda02" } ], "licenseConcluded": "NOASSERTION", @@ -1221,15 +1221,15 @@ }, { "fileName": "./custom/Merged_custom_PsExt.ps1", - "SPDXID": "SPDXRef-File--custom-Merged-custom-PsExt.ps1-32AEC330FDAEE3EA730D889471828DE7675CC9EF", + "SPDXID": "SPDXRef-File--custom-Merged-custom-PsExt.ps1-1236406BE9FE7B860E27990A63905951D267C513", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6612becfc743171bee8da88a78efb39d2666cb2f1f04b37c3e691d657c536a42" + "checksumValue": "88590f32f2dee7c9eccbf4d73724b418fdfa64d71bdf43fd2a30e5b3422a87eb" }, { "algorithm": "SHA1", - "checksumValue": "32aec330fdaee3ea730d889471828de7675cc9ef" + "checksumValue": "1236406be9fe7b860e27990a63905951d267c513" } ], "licenseConcluded": "NOASSERTION", @@ -1259,15 +1259,15 @@ }, { "fileName": "./internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1", - "SPDXID": "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-B0FC0E358621742B4E4660A0A4D3F4143C492745", + "SPDXID": "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-37C5B051DBA7F642F313F10B87F53660153EB0B0", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "680b4fd4c060af4e38904557f9e07b77834a0d19ac5ec4e5ff60195aea588c0c" + "checksumValue": "b41768b1431f31f1bf663dfe60c76da46523a17800c019a6c940af61746cd568" }, { "algorithm": "SHA1", - "checksumValue": "b0fc0e358621742b4e4660a0a4d3f4143c492745" + "checksumValue": "37c5b051dba7f642f313f10b87f53660153eb0b0" } ], "licenseConcluded": "NOASSERTION", @@ -1278,15 +1278,15 @@ }, { "fileName": "./net472/Polly.Contrib.WaitAndRetry.dll", - "SPDXID": "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-3ABDDA39D9ACB6470FB36DCC3425CC4606B2C55A", + "SPDXID": "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-BA74DF33836959F34518B64921D3A3F95D481BC1", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "a7e57078c72399d2914ae55e543b77af92b17659a4dff437576317488a8fd907" + "checksumValue": "3eefec0b280c7366d5a6ff01a32ba6572ec2d2bef8788d16250de8a68b15136f" }, { "algorithm": "SHA1", - "checksumValue": "3abdda39d9acb6470fb36dcc3425cc4606b2c55a" + "checksumValue": "ba74df33836959f34518b64921d3a3f95d481bc1" } ], "licenseConcluded": "NOASSERTION", @@ -1297,15 +1297,15 @@ }, { "fileName": "./net472/Microsoft.Data.Sqlite.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-E4794F6BC83915D0C1AB580C81C27D5E4E46B478", + "SPDXID": "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-C1C86EBD194F15E1B21368632ADE968F775F0F37", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "34a4be9a11b4ef42cd31fa2f6b2d669eb34bee258cf19c7148e6a30a08d32e1d" + "checksumValue": "d3d696ae0e0d7f00ae0081a1c66b9e0ca508a27314f438f2dfa044ce92463df8" }, { "algorithm": "SHA1", - "checksumValue": "e4794f6bc83915d0c1ab580c81c27d5e4e46b478" + "checksumValue": "c1c86ebd194f15e1b21368632ade968f775f0f37" } ], "licenseConcluded": "NOASSERTION", @@ -1315,16 +1315,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Identity.Client.Broker.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-E2C49A0815301BA6ADB9D10C6DE9D071F9FD2AA7", + "fileName": "./net472/System.Numerics.Vectors.dll", + "SPDXID": "SPDXRef-File--net472-System.Numerics.Vectors.dll-80AE1F43F3E94A2A56E47E6526200311BE91EBFE", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "ab4eea1245ba4822cab3fd423b7c7412dfd608191356a5208ca071a6a8a8ccc2" + "checksumValue": "365af158d47210ac1e5d29b96ef1f18391757c7b4a11e941c56fec55ea45693c" }, { "algorithm": "SHA1", - "checksumValue": "e2c49a0815301ba6adb9d10c6de9d071f9fd2aa7" + "checksumValue": "80ae1f43f3e94a2a56e47e6526200311be91ebfe" } ], "licenseConcluded": "NOASSERTION", @@ -1334,16 +1334,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.Numerics.Vectors.dll", - "SPDXID": "SPDXRef-File--net472-System.Numerics.Vectors.dll-A00B0362AAFC0B9AAAB01EC0D80B3B0E1611E151", + "fileName": "./net472/Microsoft.Identity.Client.Broker.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-D95D3FA029242D0F219083345D3D6F6C3FBFBE05", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "08be1818e490d7a5e11e19a5e4b6d1cf7e7070b793a6db39411e58936302ab5d" + "checksumValue": "86937552711efd1d1702bd6c39a5f58400bd58ea5acdda28b8d542da14e886be" }, { "algorithm": "SHA1", - "checksumValue": "a00b0362aafc0b9aaab01ec0d80b3b0e1611e151" + "checksumValue": "d95d3fa029242d0f219083345d3d6f6c3fbfbe05" } ], "licenseConcluded": "NOASSERTION", @@ -1354,15 +1354,15 @@ }, { "fileName": "./net472/Newtonsoft.Json.dll", - "SPDXID": "SPDXRef-File--net472-Newtonsoft.Json.dll-D1F027FA448F3816F416F5A7C6C162D9CBBEBD26", + "SPDXID": "SPDXRef-File--net472-Newtonsoft.Json.dll-4D4776CD97BB5000F70D8847BFF3E83C9D485329", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "9daaa86a3f6db6ebf26403e49fe7fa8dd76936943d37016b40e4f7dce415283f" + "checksumValue": "aaefac1d3466c290411a4be582e61912fd2dff9c8bbdd5e85d5799b6fad8abe1" }, { "algorithm": "SHA1", - "checksumValue": "d1f027fa448f3816f416f5a7c6c162d9cbbebd26" + "checksumValue": "4d4776cd97bb5000f70d8847bff3e83c9d485329" } ], "licenseConcluded": "NOASSERTION", @@ -1372,16 +1372,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./bin/BrotliSharpLib.dll", - "SPDXID": "SPDXRef-File--bin-BrotliSharpLib.dll-4FEC8C997E71D52AC7D27FA5DC392A4A6FB2C764", + "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": "caf2b1f5a2c95ed852019a03660e412e6d85bf7a3d7193370fc611ed23ad88c8" + "checksumValue": "c9e38ee30d156c0d4cd21b4bb2c4c81b26ec105267dab767e563611b63809441" }, { "algorithm": "SHA1", - "checksumValue": "4fec8c997e71d52ac7d27fa5dc392a4a6fb2c764" + "checksumValue": "e78625f5200a1a718ebb5b704c14e3ffadfa00b4" } ], "licenseConcluded": "NOASSERTION", @@ -1391,16 +1391,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./custom/CmdletConfig.json", - "SPDXID": "SPDXRef-File--custom-CmdletConfig.json-18FF22FD5BABEFF456D99313BF3BF735A3CC59ED", + "fileName": "./bin/BrotliSharpLib.dll", + "SPDXID": "SPDXRef-File--bin-BrotliSharpLib.dll-2E24506AA5F40ED36F6AD2BBA1A2330F3162E86B", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e1d809a26f3a2e4bcb6234bf07a1100e4b8eadd089f845ff8e3d75cf9f3da566" + "checksumValue": "8d2c843a44c601e4d430e3a514c702122a466de1d6c57ed7859e28a109631cc0" }, { "algorithm": "SHA1", - "checksumValue": "18ff22fd5babeff456d99313bf3bf735a3cc59ed" + "checksumValue": "2e24506aa5f40ed36f6ad2bba1a2330f3162e86b" } ], "licenseConcluded": "NOASSERTION", @@ -1410,16 +1410,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-C0EBB8FEAA34DD7A204301CD6E2DF3174EBD7324", + "fileName": "./net472/System.Management.Automation.dll", + "SPDXID": "SPDXRef-File--net472-System.Management.Automation.dll-DF8EA78867A1F793EF49C71021B9B08B59B22B2E", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e30afbe7b5c3dce08d0fe2c133eb092f9dd8adb34c0265b09880d0d6f0def235" + "checksumValue": "9606e20b33aa0900d2e786327ae312072741627cc64f4108a5e1a2e0239368c5" }, { "algorithm": "SHA1", - "checksumValue": "c0ebb8feaa34dd7a204301cd6e2df3174ebd7324" + "checksumValue": "df8ea78867a1f793ef49c71021b9b08b59b22b2e" } ], "licenseConcluded": "NOASSERTION", @@ -1429,16 +1429,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.Management.Automation.dll", - "SPDXID": "SPDXRef-File--net472-System.Management.Automation.dll-BCF968E68E022321BA41082CB6E8B0D6AE759EEE", + "fileName": "./custom/CmdletConfig.json", + "SPDXID": "SPDXRef-File--custom-CmdletConfig.json-50F9EB97C3280FCB17FE7A71ED3B07B7CC8E2A4A", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "0cc8151827527866723cc88da42f1dd4bf9ccec93ea40da281aff6b01847af7d" + "checksumValue": "6999d64a2c6b9298616f00c2db2991977b2e74de249abcf39c02d5844e5876a4" }, { "algorithm": "SHA1", - "checksumValue": "bcf968e68e022321ba41082cb6e8b0d6ae759eee" + "checksumValue": "50f9eb97c3280fcb17fe7a71ed3b07b7cc8e2a4a" } ], "licenseConcluded": "NOASSERTION", @@ -1449,15 +1449,15 @@ }, { "fileName": "./net472/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-52CFB70F417E92107A93FBF26A76DCD6E84B6A84", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-65142F147116D0CF25DFE4A603B2394C32FA0F86", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "083e0f0db1c968779d5659701afc74dfc408f9e88357347485708c0f1a645ac1" + "checksumValue": "b7e93d99b1ff526c562594ca4d0c1edb3295b72f99d6062d86722a6d8f626d1a" }, { "algorithm": "SHA1", - "checksumValue": "52cfb70f417e92107a93fbf26a76dcd6e84b6a84" + "checksumValue": "65142f147116d0cf25dfe4a603b2394c32fa0f86" } ], "licenseConcluded": "NOASSERTION", @@ -1468,15 +1468,15 @@ }, { "fileName": "./net472/Polly.dll", - "SPDXID": "SPDXRef-File--net472-Polly.dll-C1DEEB017C0B5B7524B8B05A68C96B1BFCD853E9", + "SPDXID": "SPDXRef-File--net472-Polly.dll-8674FDDBD9533EE718DDF9F49729036ED105462B", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "cd966d12fff99552ba237c60cea0aaafd1c86febb2491b23b8a6cb96dae1b6d8" + "checksumValue": "fc643fc147802081296c9abc580976a5fdf0eccb72cedd051ad26c99081bea14" }, { "algorithm": "SHA1", - "checksumValue": "c1deeb017c0b5b7524b8b05a68c96b1bfcd853e9" + "checksumValue": "8674fddbd9533ee718ddf9f49729036ed105462b" } ], "licenseConcluded": "NOASSERTION", @@ -1486,16 +1486,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./exports/ProxyCmdletDefinitionsWithHelp.ps1", - "SPDXID": "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-DF4F225A88F620FB536C246699CF5DABB07E139E", + "fileName": "./net472/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-786A002F9A95D3A31FA7B5632AF548BD1ABE5719", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "8ef3645d7eae96eff0ef865f2661578c9470fbe78b1a9fd4846d8290bc863294" + "checksumValue": "f0b4bc9817145d88b2e7c8dfbe0df3b153f610a2c1ebc01843d606bd451d1af1" }, { "algorithm": "SHA1", - "checksumValue": "df4f225a88f620fb536c246699cf5dabb07e139e" + "checksumValue": "786a002f9a95d3a31fa7b5632af548bd1abe5719" } ], "licenseConcluded": "NOASSERTION", @@ -1506,34 +1506,15 @@ }, { "fileName": "./net472/System.Runtime.CompilerServices.Unsafe.dll", - "SPDXID": "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-1549009D6CA10B3E91514F73C1B6E1B6DACF1F51", - "checksums": [ - { - "algorithm": "SHA256", - "checksumValue": "e512a1105351fb8249a7c7e400bda592b10771ba5a719c5a661889f05ca12118" - }, - { - "algorithm": "SHA1", - "checksumValue": "1549009d6ca10b3e91514f73c1b6e1b6dacf1f51" - } - ], - "licenseConcluded": "NOASSERTION", - "licenseInfoInFiles": [ - "NOASSERTION" - ], - "copyrightText": "NOASSERTION" - }, - { - "fileName": "./net472/Microsoft.Azure.KeyVault.Cryptography.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-D01A9DE1CC2032A4D2B5BDFF8B652F30E95D129C", + "SPDXID": "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-4D6EA8EA4CEFD6236BDAE18A9714C415CE9E8E80", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "c633373f362d941ab731e69dc7ff90b10efb0a8a12cd965cba1908ced880803b" + "checksumValue": "bdc470dc0cfb496e3f9a9cbd718b91cb354eec5f584d4ddf4c1e25f60c27b963" }, { "algorithm": "SHA1", - "checksumValue": "d01a9de1cc2032a4d2b5bdff8b652f30e95d129c" + "checksumValue": "4d6ea8ea4cefd6236bdae18a9714c415ce9e8e80" } ], "licenseConcluded": "NOASSERTION", @@ -1543,16 +1524,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.IdentityModel.Tokens.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-CAC7641EEDB2A34CBF107DAAEF91C3D56C97FF62", + "fileName": "./net472/Microsoft.Teams.Policy.Administration.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-7A086CCCEF5693535BD3CB8A45C139118B0408B2", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "88bd9961a19475de97194fb219a8906d07b7fb2ad465127536885bf648d07a46" + "checksumValue": "65625ea53b67d3901a633d013afd8b9f8e2c80261fe33b9417aac44fc7192cff" }, { "algorithm": "SHA1", - "checksumValue": "cac7641eedb2a34cbf107daaef91c3d56c97ff62" + "checksumValue": "7a086cccef5693535bd3cb8a45c139118b0408b2" } ], "licenseConcluded": "NOASSERTION", @@ -1581,16 +1562,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-9F901C25263F440F9858E303C8238ED424833BF1", + "fileName": "./net472/Microsoft.Web.WebView2.Wpf.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-01489D64D3B9A1C6A8A0B7E0631B2B9BDD6173ED", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "21320bbfb9297b679b0eaac7e5db6c07f7be1e4ff3bc113064e77075f98a8036" + "checksumValue": "4b23f4a7e9a5eb2fab4319c482efce1f03e702ee24128d70bbe7a029b097f3fb" }, { "algorithm": "SHA1", - "checksumValue": "9f901c25263f440f9858e303c8238ed424833bf1" + "checksumValue": "01489d64d3b9a1c6a8a0b7e0631b2b9bdd6173ed" } ], "licenseConcluded": "NOASSERTION", @@ -1601,15 +1582,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-74E23CE5B1219B6741503B15840A6A7FE83A2519", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-C74ADA74AB08D0A7C7FC30E62C8ADA166348F348", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "a658dccb376b98d7d72cfbf4e6cae09181f3b21242d13f568305d500a963661b" + "checksumValue": "9b0d21d7f5456a327be6fc96b473033c2ccc4046f662fddcece228fbd68c470e" }, { "algorithm": "SHA1", - "checksumValue": "74e23ce5b1219b6741503b15840a6a7fe83a2519" + "checksumValue": "c74ada74ab08d0a7c7fc30e62c8ada166348f348" } ], "licenseConcluded": "NOASSERTION", @@ -1619,16 +1600,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Extensions.Primitives.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-AA195DCD97528317DE222B833918C78505548FE9", + "fileName": "./net472/System.IO.FileSystem.AccessControl.dll", + "SPDXID": "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-E201A6C3418738171437D08CE031AF7BE2581673", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "23cd3f3ae9b569d614183d676708d8c62457daf89bbae1e4f62cc519155a39dc" + "checksumValue": "4eef61d4ecfb30bffec8ed73b92aee0c3e1f5b80f24b4a7864393c9ec5bdd6b8" }, { "algorithm": "SHA1", - "checksumValue": "aa195dcd97528317de222b833918c78505548fe9" + "checksumValue": "e201a6c3418738171437d08ce031af7be2581673" } ], "licenseConcluded": "NOASSERTION", @@ -1638,16 +1619,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Web.WebView2.Wpf.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-DF0AE83741149E35F93B94203DEE27C001C0EF2F", + "fileName": "./net472/System.ValueTuple.dll", + "SPDXID": "SPDXRef-File--net472-System.ValueTuple.dll-FA705C62A84C9F1B1A73ECD9413ABFDBB2894C90", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "3ecafb300347e6ccb3b2e4f6bc56285f58ff3149620bc7456c43db151e48048f" + "checksumValue": "d574be0f1f0dd4411688c9f27fd5d42c7cf2cc858903566404d6dff0e5042b21" }, { "algorithm": "SHA1", - "checksumValue": "df0ae83741149e35f93b94203dee27c001c0ef2f" + "checksumValue": "fa705c62a84c9f1b1a73ecd9413abfdbb2894c90" } ], "licenseConcluded": "NOASSERTION", @@ -1658,15 +1639,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-17B9D24C36C6FECD28637658E99E51E81735F8F6", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-6F84B6E012BAFF57A4653E61727CABA01EA53C43", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "65f0080dec98fa8dd9159d73ebdf59ecc9f380fbdbb8ce8f419a6b924503cc6d" + "checksumValue": "23c4ec59531f791e3dca7589659e9fbec44b1e07e5e522299d2cada177e284f2" }, { "algorithm": "SHA1", - "checksumValue": "17b9d24c36c6fecd28637658e99e51e81735f8f6" + "checksumValue": "6f84b6e012baff57a4653e61727caba01ea53c43" } ], "licenseConcluded": "NOASSERTION", @@ -1676,16 +1657,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.IO.FileSystem.AccessControl.dll", - "SPDXID": "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-8229092FCAF38DF20AAB4186501F4EB92455E622", + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-CCDE9D64C0DAA1FB6F941E56E3A27909CE3FCF26", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "a1c0b39e3d10c2caec8962c50bdbeaef9b51b5b663c4c49326f8f77172bd7b8e" + "checksumValue": "129e13e98133357d7e2a9525264bef9ea8a8905cfd869bf38cb720b02734640e" }, { "algorithm": "SHA1", - "checksumValue": "8229092fcaf38df20aab4186501f4eb92455e622" + "checksumValue": "ccde9d64c0daa1fb6f941e56e3a27909ce3fcf26" } ], "licenseConcluded": "NOASSERTION", @@ -1695,16 +1676,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.IdentityModel.JsonWebTokens.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-9690CDD7BA2C802F11A01C4315E2F329AE73E118", + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "5a0eeec5ab5c97538c9f561b008e96bd354ef153e356363a5ce4f949f278c8c3" + "checksumValue": "d67870aeb4c480d5c7feed71e40dbcfd207d15269ad6bb71643a9e8dc66993db" }, { "algorithm": "SHA1", - "checksumValue": "9690cdd7ba2c802f11a01c4315e2f329ae73e118" + "checksumValue": "473dd93c24a86081d72eb2907a81dbe77989e072" } ], "licenseConcluded": "NOASSERTION", @@ -1714,16 +1695,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.ValueTuple.dll", - "SPDXID": "SPDXRef-File--net472-System.ValueTuple.dll-92A0F64A8F03C876FEAC5AEAFF8002718BD48FD6", + "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-465A18651303F41BEC9371C24DDDF788E7E73C95", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "65b9ba99de3f286550118167538523e25860e9d90ec797106e31f60b651ce325" + "checksumValue": "7ec5cf66fbcf3b362d33aee2e4cd9de7d3d93cc02085f1207aeb85c65e6b03d1" }, { "algorithm": "SHA1", - "checksumValue": "92a0f64a8f03c876feac5aeaff8002718bd48fd6" + "checksumValue": "465a18651303f41bec9371c24dddf788e7e73c95" } ], "licenseConcluded": "NOASSERTION", @@ -1733,16 +1714,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-87E6716DA8DBD1A73A93CEF6BEA5993499F7875B", + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-7F05017570427CC8F35A41E8AD7B9C3C21E37041", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "274316eb1139ab74cfee6475e5b379964534aa9cc12ba6742d313122bb93590e" + "checksumValue": "cf06eaa9bedb73acd0fc79ca2ef6fcd39f5d1addb50c2e5a661953e658dc366d" }, { "algorithm": "SHA1", - "checksumValue": "87e6716da8dbd1a73a93cef6bea5993499f7875b" + "checksumValue": "7f05017570427cc8f35a41e8ad7b9c3c21e37041" } ], "licenseConcluded": "NOASSERTION", @@ -1752,16 +1733,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-7E71DB70C09037F6E913A8114DD863878FC61F81", + "fileName": "./exports/ProxyCmdletDefinitionsWithHelp.ps1", + "SPDXID": "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-B55EA4708B83CBBC31C7C11573733B97558A9E44", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "9e834e271ccb6c9eaa0ba33ca681e02d06521180a41f4cdfcfe305b0e0a53fdd" + "checksumValue": "7b69d14b84baaa2f4c9a7fc2b3685bb355d7fa5967708eebd235cef029d30ec3" }, { "algorithm": "SHA1", - "checksumValue": "7e71db70c09037f6e913a8114dd863878fc61f81" + "checksumValue": "b55ea4708b83cbbc31c7c11573733b97558a9e44" } ], "licenseConcluded": "NOASSERTION", @@ -1771,16 +1752,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-5C58D7202043A71375A39F836E63F809F33B5FFA", + "fileName": "./net472/Microsoft.Azure.KeyVault.Cryptography.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-AA228C30A6E65B7C339BE70888E598F15384C7A6", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "89fa5c9b2f5e2e067362d02c0f78800fef08eb173b25ae647c65480b18ba2bfd" + "checksumValue": "d72ec87e8b67bf41c58e3274de605d44b8179fadf9a855dfc1ef282197c03057" }, { "algorithm": "SHA1", - "checksumValue": "5c58d7202043a71375a39f836e63f809f33b5ffa" + "checksumValue": "aa228c30a6e65b7c339be70888e598f15384c7a6" } ], "licenseConcluded": "NOASSERTION", @@ -1790,16 +1771,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-13DDF727B4565371A45E1594E5AAE579BACF59C1", + "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": "2865affd1d4aba9be3da0b7695281222ad35f79a34acb88752bd8e2c9d299263" + "checksumValue": "338b410d27376b6fcc24a0fe13b58987b7b4a5f9b7f9a5610dc4d08c9ab76aee" }, { "algorithm": "SHA1", - "checksumValue": "13ddf727b4565371a45e1594e5aae579bacf59c1" + "checksumValue": "c4b88e80f962180082211bffe828518c999d28ac" } ], "licenseConcluded": "NOASSERTION", @@ -1809,16 +1790,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-30BDDE4497DBEE37D444756C6FE7D5A0E2E05F99", + "fileName": "./net472/Microsoft.Extensions.Primitives.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-7CCB6B0AE1BE62E3111E575AD5D98D36E00695C5", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "c5ded6af36c4cb546f0a0c01ecc194d00a9e7ad5186fa6ae3ad910017281205d" + "checksumValue": "e6d842132f776afea56db3225592e16c389c9edfb3cf8e8e7b66c9836b361774" }, { "algorithm": "SHA1", - "checksumValue": "30bdde4497dbee37d444756c6fe7d5a0e2e05f99" + "checksumValue": "7ccb6b0ae1be62e3111e575ad5d98d36e00695c5" } ], "licenseConcluded": "NOASSERTION", @@ -1828,16 +1809,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Web.WebView2.Core.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-BA67B9B44D4637672620C7CB6E181EBC17BAA0F1", + "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": "2359868e084a27ad7b201e7479b4aaf889ac9929cf8344a6b0bac96c43e42b2e" + "checksumValue": "5c2a0c5441cbfa11e60ff1ff539f862b7304dfd194e27f7e8c80f3d4a149eb76" }, { "algorithm": "SHA1", - "checksumValue": "ba67b9b44d4637672620c7cb6e181ebc17baa0f1" + "checksumValue": "dd1c2fd1fdcd6d3c5f23bb016802d1184e701b19" } ], "licenseConcluded": "NOASSERTION", @@ -1847,16 +1828,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-7ED13B9FF2D4019B10E93525C7A4AC59AAEF3906", + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-F3A537C2581B037B3E5D6593319921D2A5377BB7", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "50c49a37af44fd43707924c73c2954d5bec310968967ef686dd2547741f87bbb" + "checksumValue": "2125b041cae14c58336aa40d7093a8065c70e3a4c3c1bee43a8facd7a7164538" }, { "algorithm": "SHA1", - "checksumValue": "7ed13b9ff2d4019b10e93525c7a4ac59aaef3906" + "checksumValue": "f3a537c2581b037b3e5d6593319921d2a5377bb7" } ], "licenseConcluded": "NOASSERTION", @@ -1866,16 +1847,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-00C9D78AFE85CAE3AA797880F0CC133A4571874C", + "fileName": "./net472/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-B843B060F4CA7284C5598E05F71A16F0DC8C0E94", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6580c6cfb145c73b9f6c80bc1358b3392e8681ac866dc4d1a332fbf8d7313a6e" + "checksumValue": "8d2f8ba457ea9552305548232bfcb0947b14b0896157058d02734ca1c70576da" }, { "algorithm": "SHA1", - "checksumValue": "00c9d78afe85cae3aa797880f0cc133a4571874c" + "checksumValue": "b843b060f4ca7284c5598e05f71a16f0dc8c0e94" } ], "licenseConcluded": "NOASSERTION", @@ -1885,16 +1866,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-A634DE5D0C7D5840957C990C3328549A7460451A", + "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": "7554cee318e31a3795596b82238ddb9d6bf63d713e6ef1fe65d7ec85de65ffbf" + "checksumValue": "8df32615e41188f9fb9d0e97f79ba454a359e0d1b74018cb39cb08c624c872ab" }, { "algorithm": "SHA1", - "checksumValue": "a634de5d0c7d5840957c990c3328549a7460451a" + "checksumValue": "75691941ea0487a403c0f0a61cebd63306a574df" } ], "licenseConcluded": "NOASSERTION", @@ -1904,16 +1885,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.Diagnostics.DiagnosticSource.dll", - "SPDXID": "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-FF17AA1E4E17FD55B12C239B8CC17CF29E1D3E60", + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-23C4DE58B7ADF208D7FD5707E1641C1470D5298A", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e90f238028ebf512000c3223e12d2d7542f9dab314afcce662ff41f8b3b734a4" + "checksumValue": "79a69ad418c503629214890a798609d91e1978d11183b5080f480dcb48b34cac" }, { "algorithm": "SHA1", - "checksumValue": "ff17aa1e4e17fd55b12c239b8cc17cf29e1d3e60" + "checksumValue": "23c4de58b7adf208d7fd5707e1641c1470d5298a" } ], "licenseConcluded": "NOASSERTION", @@ -1923,16 +1904,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.Security.Cryptography.ProtectedData.dll", - "SPDXID": "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-45AA7AD01C1BEB6E784F68B3338964F54CFFDD61", + "fileName": "./netcoreapp3.1/System.Management.Automation.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-A99AAEE15D9D52519310409F2D40C3FFA58C5868", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6c5592a0c25a54ccf5dea97e97f2ad1204ec4535b1445645309d67909712a8ef" + "checksumValue": "2a418ff4da207623b23d1b9300c6482f5c2a04655c28ca5f56e6f00b9c5e8d48" }, { "algorithm": "SHA1", - "checksumValue": "45aa7ad01c1beb6e784f68b3338964f54cffdd61" + "checksumValue": "a99aaee15d9d52519310409f2d40c3ffa58c5868" } ], "licenseConcluded": "NOASSERTION", @@ -1942,16 +1923,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./internal/Merged_internal.ps1", - "SPDXID": "SPDXRef-File--internal-Merged-internal.ps1-BF8844C5C101436FFD34EEF9A1E061BAB22D8A35", + "fileName": "./net472/Microsoft.Web.WebView2.Core.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e739f51725336c2429b7ee11a7a4a90809355eca3b86863117cb248a5e57e784" + "checksumValue": "d253b4fcf246561878d64a4bedbe8db1d1b733bd30b0ca8a19dd18f4610afaff" }, { "algorithm": "SHA1", - "checksumValue": "bf8844c5c101436ffd34eef9a1e061bab22d8a35" + "checksumValue": "83efc5eb7ef030c0fd97d30280196fa8db7a2cae" } ], "licenseConcluded": "NOASSERTION", @@ -1961,16 +1942,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-A3C89FAC13F4C252C813E1A1DFA4BF1DDD4860DC", + "fileName": "./net472/System.Diagnostics.DiagnosticSource.dll", + "SPDXID": "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-BB1ECBBB6CB7498AD99B15ED2A0ED4080ECC2624", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "ae2dbac2994324426df4317ad8ffbf212277b5630ee8f08c5dbceb76a257e4ed" + "checksumValue": "46b9717b423a1abad67a498a7a5ee3b23209393f6a6709f0d4bd325d706b39b9" }, { "algorithm": "SHA1", - "checksumValue": "a3c89fac13f4c252c813e1a1dfa4bf1ddd4860dc" + "checksumValue": "bb1ecbbb6cb7498ad99b15ed2a0ed4080ecc2624" } ], "licenseConcluded": "NOASSERTION", @@ -1980,16 +1961,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Azure.KeyVault.Jose.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-1951922D05FCE76F1130BDD61D899AE8E9F96A06", + "fileName": "./netcoreapp3.1/Polly.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.dll-B4A339D19EBAB0CF38FEC6BC92386A3B84CDFCBA", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6030bf5e3b23a44150b5663fd9c120dc5240dda30bd9671157ad847560fd3487" + "checksumValue": "4eafaac13b6bf332e9bdc2375a1d330da65148c3cb8248bef71312c25b4932d1" }, { "algorithm": "SHA1", - "checksumValue": "1951922d05fce76f1130bdd61d899ae8e9f96a06" + "checksumValue": "b4a339d19ebab0cf38fec6bc92386a3b84cdfcba" } ], "licenseConcluded": "NOASSERTION", @@ -1999,16 +1980,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/System.Management.Automation.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-C727842E0271095F41D0C203EFB95A404459C7F8", + "fileName": "./net472/System.Security.Cryptography.ProtectedData.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-F78C51196CE15F975FCAF3BC8BC8F07AE0633B34", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "69b7f158317ca464aaa3367634c0c108938de190280c480e7a4b725b7b4e979d" + "checksumValue": "abe09e765bcc0f25039632f91f2514d1e8fa5febb9815750a582007a9654eebc" }, { "algorithm": "SHA1", - "checksumValue": "c727842e0271095f41d0c203efb95a404459c7f8" + "checksumValue": "f78c51196ce15f975fcaf3bc8bc8f07ae0633b34" } ], "licenseConcluded": "NOASSERTION", @@ -2018,16 +1999,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-5E6A616B36949F1E739404D89B8E97326D174C56", + "fileName": "./netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-C4C40D89C47D7FDE0B4CB5FBDC4E0DE650B843C4", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "896fb99ceab91bb4fad210a5970f091b6020049239266b028ab39ca520473b4e" + "checksumValue": "2d2ddb2fa4b628162aad2d512abd47d8747eb43fc214b6a0b529a95d05ac5d5f" }, { "algorithm": "SHA1", - "checksumValue": "5e6a616b36949f1e739404d89b8e97326d174c56" + "checksumValue": "c4c40d89c47d7fde0b4cb5fbdc4e0de650b843c4" } ], "licenseConcluded": "NOASSERTION", @@ -2038,15 +2019,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Applications.Events.Server.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-F38C1C4B5790E34EC6CB9874CDD291FE5D453E56", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "122069d53bdfbcbcddae358e5fc0d5d3cf4ac0636dcd5f6e8a5717d3ad5f4a0b" + "checksumValue": "c1eaa5d9c465ab18d7ca530d8f79b4c762044c81e35ceda7f4a3a00e9280fbca" }, { "algorithm": "SHA1", - "checksumValue": "f38c1c4b5790e34ec6cb9874cdd291fe5d453e56" + "checksumValue": "8784d6c77efa3361390f5ba5f5f56a62434a4a35" } ], "licenseConcluded": "NOASSERTION", @@ -2056,16 +2037,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.IdentityModel.Logging.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-2C3DE414E0D866C6F9DA42D81CBB7CFF4EB4D3A0", + "fileName": "./netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "f2b291f68b3255db0d67e722fed981f01f0b02e42379b9a647e5e4b692b45848" + "checksumValue": "68dcce73772f4109e08106d5117516aad682f12b359809d1c0d84d2a132ac4f7" }, { "algorithm": "SHA1", - "checksumValue": "2c3de414e0d866c6f9da42d81cbb7cff4eb4d3a0" + "checksumValue": "b82f9689f6c16fb1f5db89a0e92f2b9f756aec48" } ], "licenseConcluded": "NOASSERTION", @@ -2075,16 +2056,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-062AB1D4091E653C555DE2A5348E57F195341D90", + "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": "1cc01c2ef3acd90dc2c586631ea08887f1531cbf77db497362714554bdee16d0" + "checksumValue": "6be5f612da3c75c28a4bcab6b68c166b7252498cb01b65d65965d2b6d1ccee66" }, { "algorithm": "SHA1", - "checksumValue": "062ab1d4091e653c555de2a5348e57f195341d90" + "checksumValue": "26052d68a220e9f37a9368bacb54f73f5eec9acd" } ], "licenseConcluded": "NOASSERTION", @@ -2095,15 +2076,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-926DC77DFF9AE8F96C2F404443D799FF6DEBAB1E", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "5122d671a7d13b86a7fd8d4346272921a01b5951635ee12db7d5992d28c5281f" + "checksumValue": "ada85e7854037947f14cf746aecf6945193b4cf15d12193ef385f77e5b8bcf74" }, { "algorithm": "SHA1", - "checksumValue": "926dc77dff9ae8f96c2f404443d799ff6debab1e" + "checksumValue": "c328acf08de3e229e48083958d9df2a0eb25511a" } ], "licenseConcluded": "NOASSERTION", @@ -2113,16 +2094,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Polly.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.dll-7297FE4EF31344B13C0AE2EB8DB5261F1675EED0", + "fileName": "./netcoreapp3.1/Microsoft.Data.Sqlite.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-B0A60E1148FB6EA35B8E807976E8C59561308280", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "522cce25ef6d8934877c9126877a97b075480b815f56c3e8f24fedda2f320d6a" + "checksumValue": "1a96380bb969a5d671c5e3c7a667aa3fc30d41e2ecb2f64c62767adf2bc54a82" }, { "algorithm": "SHA1", - "checksumValue": "7297fe4ef31344b13c0ae2eb8db5261f1675eed0" + "checksumValue": "b0a60e1148fb6ea35b8e807976e8c59561308280" } ], "licenseConcluded": "NOASSERTION", @@ -2132,16 +2113,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-798F4F8D0134E1EEEAF8D47A60DB60E8F5FE5EE9", + "fileName": "./netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e9da503e8dd7165f28c0781a63404b861cee428893d1f5f594bc8ed923b6dcc6" + "checksumValue": "6457a00dbe141bb431c32b375c52ab61e1552beb50f27f8cf9706f7761448480" }, { "algorithm": "SHA1", - "checksumValue": "798f4f8d0134e1eeeaf8d47a60db60e8f5fe5ee9" + "checksumValue": "2598cbe499a5c56e7eb9715e1bf6f19ecbcfda02" } ], "licenseConcluded": "NOASSERTION", @@ -2151,16 +2132,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-B37CBE3C9D3E332A9DDB5BAF8E6DC3B93D46A94B", + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-0D4A3F7CE6D8EC4D0E39617E91AE19F5E950E36C", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "dfd0365f54085a9602fa13f7553c5b1f593e064420d063f63411dd6d93da885c" + "checksumValue": "67754af73201a54cf3c5dab744ebbd500d2f0687b1729f1b3283df84b7f3dc23" }, { "algorithm": "SHA1", - "checksumValue": "b37cbe3c9d3e332a9ddb5baf8e6dc3b93d46a94b" + "checksumValue": "0d4a3f7ce6d8ec4d0e39617e91ae19f5e950e36c" } ], "licenseConcluded": "NOASSERTION", @@ -2170,16 +2151,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-CFFB1338F7C4E6300B1D54B0EB2DA953ECFB9C15", + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Broker.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-BC752E36771DD07FE8844E846F5FBF63EF3F688F", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "4b91a5a74c00e41f0ffebe5d62aeeb43725342266e19271ad566a66b1a43937b" + "checksumValue": "f0210c30716c33cb16bb668f27915de1f95de0195f879e4ea6ba13b392ac3aa6" }, { "algorithm": "SHA1", - "checksumValue": "cffb1338f7c4e6300b1d54b0eb2da953ecfb9c15" + "checksumValue": "bc752e36771dd07fe8844e846f5fbf63ef3f688f" } ], "licenseConcluded": "NOASSERTION", @@ -2189,16 +2170,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Web.WebView2.WinForms.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-A0DC2B8491A0B9C2CBFCE33D8D7D7D527AD7E58A", + "fileName": "./netcoreapp3.1/OneCollectorChannel.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "7c9b134a14ba1014653993a4a8a04fdc131e3d0514d154a539e82d2bad8131b7" + "checksumValue": "02b9bc991c22c83254aa190eaa3cd0cabcbf33f7a12187e5e98ef8c66dde8559" }, { "algorithm": "SHA1", - "checksumValue": "a0dc2b8491a0b9c2cbfce33d8d7d7d527ad7e58a" + "checksumValue": "db64576fb1dca60f06b2a4524bc1cde3046ab333" } ], "licenseConcluded": "NOASSERTION", @@ -2208,16 +2189,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-2A8C48CDAFB9A0DF983C17D3E6EBC77759A5519A", + "fileName": "./internal/Merged_internal.ps1", + "SPDXID": "SPDXRef-File--internal-Merged-internal.ps1-E61D882264080326303E91B96F3D947BC4CE44D5", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "78db7ad96ef0a21cee0dd5362ca4653b69060772b9067a1dcccd579bb8592a0d" + "checksumValue": "169bc0d1817f61efb8da852b377987b0c8345a77e0fcb5378ddd543aca642e33" }, { "algorithm": "SHA1", - "checksumValue": "2a8c48cdafb9a0df983c17d3e6ebc77759a5519a" + "checksumValue": "e61d882264080326303e91b96f3d947bc4ce44d5" } ], "licenseConcluded": "NOASSERTION", @@ -2227,16 +2208,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/OneCollectorChannel.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-D9BE304A92ECDD767C8CEA2330117017BD591B73", + "fileName": "./netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-99E811FB4338B59A38E10E5790B9F665158FACCA", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "12725fa5ce117086940c7c2a03f695ffb097ad36864a21a55a9bd96a5603deb5" + "checksumValue": "72d483d32a3294370102083a12156fbe8f4ebb35fe9bd5004a038d927ba6ccd9" }, { "algorithm": "SHA1", - "checksumValue": "d9be304a92ecdd767c8cea2330117017bd591b73" + "checksumValue": "99e811fb4338b59a38e10e5790b9f665158facca" } ], "licenseConcluded": "NOASSERTION", @@ -2246,16 +2227,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-C52AA0F79E08AAF2FB0E039B91884E1CE418C3C4", + "fileName": "./net472/Microsoft.Azure.KeyVault.Jose.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-3C0B02C0F1457FE7C40A5BEAB2B2C2D604D26BC7", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "fdf75884f982388e19ecb2cc4badc660ca3bdb71e9d3d9bebc8f6ff1df917771" + "checksumValue": "15e03afaf392e8236d199fa3bdfc5cda92b9fb75ddb875ab19943aaf728e77e9" }, { "algorithm": "SHA1", - "checksumValue": "c52aa0f79e08aaf2fb0e039b91884e1ce418c3c4" + "checksumValue": "3c0b02c0f1457fe7c40a5beab2b2c2d604d26bc7" } ], "licenseConcluded": "NOASSERTION", @@ -2265,16 +2246,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.IdentityModel.Tokens.Jwt.dll", - "SPDXID": "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-7A66B639F23FF9D2F7144B6A7A76E761A59C6A36", + "fileName": "./net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "201f1b337c9ee4083b60ab9c4fa18d4cf26bc0e35f58edf5c91b2ec0315cfbea" + "checksumValue": "0ab543a64f80c74a0f7f6b5d6c3a10bac1e3d459d155b1577d8b42b04a5991fb" }, { "algorithm": "SHA1", - "checksumValue": "7a66b639f23ff9d2f7144b6a7a76e761a59c6a36" + "checksumValue": "37eed298be541e9888717199b6a6c290cb4f1cc5" } ], "licenseConcluded": "NOASSERTION", @@ -2284,16 +2265,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/runtimes/win-x86/native/msalruntime_x86.dll", - "SPDXID": "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-BE80EC1BC002A26A895FC21445E3ACFAEE7E9932", + "fileName": "./net472/Microsoft.IdentityModel.Logging.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-636BFD185EF171BFCEA938D30DEE7C496CB8DE5F", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "dd47bf4c6958d609a3fc312e7cbd08edc600c2bdd0626edeef25ee50c619ef04" + "checksumValue": "b03c64926a7ef4c7d55c863aee3d4acacf1f58bdc724a88654443d519358cd48" }, { "algorithm": "SHA1", - "checksumValue": "be80ec1bc002a26a895fc21445e3acfaee7e9932" + "checksumValue": "636bfd185ef171bfcea938d30dee7c496cb8de5f" } ], "licenseConcluded": "NOASSERTION", @@ -2303,16 +2284,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/System.Security.Principal.Windows.dll", - "SPDXID": "SPDXRef-File--net472-System.Security.Principal.Windows.dll-FAAB91C369623B2C6C68C3126C64D7252CABC533", + "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": "233c9b649512670ea0a7215fa8544a145c8d05e1828bb3aabc80fc7cd643249b" + "checksumValue": "cc48863967e5f859292a84f611617d55f53dfb89573a34c553645aec6152f407" }, { "algorithm": "SHA1", - "checksumValue": "faab91c369623b2c6c68c3126c64d7252cabc533" + "checksumValue": "8bcefda393d3f235296bfe9c300e9f0f024d76d9" } ], "licenseConcluded": "NOASSERTION", @@ -2322,16 +2303,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Data.Sqlite.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-15219595C978A728007BE25B13C123979848F119", + "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": "8c28825b482f17f789bd719d65bc73b48fc74770342a125a40e6442650967a62" + "checksumValue": "5bd7ede386bb794e42e04531ce1977d633183df8a26ad351456b4daf62731a26" }, { "algorithm": "SHA1", - "checksumValue": "15219595c978a728007be25b13c123979848f119" + "checksumValue": "f36bd5e7284a5d5fca8641a61fe121503f672441" } ], "licenseConcluded": "NOASSERTION", @@ -2341,16 +2322,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-AC1E023C15601824C8C940113FB6ADA52A5C1F25", + "fileName": "./net472/Microsoft.Web.WebView2.WinForms.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-5170D70FD93BFF35EEB85C330C9AEABC9F8CA3B8", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6e21c84c990eecd25395d793866ebfd50ef32eca7f9e1f5e854da9fe954eb194" + "checksumValue": "5375c74198f884774894c9b7f9605ce29f48660e558ee6bc46f66e8dd48f3794" }, { "algorithm": "SHA1", - "checksumValue": "ac1e023c15601824c8c940113fb6ada52a5c1f25" + "checksumValue": "5170d70fd93bff35eeb85c330c9aeabc9f8ca3b8" } ], "licenseConcluded": "NOASSERTION", @@ -2360,16 +2341,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-581124CB768D48E241E812BC4FC3DB872442B91B", + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-CAD68BAE9B1A3B1DB3DBC4D80F403E0CD152B0BE", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "d60e294c94661dc1114ad859d5cae30a7b165fd8ce3944b2db44b950a76d4138" + "checksumValue": "241dcb210328f4a9f96a482f524450b99707ad6644c447a30b10636906d611b0" }, { "algorithm": "SHA1", - "checksumValue": "581124cb768d48e241e812bc4fc3db872442b91b" + "checksumValue": "cad68bae9b1a3b1db3dbc4d80f403e0cd152b0be" } ], "licenseConcluded": "NOASSERTION", @@ -2379,16 +2360,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Broker.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-341F55E993192C70697C60854D61A962A02DE6D3", + "fileName": "./net472/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-2E6D418B7395C63920B41918530730E8E52E9931", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "e305333485fba8283c49b219bcc4c0777be2e2c0103da26d08e67d30b7b33a2d" + "checksumValue": "1ed46cfb484e9841f0106ac02f6ce0524cc8d8f398f4864f87f815b41f5ae603" }, { "algorithm": "SHA1", - "checksumValue": "341f55e993192c70697c60854d61a962a02de6d3" + "checksumValue": "2e6d418b7395c63920b41918530730e8e52e9931" } ], "licenseConcluded": "NOASSERTION", @@ -2398,16 +2379,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-6FF436015E0E27137485AEDCAA6055FDB30D79C7", + "fileName": "./net472/Microsoft.ApplicationInsights.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-420C8DE42CA4E69F2C55DA3E4C7DBE60C80D6BD3", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "be8cb7536240b562553b78222b550588561d1a8dda87b2c71afb394b8985c1d0" + "checksumValue": "599ae5f978129e01b3e61ec0591c00e6f920e54b4635e57404df509193b5175f" }, { "algorithm": "SHA1", - "checksumValue": "6ff436015e0e27137485aedcaa6055fdb30d79c7" + "checksumValue": "420c8de42ca4e69f2c55da3e4c7dbe60c80d6bd3" } ], "licenseConcluded": "NOASSERTION", @@ -2417,16 +2398,16 @@ "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-F9F281261AF11896A491F49E2CE5D3648BDD447E", + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-B92B8AA4660C723AFF249CB777A49B3C4DB2F6AF", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "0ed3a1869c7c2f99f49a8e46f08f9d61358759a56fa3c8989280062b6101df24" + "checksumValue": "3da20251956291da4add2bd1755982b7ecd08d5a4b80057ed8bf8d5e1357c838" }, { "algorithm": "SHA1", - "checksumValue": "f9f281261af11896a491f49e2ce5d3648bdd447e" + "checksumValue": "b92b8aa4660c723aff249cb777a49b3c4db2f6af" } ], "licenseConcluded": "NOASSERTION", @@ -2436,16 +2417,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.ApplicationInsights.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-67CFEB80C1CF072F86D133B67825D00989375501", + "fileName": "./net472/System.Security.Principal.Windows.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.Principal.Windows.dll-8CBBBFE9705845C66E2E677E4077F4F50A794AAC", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "2a48227a967ba7246b7bc771fba9d8c9d2494646374f00620ff4cb3e0a8dd706" + "checksumValue": "a19df5f448d5ddeb604621393a9f280286d28f7ce8e8da295409ef950632fe60" }, { "algorithm": "SHA1", - "checksumValue": "67cfeb80c1cf072f86d133b67825d00989375501" + "checksumValue": "8cbbbfe9705845c66e2e677e4077f4f50a794aac" } ], "licenseConcluded": "NOASSERTION", @@ -2455,16 +2436,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Extensions.Configuration.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-E83EC26B235167554ADD233285C99F08690D5793", + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-3B4E33D47C0608E26B6AE871C6F17AD90B373D54", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "a2de24233e6d52f8f6a3ffc915b2b88298f80a56f3ec2743d7bb6d7b52e81461" + "checksumValue": "a15a591429b54f69e096f63076660eb4ba5bfb6691848fdeb35b48bf8c7dd678" }, { "algorithm": "SHA1", - "checksumValue": "e83ec26b235167554add233285c99f08690d5793" + "checksumValue": "3b4e33d47c0608e26b6ae871c6f17ad90b373d54" } ], "licenseConcluded": "NOASSERTION", @@ -2474,16 +2455,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-7C5FE65036EE897A68CBD0EEE5ABB4050D145BCB", + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-CC6A7DA721C22FEB1C7790083B86485BE62F4E65", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "01fb7aa412af28eb741ae6e70875237c2eeac0cb2fdfe98239f935e92e4e51eb" + "checksumValue": "cb1b86875efc199c92f15ec8eacda965fe5f636392465c4cfaacfaf643305f6c" }, { "algorithm": "SHA1", - "checksumValue": "7c5fe65036ee897a68cbd0eee5abb4050d145bcb" + "checksumValue": "cc6a7da721c22feb1c7790083b86485be62f4e65" } ], "licenseConcluded": "NOASSERTION", @@ -2493,16 +2474,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-F6C01AFDBA9C2FBD10B2A6C60DE5550F5AE07ACC", + "fileName": "./net472/Microsoft.Extensions.Configuration.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-378F9B613338528123DAB3A8A06387BF8D4A05B1", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "f69220cc043b16ee466e2331b4a0325e384ca7517f36d9b7c8e8567c0e59fc41" + "checksumValue": "d881e17666583e3133f524d631b4777b1d1666299074f2ef429d338e70a9401e" }, { "algorithm": "SHA1", - "checksumValue": "f6c01afdba9c2fbd10b2a6c60de5550f5ae07acc" + "checksumValue": "378f9b613338528123dab3a8a06387bf8d4a05b1" } ], "licenseConcluded": "NOASSERTION", @@ -2512,16 +2493,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-A1AC61CCD0D6C87353463411FC1AA284C7E3A734", + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "603d318a2a6ab51bca95ca556adc5ec00e5fd2700cc53495e9f7cfc714014b9b" + "checksumValue": "3c786c0b64c0f71eb099960804ca311660046e919925a42841bb3be1a7c547f7" }, { "algorithm": "SHA1", - "checksumValue": "a1ac61ccd0d6c87353463411fc1aa284c7e3a734" + "checksumValue": "35ea89f23c780b1575b2066db0d59f255971eb3d" } ], "licenseConcluded": "NOASSERTION", @@ -2532,15 +2513,15 @@ }, { "fileName": "./netcoreapp3.1/System.IO.FileSystem.AccessControl.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-10F54097256A8557F4CB7E21222F5C4E6C888959", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-32D4A92D76DEA1CAEB25B3AA0515AE0FCC277D15", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "4c15e21d6ce443632c530c1e208436f062c8dfc3acc9cba7f466ab91bf023651" + "checksumValue": "e09130c521554d251e706e1a1c026f4210e848d7c76a4768a5443856afcb869d" }, { "algorithm": "SHA1", - "checksumValue": "10f54097256a8557f4cb7e21222f5c4e6c888959" + "checksumValue": "32d4a92d76dea1caeb25b3aa0515ae0fcc277d15" } ], "licenseConcluded": "NOASSERTION", @@ -2550,16 +2531,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-3A99E7C513F8A0FB74E6E339AEBFF60479F0B68A", + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-3D7B4623B6D2C977926245CA18E62B56CFD71ADA", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "2648cd24f78860bfcc87bbb4024c3a1330acf36dcdfe27b0efa54f33ced24405" + "checksumValue": "bcf9fa7016be91642b55cd04dd285e57e0f411088615d909964dacdbac19dd0e" }, { "algorithm": "SHA1", - "checksumValue": "3a99e7c513f8a0fb74e6e339aebff60479f0b68a" + "checksumValue": "3d7b4623b6d2c977926245ca18e62b56cfd71ada" } ], "licenseConcluded": "NOASSERTION", @@ -2569,16 +2550,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "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": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + "checksumValue": "6be5f612da3c75c28a4bcab6b68c166b7252498cb01b65d65965d2b6d1ccee66" }, { "algorithm": "SHA1", - "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + "checksumValue": "26052d68a220e9f37a9368bacb54f73f5eec9acd" } ], "licenseConcluded": "NOASSERTION", @@ -2588,16 +2569,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-03F9E1303394326C8D4DFD1EC3DB94E9416B9929", + "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": "cc7d3c0754480aa3b3429e46b6325cc20cb315964c3eaa050ed7c0d6986be5db" + "checksumValue": "d5c764b7c759d4ded84b552375551729bd754be8b55d9ec5ccc1d9ac75fc6509" }, { "algorithm": "SHA1", - "checksumValue": "03f9e1303394326c8d4dfd1ec3db94e9416b9929" + "checksumValue": "3f2e251d14303409ee92a72ae340d0f32797874a" } ], "licenseConcluded": "NOASSERTION", @@ -2607,16 +2588,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/System.Security.AccessControl.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-348694118D9F701CFF8164F603370E90B8565872", + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-A25754D83B145F2002D8B5F60042E0B23185828D", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "8cacd649f772811b8f76520db962ae7ff2f9ac543d20666cc3cfdadc2dd5b70f" + "checksumValue": "18c5988ce64c60ec2ab84eb2309e5b976e9844f74939e066e9c7cac0d2d8e0fc" }, { "algorithm": "SHA1", - "checksumValue": "348694118d9f701cff8164f603370e90b8565872" + "checksumValue": "a25754d83b145f2002d8b5f60042e0b23185828d" } ], "licenseConcluded": "NOASSERTION", @@ -2626,16 +2607,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/runtimes/win-arm64/native/msalruntime_arm64.dll", - "SPDXID": "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-55F01F1DDF9AC8578E144EE6E2CDC14925E4C71C", + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Primitives.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-97AEE7B6EE71F83486E1F1FCEDDCEC1BFA920713", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "68284ddca05bcd001d156c2155129fb1472aaa2554f6172c73fffe15730cb45e" + "checksumValue": "a032e017cc2074057665056ab43c0cb7009361aa6c0d135c985dc51373fac4c4" }, { "algorithm": "SHA1", - "checksumValue": "55f01f1ddf9ac8578e144ee6e2cdc14925e4c71c" + "checksumValue": "97aee7b6ee71f83486e1f1fceddcec1bfa920713" } ], "licenseConcluded": "NOASSERTION", @@ -2645,16 +2626,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-BE80EC1BC002A26A895FC21445E3ACFAEE7E9932", + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-1E2DA042507433930C43192F1467547E7B540736", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "dd47bf4c6958d609a3fc312e7cbd08edc600c2bdd0626edeef25ee50c619ef04" + "checksumValue": "a18958cbd19cdeaba433cdc4422475ec3886a50c01caca58f09b4db69db35c1c" }, { "algorithm": "SHA1", - "checksumValue": "be80ec1bc002a26a895fc21445e3acfaee7e9932" + "checksumValue": "1e2da042507433930c43192f1467547e7b540736" } ], "licenseConcluded": "NOASSERTION", @@ -2664,16 +2645,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-0A6E054B451F31C94055F6ACB00BA5957441873C", + "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": "6786cbeaf49c349354042ff3d6bfa75aab5ae844e794a44d0076a5ca2a1c173b" + "checksumValue": "de0e6c65094fc7a8a93135507d7c1540b0e0ded0226eab68afe1acaf47604916" }, { "algorithm": "SHA1", - "checksumValue": "0a6e054b451f31c94055f6acb00ba5957441873c" + "checksumValue": "75c87da718fce8604b436b93334b19e933510b93" } ], "licenseConcluded": "NOASSERTION", @@ -2683,16 +2664,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Extensions.Primitives.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-156E8ED45A57CDE8FFE3729808B824BD0D430A09", + "fileName": "./netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-970F383030BFB9CEAC762BD27C6C6BFC3805BFA7", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "18aa6a5943b33de0019595e29ee664e6faf0e65821ab340ec7c6cb5b59598109" + "checksumValue": "94acd3a93bc404386e7650469175a14c7ebda75fba443545eb431f00431f2909" }, { "algorithm": "SHA1", - "checksumValue": "156e8ed45a57cde8ffe3729808b824bd0d430a09" + "checksumValue": "970f383030bfb9ceac762bd27c6c6bfc3805bfa7" } ], "licenseConcluded": "NOASSERTION", @@ -2702,16 +2683,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-88710698ED692D23D92F13209F5C2072F10D18FB", + "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": "9cc03137ed36ca27ac1a5ccc41699a42f77c79fbabeb0f83c8c7ca92f72d7f92" + "checksumValue": "48228f1f16238ac9d4e0271504eb53d519c648dcc961c6138ab88f2557a005bd" }, { "algorithm": "SHA1", - "checksumValue": "88710698ed692d23d92f13209f5c2072f10d18fb" + "checksumValue": "f0caf63174aa6c5c7e4fb89acfe5509aa348183f" } ], "licenseConcluded": "NOASSERTION", @@ -2721,16 +2702,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-EB67218154369A8A4AAF66F771319CC115FB4167", + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "d52ddeb8d0e8647a8cbdafdad5ee11aa699535f2538ecbac6adca200ad7e68ce" + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" }, { "algorithm": "SHA1", - "checksumValue": "eb67218154369a8a4aaf66f771319cc115fb4167" + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" } ], "licenseConcluded": "NOASSERTION", @@ -2740,16 +2721,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-DCC6A264BD574D13BF808CB52CA41522AC3BDE37", + "fileName": "./netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-3DFCB287BE86C6727210CA8E49F182F27C3D006B", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "cb48600d758e01abd6713e5bab87235259a921d9b257e243c0efeaf45d68074d" + "checksumValue": "7fe73226748c6ecd7fb87b272320a4a6e2a79dd804f39131c6954f2c5629c3e4" }, { "algorithm": "SHA1", - "checksumValue": "dcc6a264bd574d13bf808cb52ca41522ac3bde37" + "checksumValue": "3dfcb287be86c6727210ca8e49f182f27c3d006b" } ], "licenseConcluded": "NOASSERTION", @@ -2760,15 +2741,15 @@ }, { "fileName": "./netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-90571CA6FEE8EBE2C79991B7A86A3CBE510DC7A5", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-BF41BE7A3FBF94A3A364E82A7F554B766299675A", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "55ae4fc2c8c9d27d148af0ae02bcc3cc1c842b05cbde5c4a9d0a5649baaff142" + "checksumValue": "476dd818c1e47dcff2c610f037a4d0efd5024dbe8bd14e09eb4ee8b407cf53dc" }, { "algorithm": "SHA1", - "checksumValue": "90571ca6fee8ebe2c79991b7a86a3cbe510dc7a5" + "checksumValue": "bf41be7a3fbf94a3a364e82a7f554b766299675a" } ], "licenseConcluded": "NOASSERTION", @@ -2778,16 +2759,16 @@ "copyrightText": "NOASSERTION" }, { - "fileName": "./net472/Microsoft.Identity.Client.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.dll-BD76C3D18335C3176AC8E11224D84A1E6BEE55DD", + "fileName": "./netcoreapp3.1/System.Security.AccessControl.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-C37E8BADAD875C1B1D1351DDAF60F40D5CF5D96D", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6467210ff3c468b29c91149219e9589f8e343c5e629b42d33f06b1677c74cd39" + "checksumValue": "528f2cdbe00191e04466c95b6fcfd64e6b8960d9e8dd91f08a907411406603d2" }, { "algorithm": "SHA1", - "checksumValue": "bd76c3d18335c3176ac8e11224d84a1e6bee55dd" + "checksumValue": "c37e8badad875c1b1d1351ddaf60f40d5cf5d96d" } ], "licenseConcluded": "NOASSERTION", @@ -2798,15 +2779,34 @@ }, { "fileName": "./netcoreapp3.1/System.Security.Principal.Windows.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-CEF407294190CB5121749F4FD6B61E331F196CBE", + "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": "0775ce605d4ef3da072a8234400156017ccf70fc5b77674058d61305c31674e7" + "checksumValue": "0ba6d8700b8430cc72df021adb7d847b2997737711dd5b86e98efd9fe2f748f4" }, { "algorithm": "SHA1", - "checksumValue": "cef407294190cb5121749f4fd6b61e331f196cbe" + "checksumValue": "2e1f79b0ba029dfb3f3ade53355ab13e3cdde06b" } ], "licenseConcluded": "NOASSERTION", @@ -2817,15 +2817,15 @@ }, { "fileName": "./net472/Microsoft.Rest.ClientRuntime.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-97D1AADDD462AB67A840415877258A30BB9A433A", + "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-74ABE77CF7A2CD9EDA543DA2B0F13EC41B66B326", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "8b2dab7d666d296fab299c5082f384bea6c22ee87b88aa2e1ca9294ab6cb37f8" + "checksumValue": "2248bcefe293bbbdfc82624dc691830c9929f37ee5ebb0a8a60f915e5d69099d" }, { "algorithm": "SHA1", - "checksumValue": "97d1aaddd462ab67a840415877258a30bb9a433a" + "checksumValue": "74abe77cf7a2cd9eda543da2b0f13ec41b66b326" } ], "licenseConcluded": "NOASSERTION", @@ -2836,15 +2836,15 @@ }, { "fileName": "./net472/Microsoft.Teams.PowerShell.Module.pdb", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-C4D3976B3A74CB6601506653EDA6CB3360730BEC", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-AE076B4C7317FBCC4FD99B448582170E794EFB34", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "c9e1b7714bd49d75ed60d97c68b2f3e23878e6708ac70fa34b1e986e49535b25" + "checksumValue": "1b161793a92a3ba3e3ec9b28f1dbd92714116026adbbab51058ddbdbf619bf68" }, { "algorithm": "SHA1", - "checksumValue": "c4d3976b3a74cb6601506653eda6cb3360730bec" + "checksumValue": "ae076b4c7317fbcc4fd99b448582170e794efb34" } ], "licenseConcluded": "NOASSERTION", @@ -2855,15 +2855,15 @@ }, { "fileName": "./net472/OneCollectorChannel.dll", - "SPDXID": "SPDXRef-File--net472-OneCollectorChannel.dll-D9BE304A92ECDD767C8CEA2330117017BD591B73", + "SPDXID": "SPDXRef-File--net472-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "12725fa5ce117086940c7c2a03f695ffb097ad36864a21a55a9bd96a5603deb5" + "checksumValue": "02b9bc991c22c83254aa190eaa3cd0cabcbf33f7a12187e5e98ef8c66dde8559" }, { "algorithm": "SHA1", - "checksumValue": "d9be304a92ecdd767c8cea2330117017bd591b73" + "checksumValue": "db64576fb1dca60f06b2a4524bc1cde3046ab333" } ], "licenseConcluded": "NOASSERTION", @@ -2874,15 +2874,15 @@ }, { "fileName": "./net472/System.Memory.dll", - "SPDXID": "SPDXRef-File--net472-System.Memory.dll-E0B59F8F264DBAF893C50CBF931657BC4D987201", + "SPDXID": "SPDXRef-File--net472-System.Memory.dll-38EFB7650125235941F18A6AFA994B6BCBF8A126", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "14520749a712c7b4d07eb04739b9f9cff87271bcd38be03e280bbe5dca739e81" + "checksumValue": "badfc86389ea07ef70ede33210eea29efeb31bcbd9f6c34aa66f00b96d764101" }, { "algorithm": "SHA1", - "checksumValue": "e0b59f8f264dbaf893c50cbf931657bc4d987201" + "checksumValue": "38efb7650125235941f18a6afa994b6bcbf8a126" } ], "licenseConcluded": "NOASSERTION", @@ -2893,15 +2893,15 @@ }, { "fileName": "./netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-D809BEB7FBF7283D364076886776F542C9709BC8", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6a31e251753abf6aa51477728ddc1a7b1444d0857799b1dc6d28d0e43b366b09" + "checksumValue": "9ca37d8aa1a7345c692856f30fbbb5abf7d15bcb1c06798987c3c9bd7813e971" }, { "algorithm": "SHA1", - "checksumValue": "d809beb7fbf7283d364076886776f542c9709bc8" + "checksumValue": "4d896dd09cd5597248077cf75d7b0f23b5f79eec" } ], "licenseConcluded": "NOASSERTION", @@ -2912,15 +2912,15 @@ }, { "fileName": "./net472/runtimes/win-x64/native/msalruntime.dll", - "SPDXID": "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-D809BEB7FBF7283D364076886776F542C9709BC8", + "SPDXID": "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6a31e251753abf6aa51477728ddc1a7b1444d0857799b1dc6d28d0e43b366b09" + "checksumValue": "9ca37d8aa1a7345c692856f30fbbb5abf7d15bcb1c06798987c3c9bd7813e971" }, { "algorithm": "SHA1", - "checksumValue": "d809beb7fbf7283d364076886776f542c9709bc8" + "checksumValue": "4d896dd09cd5597248077cf75d7b0f23b5f79eec" } ], "licenseConcluded": "NOASSERTION", @@ -2931,15 +2931,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-33B7D4EF77613AD4211C76D78D5F20CFC3975A13", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-FBD4C66A7D647627801101BB5E5952EA2682A82D", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "2ef911a9e46981e42173e4da6b2000c21d9f771fde539d4620631df3d524804a" + "checksumValue": "34d25b9ee596fdd5b4515bb2dd5da8fc8a68d19cb7c6f9ea45ce0ea94f1400b1" }, { "algorithm": "SHA1", - "checksumValue": "33b7d4ef77613ad4211c76d78d5f20cfc3975a13" + "checksumValue": "fbd4c66a7d647627801101bb5e5952ea2682a82d" } ], "licenseConcluded": "NOASSERTION", @@ -2950,15 +2950,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-5E6A616B36949F1E739404D89B8E97326D174C56", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "896fb99ceab91bb4fad210a5970f091b6020049239266b028ab39ca520473b4e" + "checksumValue": "0ab543a64f80c74a0f7f6b5d6c3a10bac1e3d459d155b1577d8b42b04a5991fb" }, { "algorithm": "SHA1", - "checksumValue": "5e6a616b36949f1e739404d89b8e97326d174c56" + "checksumValue": "37eed298be541e9888717199b6a6c290cb4f1cc5" } ], "licenseConcluded": "NOASSERTION", @@ -2969,15 +2969,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Logging.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-5C797B66244177B503F9E5E0390E05D3441DCBE7", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-ED6DD7AB91351309FFE9EE1BDFAC4E85E1AF4698", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "1cde1c651791ece060bfbe0afd753b631655bc3de52f36fb8f240921c034744d" + "checksumValue": "d0564435f400e298cf8613b589ea9622da3f087e9f050c9fc81dd326aefd714c" }, { "algorithm": "SHA1", - "checksumValue": "5c797b66244177b503f9e5e0390e05d3441dcbe7" + "checksumValue": "ed6dd7ab91351309ffe9ee1bdfac4e85e1af4698" } ], "licenseConcluded": "NOASSERTION", @@ -2988,15 +2988,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-4A7598BBEB35BDF42E6E77B80C4E090528D829C1", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-151FE8CE0B4594B78184D8BC5432860EA629A03C", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "ffaa257b17da28da12c79e8b5173eccaa1059fd862e9d5a89466ed7d63bb4d4c" + "checksumValue": "ed22d4475dcc6cdd75fe4def9344206ae288ee3613e5a40955a04e3688e7d9b3" }, { "algorithm": "SHA1", - "checksumValue": "4a7598bbeb35bdf42e6e77b80c4e090528d829c1" + "checksumValue": "151fe8ce0b4594b78184d8bc5432860ea629a03c" } ], "licenseConcluded": "NOASSERTION", @@ -3007,15 +3007,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Core.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-BA67B9B44D4637672620C7CB6E181EBC17BAA0F1", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "2359868e084a27ad7b201e7479b4aaf889ac9929cf8344a6b0bac96c43e42b2e" + "checksumValue": "d253b4fcf246561878d64a4bedbe8db1d1b733bd30b0ca8a19dd18f4610afaff" }, { "algorithm": "SHA1", - "checksumValue": "ba67b9b44d4637672620c7cb6e181ebc17baa0f1" + "checksumValue": "83efc5eb7ef030c0fd97d30280196fa8db7a2cae" } ], "licenseConcluded": "NOASSERTION", @@ -3026,15 +3026,15 @@ }, { "fileName": "./netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-78F15FFF5CB78F8F567BFD40138711C43FA64A94", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-EF874D772069AC284BA293697664622E64170DBF", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "c7db032a6f9f3becfc35b49ce5950c16e442ff42bae200d0e15ddbdbd73e64a2" + "checksumValue": "3be13ed666612440ca6745952388594ef911a06b55ca24ed3fea1a7fe7707ed6" }, { "algorithm": "SHA1", - "checksumValue": "78f15fff5cb78f8f567bfd40138711c43fa64a94" + "checksumValue": "ef874d772069ac284ba293697664622e64170dbf" } ], "licenseConcluded": "NOASSERTION", @@ -3045,15 +3045,15 @@ }, { "fileName": "./netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-55F01F1DDF9AC8578E144EE6E2CDC14925E4C71C", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "68284ddca05bcd001d156c2155129fb1472aaa2554f6172c73fffe15730cb45e" + "checksumValue": "d5c764b7c759d4ded84b552375551729bd754be8b55d9ec5ccc1d9ac75fc6509" }, { "algorithm": "SHA1", - "checksumValue": "55f01f1ddf9ac8578e144ee6e2cdc14925e4c71c" + "checksumValue": "3f2e251d14303409ee92a72ae340d0f32797874a" } ], "licenseConcluded": "NOASSERTION", @@ -3064,15 +3064,15 @@ }, { "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll", - "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-47D96933E93C2652D6C8AB08534202027197E377", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-3E74DA17753E821EF5AAE6BFEFAADB035BCAEF6B", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "dc9263b643094c3fafc21439ae7910023dc562b2fa00bc05cd82dfdd1e68da75" + "checksumValue": "c05d847947f17e8dc08288fe4656444cfb81b96bb4a37277d1ba6fd63903187c" }, { "algorithm": "SHA1", - "checksumValue": "47d96933e93c2652d6c8ab08534202027197e377" + "checksumValue": "3e74da17753e821ef5aae6bfefaadb035bcaef6b" } ], "licenseConcluded": "NOASSERTION", @@ -3083,15 +3083,15 @@ }, { "fileName": "./en-US/MicrosoftTeams-help.xml", - "SPDXID": "SPDXRef-File--en-US-MicrosoftTeams-help.xml-A2D70569632A9B8E9A9F5E3FD444DD88763F5EBB", + "SPDXID": "SPDXRef-File--en-US-MicrosoftTeams-help.xml-6D89F3274A55AB62E3AB0B2AC9A20739643BBCBE", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "2353d7a78b20c5f7f690c719049eb3ca8bd342b7f9a40876691427f59cc57570" + "checksumValue": "804880e3e6cedf24ec1b4f4e6bcdaeb8f578bd1fa2faf8ffbf45b2da6a59c559" }, { "algorithm": "SHA1", - "checksumValue": "a2d70569632a9b8e9a9f5e3fd444dd88763f5ebb" + "checksumValue": "6d89f3274a55ab62e3ab0b2ac9a20739643bbcbe" } ], "licenseConcluded": "NOASSERTION", @@ -3102,15 +3102,15 @@ }, { "fileName": "./net472/Microsoft.Azure.KeyVault.Core.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-721DFD0136FC557667F311AF0C3314C91087E719", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-A14CEEF9ED164364F0E4D7E55A18F4D31CFCA4B3", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "a940337fec24cf682ee14c8223a4e3884093255b22f2c7e1740e353dfa9738d7" + "checksumValue": "51bc23e9944a5a8b14ea9778713065ffe090439a67c850e5e4deffc36f8e3d9a" }, { "algorithm": "SHA1", - "checksumValue": "721dfd0136fc557667f311af0c3314c91087e719" + "checksumValue": "a14ceef9ed164364f0e4d7e55a18f4d31cfca4b3" } ], "licenseConcluded": "NOASSERTION", @@ -3121,15 +3121,15 @@ }, { "fileName": "./net472/Microsoft.Extensions.Logging.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-13DDF727B4565371A45E1594E5AAE579BACF59C1", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "2865affd1d4aba9be3da0b7695281222ad35f79a34acb88752bd8e2c9d299263" + "checksumValue": "d67870aeb4c480d5c7feed71e40dbcfd207d15269ad6bb71643a9e8dc66993db" }, { "algorithm": "SHA1", - "checksumValue": "13ddf727b4565371a45e1594e5aae579bacf59c1" + "checksumValue": "473dd93c24a86081d72eb2907a81dbe77989e072" } ], "licenseConcluded": "NOASSERTION", @@ -3140,15 +3140,15 @@ }, { "fileName": "./net472/Microsoft.IdentityModel.Abstractions.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-32A1DDF566A700FABAD1B9E66D8D4DA683EBFC9F", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-A212A6AB27FAC32F1D8FD7EE29C88E580F98B9DA", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "71a99e344f1147c55b822368ac0b17e9d6c4cd0445cbb52d7eb349fb5e231fa9" + "checksumValue": "73b7c8d51042e852801456d1c69fafe7120868e9764023b04683845674c59f2e" }, { "algorithm": "SHA1", - "checksumValue": "32a1ddf566a700fabad1b9e66d8d4da683ebfc9f" + "checksumValue": "a212a6ab27fac32f1d8fd7ee29c88e580f98b9da" } ], "licenseConcluded": "NOASSERTION", @@ -3159,15 +3159,15 @@ }, { "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-7EC36A1AB2E27F56B98844F72E32C462E4B148B4", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-AFE595802B070E7650F0E04F954C871401F7A9B9", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "c339cce647d4b099cb03b590df9eb4a61ee5ce28db93bcdcfb0b569ba8c662c6" + "checksumValue": "6d6ca15658871fa82ce18c12b82213fb06941b1b27d29f7bd2b542a12daa6702" }, { "algorithm": "SHA1", - "checksumValue": "7ec36a1ab2e27f56b98844f72e32c462e4b148b4" + "checksumValue": "afe595802b070e7650f0e04f954c871401f7a9b9" } ], "licenseConcluded": "NOASSERTION", @@ -3178,15 +3178,15 @@ }, { "fileName": "./net472/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", - "SPDXID": "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-271C9443EDED5CBBBA86A04377EE77F9E3F85767", + "SPDXID": "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-1864C10656CB87F8BEDD21C31AFEE920D8C79F62", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "aa0c333e658dd1f7054d4ab3850d59ae002fd01aa240ddd1ada988738aa50df1" + "checksumValue": "3a1128914317f95ed7d466b515f3a2cf83d8a1b4d4de09f064b2531fa4eec4f1" }, { "algorithm": "SHA1", - "checksumValue": "271c9443eded5cbbba86a04377ee77f9e3f85767" + "checksumValue": "1864c10656cb87f8bedd21c31afee920d8c79f62" } ], "licenseConcluded": "NOASSERTION", @@ -3197,15 +3197,15 @@ }, { "fileName": "./net472/System.Buffers.dll", - "SPDXID": "SPDXRef-File--net472-System.Buffers.dll-5CF4B471A5980FB7770D6A82E5C0F30E7E2456EC", + "SPDXID": "SPDXRef-File--net472-System.Buffers.dll-4ADAD327F7966812A2D4E6E0DF6700DCE90D9203", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "377754956becb6e4272da1f3db5b1d07c69ff37fa7743f215bf05730f75e6306" + "checksumValue": "f4487985145c63d97161e6d63a55d30f512a1edbc1dd791369ee89aec126f09a" }, { "algorithm": "SHA1", - "checksumValue": "5cf4b471a5980fb7770d6a82e5c0f30e7e2456ec" + "checksumValue": "4adad327f7966812a2d4e6e0df6700dce90d9203" } ], "licenseConcluded": "NOASSERTION", @@ -3216,15 +3216,15 @@ }, { "fileName": "./net472/System.Security.AccessControl.dll", - "SPDXID": "SPDXRef-File--net472-System.Security.AccessControl.dll-D9DB1D8FBE10E6DE07294D5954F484AE9DA0315D", + "SPDXID": "SPDXRef-File--net472-System.Security.AccessControl.dll-F62A4919CC8B15281D35357041B164B88D95B053", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "851a704bb46629c8c8ae547fd80a65c1e61783c84ca493d75b653acf401c545b" + "checksumValue": "ed4801e0a5c04badc091f66f49f969f06c57dab7f14ed665295bca121b680634" }, { "algorithm": "SHA1", - "checksumValue": "d9db1d8fbe10e6de07294d5954f484ae9da0315d" + "checksumValue": "f62a4919cc8b15281d35357041b164b88d95b053" } ], "licenseConcluded": "NOASSERTION", @@ -3235,15 +3235,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.ApplicationInsights.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-3F8F5ED5857B1005C0EAF622FEDD113EE08010D7", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-F5557B0BCCE6B5D6B0D4821A34FE7EA37095DA1F", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "33822f28cc29a90e5eefca57291d3346a64d236a8f02948570c1073b6b284f0a" + "checksumValue": "66530079f19f93685c42a0db9513b56cf2992bb32bd0ac50610a39f5ef69998b" }, { "algorithm": "SHA1", - "checksumValue": "3f8f5ed5857b1005c0eaf622fedd113ee08010d7" + "checksumValue": "f5557b0bcce6b5d6b0d4821a34fe7ea37095da1f" } ], "licenseConcluded": "NOASSERTION", @@ -3254,15 +3254,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-EEE88131492D6DB2C5FA2C40CA9A42FED497E9A3", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-B674B5BEB662BA07143DC3F659376A833DE3B307", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6794140a04ecf0b60695858b32d1ad4a44ab9d09133a44547ee6048b169acb20" + "checksumValue": "ea3135eefa4db734fc127cd55f9173ccd3b2e94b420018b66e7be62a2ad4517d" }, { "algorithm": "SHA1", - "checksumValue": "eee88131492d6db2c5fa2c40ca9a42fed497e9a3" + "checksumValue": "b674b5beb662ba07143dc3f659376a833de3b307" } ], "licenseConcluded": "NOASSERTION", @@ -3273,15 +3273,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-08819A5ECA697B9A95B7F16A29166BB31DB21353", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-86DD428AFC26F53C46E0DBEBB9418CFD119BB0C2", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "98da18880a88da080aeb7ec566c4d3ec78553aef462116bc124088cc7964e8c6" + "checksumValue": "ad98e90b4d3b500ddf28ebe942d602a232e77af619ef7c596db2281ba5d08cac" }, { "algorithm": "SHA1", - "checksumValue": "08819a5eca697b9a95b7f16a29166bb31db21353" + "checksumValue": "86dd428afc26f53c46e0dbebb9418cfd119bb0c2" } ], "licenseConcluded": "NOASSERTION", @@ -3292,15 +3292,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-81DD212D47A483F4DDE4D60D0A01BCC800991CB9", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-D8FEB8261C16FB4D543DDC73EB653E6D8ECBC0E5", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "2502009f6016cc33cf977557a65eb18a54f361e20d49030910643363ffce11ab" + "checksumValue": "adf0277056c72cf8e1ead97b36613282c775108f309b8435c8d5c323f38f9747" }, { "algorithm": "SHA1", - "checksumValue": "81dd212d47a483f4dde4d60d0a01bcc800991cb9" + "checksumValue": "d8feb8261c16fb4d543ddc73eb653e6d8ecbc0e5" } ], "licenseConcluded": "NOASSERTION", @@ -3311,15 +3311,15 @@ }, { "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-24CF448F5742B38827431B9A3D65661348282759", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-328751D7D0346D5EC70041B8D24E612BEAE1F07C", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "893866ec3653343f35d57d41b4cdf5e49bee82dc8d89769b6a887166e5c3285f" + "checksumValue": "b81725e14212a8e14909442d047e452051186e4239315fec5da0415af99272df" }, { "algorithm": "SHA1", - "checksumValue": "24cf448f5742b38827431b9a3d65661348282759" + "checksumValue": "328751d7d0346d5ec70041b8d24e612beae1f07c" } ], "licenseConcluded": "NOASSERTION", @@ -3330,15 +3330,15 @@ }, { "fileName": "./netcoreapp3.1/Newtonsoft.Json.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-0C1901A6AE798B1712E3B6C4FD03F4924F3101C4", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-85B414A60C00D1ED5755F7F9D50ADDBE348A3614", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "6fbeb02b97f7fe9756eeac799a1d11f5925f71e963d69e867c2831f08eb4585d" + "checksumValue": "5b934141b35a4dc966ef0c25159c90b88e289164dbbc01103244a5099741eb12" }, { "algorithm": "SHA1", - "checksumValue": "0c1901a6ae798b1712e3b6c4fd03f4924f3101c4" + "checksumValue": "85b414a60c00d1ed5755f7f9d50addbe348a3614" } ], "licenseConcluded": "NOASSERTION", @@ -3349,15 +3349,15 @@ }, { "fileName": "./netcoreapp3.1/System.Management.dll", - "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.dll-32CAA274A480B55EF54E8C71CEBF82D2F8F8C2AC", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.dll-07309D9DA1C5F7B5F50C73438067CF0083D64DC7", "checksums": [ { "algorithm": "SHA256", - "checksumValue": "d45b2f6affe33b990040d0a31c97e9f4859458bde7ffe08764e59ed88452a2ac" + "checksumValue": "a6f0440c16310aa8bfd4970bc29612287e6a3a7d707d7b48c5b6442719e8c64c" }, { "algorithm": "SHA1", - "checksumValue": "32caa274a480b55ef54e8c71cebf82d2f8f8c2ac" + "checksumValue": "07309d9da1c5f7b5f50c73438067cf0083d64dc7" } ], "licenseConcluded": "NOASSERTION", @@ -3388,13 +3388,13 @@ }, { "name": "Azure Pipelines Hosted Image win22", - "SPDXID": "SPDXRef-Package-4F4FF95A25D2C54B1508561EFB5ABD2CD5EBF637ADA4580C0A64DA57084985E6", + "SPDXID": "SPDXRef-Package-87DBC129E46E77857F5ECA3AB3A5EB8B516E2E67F885F6BB6243D1CA004FB440", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "20250811.1.0", + "versionInfo": "20250831.1.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", @@ -3405,80 +3405,80 @@ "supplier": "Organization: Microsoft/GitHub" }, { - "name": "MSTest.TestFramework", - "SPDXID": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", + "name": "Microsoft.Teams.PowerShell.Connect", + "SPDXID": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "2.1.1", + "versionInfo": "1.7.4", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.1.1" + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Connect@1.7.4" } ], - "supplier": "NOASSERTION" + "supplier": "Organization: Skype Admin Tenant Interfaces team" }, { - "name": "MSTest.TestAdapter", - "SPDXID": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", + "name": "Microsoft.Teams.PowerShell.Module", + "SPDXID": "SPDXRef-Package-73F10AFE7A15AD6A85D18E5BEF5166AF2CCCC9AAF7E7C46F8AC2C216AE865D01", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "2.1.1", + "versionInfo": "7.4.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.1.1" + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Module@7.4.0" } ], - "supplier": "NOASSERTION" + "supplier": "Organization: Microsoft Corporation" }, { - "name": "Microsoft.IdentityModel.Abstractions", - "SPDXID": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", + "name": "Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest", + "SPDXID": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "8.2.1", + "versionInfo": "21.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@8.2.1" + "referenceLocator": "pkg:nuget/Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest@21.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Teams.PowerShell.Module", - "SPDXID": "SPDXRef-Package-4DE8E3079CEA8F5FE28C211EEE5F280BAD5C23CF79463BDAC0D8E987AF82CD6E", + "name": "MSTest.TestAdapter", + "SPDXID": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "7.3.1", + "versionInfo": "2.1.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Module@7.3.1" + "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.1.1" } ], - "supplier": "Organization: Microsoft Corporation" + "supplier": "NOASSERTION" }, { - "name": "office-cmdlet-updater", - "SPDXID": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", + "name": "ServiceTopology", + "SPDXID": "SPDXRef-Package-51859863AD2341A201A718E83102C31AD33750C7FDCCCABDA897001A4B4ADAC1", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -3489,187 +3489,187 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:npm/office-cmdlet-updater@1.0.0" + "referenceLocator": "pkg:nuget/ServiceTopology@1.0.0" } ], - "supplier": "NOASSERTION" + "supplier": "Organization: ServiceTopology" }, { - "name": "Microsoft.Teams.PowerShell.Connect", - "SPDXID": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08", + "name": "office-cmdlet-updater", + "SPDXID": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.7.3", + "versionInfo": "1.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Connect@1.7.3" + "referenceLocator": "pkg:npm/office-cmdlet-updater@1.0.0" } ], - "supplier": "Organization: Skype Admin Tenant Interfaces team" + "supplier": "NOASSERTION" }, { - "name": "Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest", - "SPDXID": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", + "name": "MSTest.TestFramework", + "SPDXID": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "21.0.0", + "versionInfo": "2.1.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest@21.0.0" + "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.1.1" } ], "supplier": "NOASSERTION" }, { - "name": "coverlet.collector", - "SPDXID": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", + "name": "System.Diagnostics.DiagnosticSource", + "SPDXID": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.0.1", + "versionInfo": "9.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/coverlet.collector@1.0.1" + "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@9.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.NET.Test.Sdk", - "SPDXID": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", + "name": "Newtonsoft.Json", + "SPDXID": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "16.2.0", + "versionInfo": "13.0.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NET.Test.Sdk@16.2.0" + "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.2" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Identity.Client", - "SPDXID": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", + "name": "MSTest.TestAdapter", + "SPDXID": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.70.1", + "versionInfo": "2.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client@4.70.1" + "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Diagnostics.DiagnosticSource", - "SPDXID": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", + "name": "Microsoft.IdentityModel.Abstractions", + "SPDXID": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "9.0.0", + "versionInfo": "8.2.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@9.0.0" + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@8.2.1" } ], "supplier": "NOASSERTION" }, { - "name": "Newtonsoft.Json", - "SPDXID": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", + "name": "Microsoft.Identity.Client", + "SPDXID": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "13.0.2", + "versionInfo": "4.70.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.2" + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client@4.70.1" } ], "supplier": "NOASSERTION" }, { - "name": "MSTest.TestAdapter", - "SPDXID": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", + "name": "coverlet.collector", + "SPDXID": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "2.0.0", + "versionInfo": "1.0.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.0.0" + "referenceLocator": "pkg:nuget/coverlet.collector@1.0.1" } ], "supplier": "NOASSERTION" }, { - "name": "MSTest.TestFramework", - "SPDXID": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", + "name": "Moq", + "SPDXID": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "2.0.0", + "versionInfo": "4.5.28", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.0.0" + "referenceLocator": "pkg:nuget/Moq@4.5.28" } ], "supplier": "NOASSERTION" }, { - "name": "Moq", - "SPDXID": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", + "name": "Microsoft.NET.Test.Sdk", + "SPDXID": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.28", + "versionInfo": "16.2.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Moq@4.5.28" + "referenceLocator": "pkg:nuget/Microsoft.NET.Test.Sdk@16.2.0" } ], "supplier": "NOASSERTION" @@ -3693,19 +3693,19 @@ "supplier": "NOASSERTION" }, { - "name": "Microsoft.PowerShell.Native", - "SPDXID": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "name": "MSTest.TestFramework", + "SPDXID": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.2.0", + "versionInfo": "2.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.PowerShell.Native@6.2.0" + "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.0.0" } ], "supplier": "NOASSERTION" @@ -3729,109 +3729,109 @@ "supplier": "NOASSERTION" }, { - "name": "Microsoft.CodeCoverage", - "SPDXID": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", + "name": "Microsoft.Identity.Client.Desktop", + "SPDXID": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "16.2.0", + "versionInfo": "4.70.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.CodeCoverage@16.2.0" + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Desktop@4.70.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Identity.Client.Desktop", - "SPDXID": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "name": "Microsoft.CodeCoverage", + "SPDXID": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.70.1", + "versionInfo": "16.2.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Desktop@4.70.1" + "referenceLocator": "pkg:nuget/Microsoft.CodeCoverage@16.2.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Configuration.ConfigurationManager", - "SPDXID": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "name": "System.Runtime.Serialization.Primitives", + "SPDXID": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Configuration.ConfigurationManager@4.5.0" + "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Primitives@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Logging.Abstractions", - "SPDXID": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "name": "Microsoft.PowerShell.Native", + "SPDXID": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.1.2", + "versionInfo": "6.2.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@1.1.2" + "referenceLocator": "pkg:nuget/Microsoft.PowerShell.Native@6.2.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime.Serialization.Primitives", - "SPDXID": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "name": "System.Configuration.ConfigurationManager", + "SPDXID": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Primitives@4.3.0" + "referenceLocator": "pkg:nuget/System.Configuration.ConfigurationManager@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.IdentityModel.Tokens.Jwt", - "SPDXID": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "name": "Microsoft.Extensions.Logging.Abstractions", + "SPDXID": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.8.0", + "versionInfo": "1.1.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IdentityModel.Tokens.Jwt@6.8.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@1.1.2" } ], "supplier": "NOASSERTION" @@ -3855,73 +3855,55 @@ "supplier": "NOASSERTION" }, { - "name": "Microsoft.Data.Sqlite", - "SPDXID": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "name": "System.IO", + "SPDXID": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.1.1", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Data.Sqlite@1.1.1" + "referenceLocator": "pkg:nuget/System.IO@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.IO", - "SPDXID": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "name": "Microsoft.Data.Sqlite", + "SPDXID": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "1.1.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Data.Sqlite@1.1.1" } ], "supplier": "NOASSERTION" }, { - "name": "System.ValueTuple", - "SPDXID": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "name": "System.IdentityModel.Tokens.Jwt", + "SPDXID": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "6.8.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.ValueTuple@4.5.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" + "referenceLocator": "pkg:nuget/System.IdentityModel.Tokens.Jwt@6.8.0" } ], "supplier": "NOASSERTION" @@ -3945,8 +3927,8 @@ "supplier": "NOASSERTION" }, { - "name": "System.Runtime.Extensions", - "SPDXID": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "name": "System.Reflection.Extensions", + "SPDXID": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -3957,7 +3939,7 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Extensions@4.3.0" + "referenceLocator": "pkg:nuget/System.Reflection.Extensions@4.3.0" } ], "supplier": "NOASSERTION" @@ -3981,26 +3963,26 @@ "supplier": "NOASSERTION" }, { - "name": "Microsoft.Identity.Client.NativeInterop", - "SPDXID": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "name": "System.ValueTuple", + "SPDXID": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "0.18.1", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.NativeInterop@0.18.1" + "referenceLocator": "pkg:nuget/System.ValueTuple@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4011,68 +3993,68 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime.Serialization.Xml", - "SPDXID": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "name": "NETStandard.Library", + "SPDXID": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "1.6.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Xml@4.3.0" + "referenceLocator": "pkg:nuget/NETStandard.Library@1.6.1" } ], "supplier": "NOASSERTION" }, { - "name": "System.Reflection.Emit.Lightweight", - "SPDXID": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "name": "Microsoft.Identity.Client.NativeInterop", + "SPDXID": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "0.18.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Emit.Lightweight@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.NativeInterop@0.18.1" } ], "supplier": "NOASSERTION" }, { - "name": "System.Xml.XPath", - "SPDXID": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "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.0", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XPath@4.3.0" + "referenceLocator": "pkg:nuget/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Resources.ResourceManager", - "SPDXID": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "name": "System.Diagnostics.Tracing", + "SPDXID": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4083,32 +4065,32 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Resources.ResourceManager@4.3.0" + "referenceLocator": "pkg:nuget/System.Diagnostics.Tracing@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "NETStandard.Library", - "SPDXID": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "name": "System.Reflection.Emit.Lightweight", + "SPDXID": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.6.1", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/NETStandard.Library@1.6.1" + "referenceLocator": "pkg:nuget/System.Reflection.Emit.Lightweight@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Text.Encoding.Extensions", - "SPDXID": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "name": "System.Resources.ResourceManager", + "SPDXID": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4119,32 +4101,32 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.Encoding.Extensions@4.3.0" + "referenceLocator": "pkg:nuget/System.Resources.ResourceManager@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "name": "Microsoft.Web.WebView2", + "SPDXID": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "1.0.864.35", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/Microsoft.Web.WebView2@1.0.864.35" } ], "supplier": "NOASSERTION" }, { - "name": "System.Diagnostics.Tracing", - "SPDXID": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "name": "System.Runtime.Extensions", + "SPDXID": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4155,43 +4137,43 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.Tracing@4.3.0" + "referenceLocator": "pkg:nuget/System.Runtime.Extensions@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Web.WebView2", - "SPDXID": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "name": "System.Xml.XPath", + "SPDXID": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.0.864.35", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Web.WebView2@1.0.864.35" + "referenceLocator": "pkg:nuget/System.Xml.XPath@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Azure.KeyVault.AzureServiceDeploy", - "SPDXID": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "name": "System.Memory", + "SPDXID": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", + "versionInfo": "4.5.5", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.AzureServiceDeploy@3.0.0" + "referenceLocator": "pkg:nuget/System.Memory@4.5.5" } ], "supplier": "NOASSERTION" @@ -4215,37 +4197,37 @@ "supplier": "NOASSERTION" }, { - "name": "System.Runtime.CompilerServices.Unsafe", - "SPDXID": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "name": "System.Text.Encoding.Extensions", + "SPDXID": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.0.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.Unsafe@6.0.0" + "referenceLocator": "pkg:nuget/System.Text.Encoding.Extensions@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Management.Automation", - "SPDXID": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "name": "System.Runtime.Serialization.Xml", + "SPDXID": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.2.7", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Management.Automation@6.2.7" + "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Xml@4.3.0" } ], "supplier": "NOASSERTION" @@ -4269,98 +4251,98 @@ "supplier": "NOASSERTION" }, { - "name": "System.Memory", - "SPDXID": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "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.5.5", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Memory@4.5.5" + "referenceLocator": "pkg:nuget/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Numerics.Vectors", - "SPDXID": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "name": "System.Management.Automation", + "SPDXID": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "6.2.7", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Numerics.Vectors@4.5.0" + "referenceLocator": "pkg:nuget/System.Management.Automation@6.2.7" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Configuration.Abstractions", - "SPDXID": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "name": "System.Reflection", + "SPDXID": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "8.0.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@8.0.0" + "referenceLocator": "pkg:nuget/System.Reflection@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Xml.XmlDocument", - "SPDXID": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "name": "System.Text.Encoding.CodePages", + "SPDXID": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XmlDocument@4.3.0" + "referenceLocator": "pkg:nuget/System.Text.Encoding.CodePages@4.5.1" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "name": "Microsoft.Azure.KeyVault.AzureServiceDeploy", + "SPDXID": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "3.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.AzureServiceDeploy@3.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Reflection", - "SPDXID": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "name": "System.Runtime.InteropServices.RuntimeInformation", + "SPDXID": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4371,68 +4353,68 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection@4.3.0" + "referenceLocator": "pkg:nuget/System.Runtime.InteropServices.RuntimeInformation@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "name": "Microsoft.Extensions.Configuration.Abstractions", + "SPDXID": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "8.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@8.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.native.System.Net.Http", - "SPDXID": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "name": "Microsoft.Teams.Policy.Administration.Configurations", + "SPDXID": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "12.2.29", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System.Net.Http@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Configurations@12.2.29" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Teams.Policy.Administration.Configurations", - "SPDXID": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", + "name": "System.Numerics.Vectors", + "SPDXID": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "12.2.29", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Configurations@12.2.29" + "referenceLocator": "pkg:nuget/System.Numerics.Vectors@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime.InteropServices.RuntimeInformation", - "SPDXID": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "name": "System.Xml.XmlDocument", + "SPDXID": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4443,32 +4425,32 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.InteropServices.RuntimeInformation@4.3.0" + "referenceLocator": "pkg:nuget/System.Xml.XmlDocument@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.X509Certificates", - "SPDXID": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "name": "Microsoft.Management.Infrastructure", + "SPDXID": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "1.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.X509Certificates@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Management.Infrastructure@1.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Globalization", - "SPDXID": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "name": "System.Data.Common", + "SPDXID": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4479,50 +4461,50 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Globalization@4.3.0" + "referenceLocator": "pkg:nuget/System.Data.Common@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Text.Encoding.CodePages", - "SPDXID": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "name": "Microsoft.CSharp", + "SPDXID": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.1", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.Encoding.CodePages@4.5.1" + "referenceLocator": "pkg:nuget/Microsoft.CSharp@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Text.RegularExpressions", - "SPDXID": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "name": "System.Runtime.CompilerServices.Unsafe", + "SPDXID": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.1", + "versionInfo": "6.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.1" + "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.Unsafe@6.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Collections.Concurrent", - "SPDXID": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "name": "System.Security.Cryptography.X509Certificates", + "SPDXID": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4533,43 +4515,61 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Collections.Concurrent@4.3.0" + "referenceLocator": "pkg:nuget/System.Security.Cryptography.X509Certificates@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Management.Infrastructure", - "SPDXID": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "name": "Microsoft.Azure.KeyVault.Core", + "SPDXID": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.0.0", + "versionInfo": "3.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Management.Infrastructure@1.0.0" + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Core@3.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.CSharp", - "SPDXID": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "name": "Microsoft.NETCore.Platforms", + "SPDXID": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "1.1.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.CSharp@4.5.0" + "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" @@ -4593,44 +4593,44 @@ "supplier": "NOASSERTION" }, { - "name": "NuGet.Build.Tasks.Pack", - "SPDXID": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", + "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": "5.2.0", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/NuGet.Build.Tasks.Pack@5.2.0" + "referenceLocator": "pkg:nuget/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.AspNetCore.App.Ref", - "SPDXID": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", + "name": "System.Globalization", + "SPDXID": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.1.10", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.AspNetCore.App.Ref@3.1.10" + "referenceLocator": "pkg:nuget/System.Globalization@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Data.Common", - "SPDXID": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "name": "System.Net.Http", + "SPDXID": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4641,86 +4641,86 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Data.Common@4.3.0" + "referenceLocator": "pkg:nuget/System.Net.Http@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Buffers", - "SPDXID": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "name": "Microsoft.Extensions.Logging", + "SPDXID": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.1", + "versionInfo": "1.1.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Buffers@4.5.1" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@1.1.2" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Azure.KeyVault.Core", - "SPDXID": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "name": "System.Buffers", + "SPDXID": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", + "versionInfo": "4.5.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Core@3.0.0" + "referenceLocator": "pkg:nuget/System.Buffers@4.5.1" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "name": "Microsoft.AspNetCore.App.Ref", + "SPDXID": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "3.1.10", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/Microsoft.AspNetCore.App.Ref@3.1.10" } ], "supplier": "NOASSERTION" }, { - "name": "System.IO.FileSystem.Primitives", - "SPDXID": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "name": "System.DirectoryServices", + "SPDXID": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.FileSystem.Primitives@4.3.0" + "referenceLocator": "pkg:nuget/System.DirectoryServices@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.IO.FileSystem", - "SPDXID": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "name": "runtime.native.System.Net.Http", + "SPDXID": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4731,14 +4731,14 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.FileSystem@4.3.0" + "referenceLocator": "pkg:nuget/runtime.native.System.Net.Http@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Linq.Expressions", - "SPDXID": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "name": "System.Runtime.CompilerServices.VisualC", + "SPDXID": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4749,43 +4749,43 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Linq.Expressions@4.3.0" + "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.VisualC@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.NETCore.Platforms", - "SPDXID": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "name": "System.ComponentModel", + "SPDXID": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.1.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@1.1.0" + "referenceLocator": "pkg:nuget/System.ComponentModel@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.Cng", - "SPDXID": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "name": "System.Security.AccessControl", + "SPDXID": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "5.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Cng@4.5.0" + "referenceLocator": "pkg:nuget/System.Security.AccessControl@5.0.0" } ], "supplier": "NOASSERTION" @@ -4809,26 +4809,26 @@ "supplier": "NOASSERTION" }, { - "name": "System.Net.Http", - "SPDXID": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "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.0", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Http@4.3.0" + "referenceLocator": "pkg:nuget/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime.InteropServices", - "SPDXID": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "name": "System.Collections.Concurrent", + "SPDXID": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4839,50 +4839,50 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.InteropServices@4.3.0" + "referenceLocator": "pkg:nuget/System.Collections.Concurrent@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.DirectoryServices", - "SPDXID": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "name": "Microsoft.Azure.KeyVault.Cryptography", + "SPDXID": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "3.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.DirectoryServices@4.5.0" + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Cryptography@3.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Logging", - "SPDXID": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "name": "System.Text.RegularExpressions", + "SPDXID": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.1.2", + "versionInfo": "4.3.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@1.1.2" + "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.1" } ], "supplier": "NOASSERTION" }, { - "name": "System.Reflection.TypeExtensions", - "SPDXID": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "name": "System.IO.Compression", + "SPDXID": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -4893,104 +4893,104 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.TypeExtensions@4.3.0" + "referenceLocator": "pkg:nuget/System.IO.Compression@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "OneCollectorChannel", - "SPDXID": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "name": "System.Linq.Expressions", + "SPDXID": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.1.0.234", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/OneCollectorChannel@1.1.0.234" + "referenceLocator": "pkg:nuget/System.Linq.Expressions@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Globalization.Calendars", - "SPDXID": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "name": "NuGet.Build.Tasks.Pack", + "SPDXID": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "5.2.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Globalization.Calendars@4.3.0" + "referenceLocator": "pkg:nuget/NuGet.Build.Tasks.Pack@5.2.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime.CompilerServices.VisualC", - "SPDXID": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "name": "Microsoft.IdentityModel.Abstractions", + "SPDXID": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "6.35.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.VisualC@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@6.35.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.IO.FileSystem.AccessControl", - "SPDXID": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "name": "System.Threading", + "SPDXID": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.FileSystem.AccessControl@5.0.0" + "referenceLocator": "pkg:nuget/System.Threading@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Reflection.Primitives", - "SPDXID": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "name": "Microsoft.IdentityModel.Tokens", + "SPDXID": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "6.8.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Primitives@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Tokens@6.8.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.ComponentModel", - "SPDXID": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "name": "System.Runtime.InteropServices", + "SPDXID": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5001,43 +5001,43 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.ComponentModel@4.3.0" + "referenceLocator": "pkg:nuget/System.Runtime.InteropServices@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.AccessControl", - "SPDXID": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "name": "System.Security.Cryptography.ProtectedData", + "SPDXID": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", + "versionInfo": "7.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.AccessControl@5.0.0" + "referenceLocator": "pkg:nuget/System.Security.Cryptography.ProtectedData@7.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Rest.ClientRuntime", - "SPDXID": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "name": "System.Reflection.TypeExtensions", + "SPDXID": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "2.3.21", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime@2.3.21" + "referenceLocator": "pkg:nuget/System.Reflection.TypeExtensions@4.3.0" } ], "supplier": "NOASSERTION" @@ -5061,134 +5061,134 @@ "supplier": "NOASSERTION" }, { - "name": "Microsoft.Azure.KeyVault.Cryptography", - "SPDXID": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "name": "System.IO.FileSystem.Primitives", + "SPDXID": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Cryptography@3.0.0" + "referenceLocator": "pkg:nuget/System.IO.FileSystem.Primitives@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Newtonsoft.Json", - "SPDXID": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "name": "System.Management.Automation", + "SPDXID": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "13.0.3", + "versionInfo": "3.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.3" + "referenceLocator": "pkg:nuget/System.Management.Automation@3.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.NETCore.Targets", - "SPDXID": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "name": "System.Globalization.Extensions", + "SPDXID": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@3.1.0" + "referenceLocator": "pkg:nuget/System.Globalization.Extensions@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Xml.ReaderWriter", - "SPDXID": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "name": "PowerShellStandard.Library", + "SPDXID": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "5.1.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.ReaderWriter@4.3.0" + "referenceLocator": "pkg:nuget/PowerShellStandard.Library@5.1.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Reflection.Metadata", - "SPDXID": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "name": "System.IO.FileSystem.AccessControl", + "SPDXID": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.4.1", + "versionInfo": "5.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Metadata@1.4.1" + "referenceLocator": "pkg:nuget/System.IO.FileSystem.AccessControl@5.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Management.Automation", - "SPDXID": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "name": "System.Diagnostics.DiagnosticSource", + "SPDXID": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", + "versionInfo": "6.0.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Management.Automation@3.0.0" + "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@6.0.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.IdentityModel.Tokens", - "SPDXID": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "name": "OneCollectorChannel", + "SPDXID": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.8.0", + "versionInfo": "1.1.0.234", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Tokens@6.8.0" + "referenceLocator": "pkg:nuget/OneCollectorChannel@1.1.0.234" } ], "supplier": "NOASSERTION" }, { - "name": "System.IO.Compression", - "SPDXID": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "name": "System.IO.FileSystem", + "SPDXID": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5199,14 +5199,14 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.Compression@4.3.0" + "referenceLocator": "pkg:nuget/System.IO.FileSystem@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Threading", - "SPDXID": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "name": "System.Security.SecureString", + "SPDXID": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5217,68 +5217,68 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading@4.3.0" + "referenceLocator": "pkg:nuget/System.Security.SecureString@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.DependencyInjection.Abstractions", - "SPDXID": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "name": "SQLite", + "SPDXID": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.1.1", + "versionInfo": "3.13.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@1.1.1" + "referenceLocator": "pkg:nuget/SQLite@3.13.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.SecureString", - "SPDXID": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "name": "Microsoft.Win32.Registry.AccessControl", + "SPDXID": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.SecureString@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry.AccessControl@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.ProtectedData", - "SPDXID": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "name": "System.Net.Sockets", + "SPDXID": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "7.0.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.ProtectedData@7.0.0" + "referenceLocator": "pkg:nuget/System.Net.Sockets@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Reflection.Emit", - "SPDXID": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "name": "System.Xml.ReaderWriter", + "SPDXID": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5289,50 +5289,50 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Emit@4.3.0" + "referenceLocator": "pkg:nuget/System.Xml.ReaderWriter@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Xml.XDocument", - "SPDXID": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "name": "Microsoft.Identity.Client.Extensions.Msal", + "SPDXID": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.70.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XDocument@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Extensions.Msal@4.70.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.IdentityModel.Abstractions", - "SPDXID": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "name": "Microsoft.Azure.KeyVault.Jose", + "SPDXID": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.35.0", + "versionInfo": "3.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@6.35.0" + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Jose@3.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Text.Encoding", - "SPDXID": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "name": "System.Net.WebHeaderCollection", + "SPDXID": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5343,115 +5343,115 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.Encoding@4.3.0" + "referenceLocator": "pkg:nuget/System.Net.WebHeaderCollection@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Azure.KeyVault.Jose", - "SPDXID": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "name": "Microsoft.Rest.ClientRuntime", + "SPDXID": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.0.0", + "versionInfo": "2.3.21", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Jose@3.0.0" + "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime@2.3.21" } ], "supplier": "NOASSERTION" }, { - "name": "System.Private.DataContractSerialization", - "SPDXID": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "name": "Microsoft.Win32.Registry", + "SPDXID": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Private.DataContractSerialization@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "PowerShellStandard.Library", - "SPDXID": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "name": "System.Runtime", + "SPDXID": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "5.1.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/PowerShellStandard.Library@5.1.0" + "referenceLocator": "pkg:nuget/System.Runtime@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Primitives", - "SPDXID": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "name": "System.Xml.XDocument", + "SPDXID": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "8.0.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@8.0.0" + "referenceLocator": "pkg:nuget/System.Xml.XDocument@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Collections.Immutable", - "SPDXID": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "name": "System.Globalization.Calendars", + "SPDXID": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.3.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Collections.Immutable@1.3.0" + "referenceLocator": "pkg:nuget/System.Globalization.Calendars@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "name": "System.Reflection.Primitives", + "SPDXID": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/System.Reflection.Primitives@4.3.0" } ], "supplier": "NOASSERTION" @@ -5475,278 +5475,278 @@ "supplier": "NOASSERTION" }, { - "name": "System.Diagnostics.DiagnosticSource", - "SPDXID": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "name": "System.Runtime.Numerics", + "SPDXID": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.0.1", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@6.0.1" + "referenceLocator": "pkg:nuget/System.Runtime.Numerics@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Win32.Registry", - "SPDXID": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "name": "System.Reflection.Metadata", + "SPDXID": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "1.4.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry@4.5.0" + "referenceLocator": "pkg:nuget/System.Reflection.Metadata@1.4.1" } ], "supplier": "NOASSERTION" }, { - "name": "System.Globalization.Extensions", - "SPDXID": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "name": "Microsoft.WindowsDesktop.App.Ref", + "SPDXID": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "3.1.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Globalization.Extensions@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.WindowsDesktop.App.Ref@3.1.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Management", - "SPDXID": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "name": "System.Private.DataContractSerialization", + "SPDXID": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Management@4.5.0" + "referenceLocator": "pkg:nuget/System.Private.DataContractSerialization@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Net.Sockets", - "SPDXID": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "SPDXID": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "1.1.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Sockets@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@1.1.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Win32.Registry.AccessControl", - "SPDXID": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "name": "System.Runtime", + "SPDXID": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "4.3.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry.AccessControl@4.5.0" + "referenceLocator": "pkg:nuget/System.Runtime@4.3.1" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.Algorithms", - "SPDXID": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "name": "System.Management", + "SPDXID": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Algorithms@4.3.0" + "referenceLocator": "pkg:nuget/System.Management@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "SQLite", - "SPDXID": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "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": "3.13.0", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/SQLite@3.13.0" + "referenceLocator": "pkg:nuget/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.native.System.Security.Cryptography.Apple", - "SPDXID": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "name": "Microsoft.Ic3.TenantAdminApi.Common.Helper", + "SPDXID": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "1.0.28", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.Apple@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Ic3.TenantAdminApi.Common.Helper@1.0.28" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.Encoding", - "SPDXID": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "name": "System.Security.Permissions", + "SPDXID": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Encoding@4.3.0" + "referenceLocator": "pkg:nuget/System.Security.Permissions@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "name": "Microsoft.NETCore.Targets", + "SPDXID": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "3.1.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@3.1.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Net.WebHeaderCollection", - "SPDXID": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "name": "Newtonsoft.Json", + "SPDXID": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "13.0.3", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.WebHeaderCollection@4.3.0" + "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.3" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Permissions", - "SPDXID": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "name": "System.Threading.Timer", + "SPDXID": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Permissions@4.5.0" + "referenceLocator": "pkg:nuget/System.Threading.Timer@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Identity.Client.Extensions.Msal", - "SPDXID": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "name": "System.ObjectModel", + "SPDXID": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.70.1", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Extensions.Msal@4.70.1" + "referenceLocator": "pkg:nuget/System.ObjectModel@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Identity.Client.Broker", - "SPDXID": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "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.70.1", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Broker@4.70.1" + "referenceLocator": "pkg:nuget/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Net.Primitives", - "SPDXID": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "name": "System.Diagnostics.StackTrace", + "SPDXID": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5757,50 +5757,50 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Primitives@4.3.0" + "referenceLocator": "pkg:nuget/System.Diagnostics.StackTrace@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Buffers", - "SPDXID": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "name": "runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Buffers@4.3.0" + "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Reflection.Emit.ILGeneration", - "SPDXID": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "name": "Microsoft.PowerShell.CoreCLR.Eventing", + "SPDXID": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "6.2.7", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Reflection.Emit.ILGeneration@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.PowerShell.CoreCLR.Eventing@6.2.7" } ], "supplier": "NOASSERTION" }, { - "name": "System.Net.Requests", - "SPDXID": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "name": "Microsoft.Win32.Primitives", + "SPDXID": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5811,32 +5811,32 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Requests@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Win32.Primitives@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime", - "SPDXID": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "name": "System.Security.Cryptography.Pkcs", + "SPDXID": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.1", + "versionInfo": "4.5.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime@4.3.1" + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Pkcs@4.5.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Xml.XmlSerializer", - "SPDXID": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "name": "System.Reflection.Emit", + "SPDXID": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5847,14 +5847,14 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Xml.XmlSerializer@4.3.0" + "referenceLocator": "pkg:nuget/System.Reflection.Emit@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.native.System", - "SPDXID": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "name": "System.Collections", + "SPDXID": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5865,32 +5865,32 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System@4.3.0" + "referenceLocator": "pkg:nuget/System.Collections@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Text.RegularExpressions", - "SPDXID": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "name": "System.CodeDom", + "SPDXID": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "4.5.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.0" + "referenceLocator": "pkg:nuget/System.CodeDom@4.5.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime.Numerics", - "SPDXID": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "name": "System.Reflection.Emit.ILGeneration", + "SPDXID": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5901,14 +5901,14 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Numerics@4.3.0" + "referenceLocator": "pkg:nuget/System.Reflection.Emit.ILGeneration@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime", - "SPDXID": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "name": "System.Security.Cryptography.Encoding", + "SPDXID": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5919,50 +5919,50 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime@4.3.0" + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Encoding@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.IdentityModel.JsonWebTokens", - "SPDXID": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "name": "System.Net.Http", + "SPDXID": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.8.0", + "versionInfo": "4.3.4", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.JsonWebTokens@6.8.0" + "referenceLocator": "pkg:nuget/System.Net.Http@4.3.4" } ], "supplier": "NOASSERTION" }, { - "name": "System.AppContext", - "SPDXID": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "name": "Microsoft.Teams.Policy.Administration.Cmdlets.OCE", + "SPDXID": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "0.1.12", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.AppContext@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Cmdlets.OCE@0.1.12" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Win32.Primitives", - "SPDXID": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "name": "System.Threading.Tasks", + "SPDXID": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5973,14 +5973,14 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Win32.Primitives@4.3.0" + "referenceLocator": "pkg:nuget/System.Threading.Tasks@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.ObjectModel", - "SPDXID": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "name": "System.Text.Encoding", + "SPDXID": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -5991,230 +5991,230 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.ObjectModel@4.3.0" + "referenceLocator": "pkg:nuget/System.Text.Encoding@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.WindowsDesktop.App.Ref", - "SPDXID": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", + "name": "System.AppContext", + "SPDXID": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.WindowsDesktop.App.Ref@3.1.0" + "referenceLocator": "pkg:nuget/System.AppContext@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Teams.PowerShell.TeamsCmdlets", - "SPDXID": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628", + "name": "Newtonsoft.Json.Schema", + "SPDXID": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.5.3", + "versionInfo": "3.0.11", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.TeamsCmdlets@1.5.3" + "referenceLocator": "pkg:nuget/Newtonsoft.Json.Schema@3.0.11" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Ic3.TenantAdminApi.Common.Helper", - "SPDXID": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "name": "Microsoft.Identity.Client.Broker", + "SPDXID": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.0.28", + "versionInfo": "4.70.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Ic3.TenantAdminApi.Common.Helper@1.0.28" + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Broker@4.70.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Rest.ClientRuntime.Azure", - "SPDXID": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "name": "Microsoft.Teams.ConfigAPI.CmdletHostContract", + "SPDXID": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.3.19", + "versionInfo": "3.2.4", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime.Azure@3.3.19" + "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.CmdletHostContract@3.2.4" } ], "supplier": "NOASSERTION" }, { - "name": "System.CodeDom", - "SPDXID": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "name": "Microsoft.Extensions.Primitives", + "SPDXID": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.0", + "versionInfo": "8.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.CodeDom@4.5.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@8.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "name": "System.Security.Cryptography.Primitives", + "SPDXID": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Primitives@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "name": "Microsoft.Rest.ClientRuntime.Azure", + "SPDXID": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "3.3.19", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.OpenSsl@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime.Azure@3.3.19" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.ApplicationInsights", - "SPDXID": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "name": "Microsoft.Extensions.Logging.Configuration", + "SPDXID": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "2.9.1", + "versionInfo": "8.0.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.ApplicationInsights@2.9.1" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Configuration@8.0.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.PowerShell.CoreCLR.Eventing", - "SPDXID": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "name": "Microsoft.ApplicationInsights", + "SPDXID": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "6.2.7", + "versionInfo": "2.9.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.PowerShell.CoreCLR.Eventing@6.2.7" + "referenceLocator": "pkg:nuget/Microsoft.ApplicationInsights@2.9.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Configuration", - "SPDXID": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "name": "Microsoft.Teams.ConfigAPI.Cmdlets", + "SPDXID": "SPDXRef-Package-C4075941FB03650FDCD59B46A8581619ADCD07F99EFE70194DBA9592C3E1FA26", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "8.0.0", + "versionInfo": "8.925.3", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@8.0.0" + "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.Cmdlets@8.925.3" } ], "supplier": "NOASSERTION" }, { - "name": "System.Threading.Thread", - "SPDXID": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "name": "Microsoft.NETCore.Platforms", + "SPDXID": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "5.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.Thread@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@5.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Threading.Timer", - "SPDXID": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "name": "System.Collections.Immutable", + "SPDXID": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "1.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.Timer@4.3.0" + "referenceLocator": "pkg:nuget/System.Collections.Immutable@1.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Diagnostics.Debug", - "SPDXID": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "name": "System.Text.RegularExpressions", + "SPDXID": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -6225,104 +6225,104 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.Debug@4.3.0" + "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.Primitives", - "SPDXID": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "SPDXID": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "8.0.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Primitives@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@8.0.2" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "name": "EV2.ArtifactsGenerator.M365", + "SPDXID": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "6.13.3069.1548", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.M365@6.13.3069.1548" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Teams.ConfigAPI.Cmdlets", - "SPDXID": "SPDXRef-Package-274088E7BDFC13167248BD9A4784E26EA10B6637C067A0252A40FAC9CFFCCD46", + "name": "System.Net.Primitives", + "SPDXID": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "8.808.3", + "versionInfo": "4.0.11", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.Cmdlets@8.808.3" + "referenceLocator": "pkg:nuget/System.Net.Primitives@4.0.11" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Principal.Windows", - "SPDXID": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "name": "Microsoft.Extensions.Primitives", + "SPDXID": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", + "versionInfo": "3.1.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Principal.Windows@5.0.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@3.1.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Teams.Policy.Administration.Cmdlets.OCE", - "SPDXID": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", + "name": "Microsoft.IC3.IaC.ServiceTopology", + "SPDXID": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "0.1.12", + "versionInfo": "1.38.0-beta0.dev6", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Cmdlets.OCE@0.1.12" + "referenceLocator": "pkg:nuget/Microsoft.IC3.IaC.ServiceTopology@1.38.0-beta0.dev6" } ], "supplier": "NOASSERTION" }, { - "name": "System.Collections", - "SPDXID": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "name": "runtime.native.System.Security.Cryptography.Apple", + "SPDXID": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", @@ -6333,313 +6333,331 @@ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Collections@4.3.0" + "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.Apple@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.NETCore.App.Ref", - "SPDXID": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", + "name": "System.Runtime.Handles", + "SPDXID": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.App.Ref@3.1.0" + "referenceLocator": "pkg:nuget/System.Runtime.Handles@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Threading.Tasks", - "SPDXID": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "name": "NJsonSchema", + "SPDXID": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "10.6.6", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Threading.Tasks@4.3.0" + "referenceLocator": "pkg:nuget/NJsonSchema@10.6.6" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Teams.Policy.Administration", - "SPDXID": "SPDXRef-Package-D558AFB2CAD0E7DBCD0E628F69A6F76A18AEF3F674D04B5206B53D08F9C8FCFB", + "name": "Microsoft.IC3.Resilience.ResilientAKV", + "SPDXID": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "21.4.4", + "versionInfo": "1.38.0-beta0.dev6", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration@21.4.4" + "referenceLocator": "pkg:nuget/Microsoft.IC3.Resilience.ResilientAKV@1.38.0-beta0.dev6" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Teams.ConfigAPI.CmdletHostContract", - "SPDXID": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "name": "Ev2.PipeGen", + "SPDXID": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.2.4", + "versionInfo": "3.9.3116.14", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.CmdletHostContract@3.2.4" + "referenceLocator": "pkg:nuget/Ev2.PipeGen@3.9.3116.14" } ], "supplier": "NOASSERTION" }, { - "name": "System.Diagnostics.StackTrace", - "SPDXID": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "name": "Microsoft.Extensions.Logging.Abstractions", + "SPDXID": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "8.0.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Diagnostics.StackTrace@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@8.0.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Runtime.Handles", - "SPDXID": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "name": "Microsoft.Extensions.Options", + "SPDXID": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "8.0.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Runtime.Handles@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Options@8.0.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Linq", - "SPDXID": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "name": "Microsoft.IC3.IaC.ServiceTopologyDataConnector", + "SPDXID": "SPDXRef-Package-87282A7A87A76DE572F9692A8F47DBB1F03CF570E45C9FC0B0310E8D6478FE19", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "1.38.0-beta0.dev6", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Linq@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.IC3.IaC.ServiceTopologyDataConnector@1.38.0-beta0.dev6" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.Csp", - "SPDXID": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "name": "FluentValidation", + "SPDXID": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "8.6.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Csp@4.3.0" + "referenceLocator": "pkg:nuget/FluentValidation@8.6.2" } ], "supplier": "NOASSERTION" }, { - "name": "System.Security.Cryptography.Pkcs", - "SPDXID": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "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.5.2", + "versionInfo": "4.3.2", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Security.Cryptography.Pkcs@4.5.2" + "referenceLocator": "pkg:nuget/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Configuration", - "SPDXID": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", + "name": "Microsoft.M365.ConfigManagement.SAGE", + "SPDXID": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", + "versionInfo": "3.0.3", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@3.1.0" + "referenceLocator": "pkg:nuget/Microsoft.M365.ConfigManagement.SAGE@3.0.3" } ], "supplier": "NOASSERTION" }, { - "name": "System.Memory", - "SPDXID": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "name": "System.Security.Cryptography.Algorithms", + "SPDXID": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.5.4", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Memory@4.5.4" + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Algorithms@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Primitives", - "SPDXID": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "name": "System.IO.Compression.ZipFile", + "SPDXID": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@3.1.0" + "referenceLocator": "pkg:nuget/System.IO.Compression.ZipFile@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.NETCore.Platforms", - "SPDXID": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "name": "EV2.ArtifactsGenerator.Stubs", + "SPDXID": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "5.0.0", + "versionInfo": "6.13.3069.1548", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@5.0.0" + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Stubs@6.13.3069.1548" } ], "supplier": "NOASSERTION" }, { - "name": "System.IO.Compression.ZipFile", - "SPDXID": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "name": "Microsoft.Extensions.Logging", + "SPDXID": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "8.0.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.IO.Compression.ZipFile@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@8.0.1" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.Extensions.Configuration.Abstractions", - "SPDXID": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "name": "EV2.ArtifactsGenerator.Arm", + "SPDXID": "SPDXRef-Package-A55FFA0033D6824E362612DD7487681403BD255B228F8228120800797DDBF595", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "3.1.0", + "versionInfo": "6.13.3069.1548", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@3.1.0" + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Arm@6.13.3069.1548" } ], "supplier": "NOASSERTION" }, { - "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", - "SPDXID": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "name": "System.Buffers", + "SPDXID": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.2", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + "referenceLocator": "pkg:nuget/System.Buffers@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "System.Net.Http", - "SPDXID": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "name": "YamlDotNet", + "SPDXID": "SPDXRef-Package-E9A7D272BEB1E5E7E2F201094675F616632FBFBDCBC919F56E63E2050698EFEA", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.4", + "versionInfo": "16.2.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Net.Http@4.3.4" + "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" @@ -6663,7924 +6681,9872 @@ "supplier": "NOASSERTION" }, { - "name": "System.Console", - "SPDXID": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "name": "Microsoft.Extensions.Configuration", + "SPDXID": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "4.3.0", + "versionInfo": "8.0.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/System.Console@4.3.0" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@8.0.0" } ], "supplier": "NOASSERTION" }, { - "name": "Microsoft.NETCore.Targets", - "SPDXID": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "name": "System.Xml.XmlSerializer", + "SPDXID": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", "downloadLocation": "NOASSERTION", "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "1.1.0", + "versionInfo": "4.3.0", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@1.1.0" + "referenceLocator": "pkg:nuget/System.Xml.XmlSerializer@4.3.0" } ], "supplier": "NOASSERTION" }, { - "name": "infrastructure_itpro_teamspowershellmodule", - "SPDXID": "SPDXRef-RootPackage", + "name": "Microsoft.Extensions.DependencyInjection", + "SPDXID": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F", "downloadLocation": "NOASSERTION", - "packageVerificationCode": { - "packageVerificationCodeValue": "af2168dd8f05f2650dd32cc378e28ca5a3ca0e44" - }, - "filesAnalyzed": true, + "filesAnalyzed": false, "licenseConcluded": "NOASSERTION", - "licenseInfoFromFiles": [ - "NOASSERTION" - ], "licenseDeclared": "NOASSERTION", "copyrightText": "NOASSERTION", - "versionInfo": "71990329", + "versionInfo": "8.0.1", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", - "referenceLocator": "pkg:swid/Microsoft/sbom.microsoft/infrastructure_itpro_teamspowershellmodule@71990329?tag_id=d3307d23-9ad1-4574-83e7-eb631d270e31" + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection@8.0.1" } ], - "supplier": "Organization: Microsoft", - "hasFiles": [ - "SPDXRef-File--netcoreapp3.1-System.Management.dll-32CAA274A480B55EF54E8C71CEBF82D2F8F8C2AC", - "SPDXRef-File--net472-System.Security.AccessControl.dll-D9DB1D8FBE10E6DE07294D5954F484AE9DA0315D", - "SPDXRef-File--net472-System.Buffers.dll-5CF4B471A5980FB7770D6A82E5C0F30E7E2456EC", - "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-271C9443EDED5CBBBA86A04377EE77F9E3F85767", - "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-32A1DDF566A700FABAD1B9E66D8D4DA683EBFC9F", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-721DFD0136FC557667F311AF0C3314C91087E719", - "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-55F01F1DDF9AC8578E144EE6E2CDC14925E4C71C", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-24CF448F5742B38827431B9A3D65661348282759", - "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-81DD212D47A483F4DDE4D60D0A01BCC800991CB9", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-EEE88131492D6DB2C5FA2C40CA9A42FED497E9A3", - "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-3F8F5ED5857B1005C0EAF622FEDD113EE08010D7", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-7EC36A1AB2E27F56B98844F72E32C462E4B148B4", - "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-13DDF727B4565371A45E1594E5AAE579BACF59C1", - "SPDXRef-File--en-US-MicrosoftTeams-help.xml-A2D70569632A9B8E9A9F5E3FD444DD88763F5EBB", - "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-47D96933E93C2652D6C8AB08534202027197E377", - "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-78F15FFF5CB78F8F567BFD40138711C43FA64A94", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-4A7598BBEB35BDF42E6E77B80C4E090528D829C1", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-5C797B66244177B503F9E5E0390E05D3441DCBE7", - "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-0C1901A6AE798B1712E3B6C4FD03F4924F3101C4", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-08819A5ECA697B9A95B7F16A29166BB31DB21353", - "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-BA67B9B44D4637672620C7CB6E181EBC17BAA0F1", - "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-D809BEB7FBF7283D364076886776F542C9709BC8", - "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-D809BEB7FBF7283D364076886776F542C9709BC8", - "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-BE80EC1BC002A26A895FC21445E3ACFAEE7E9932", - "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-348694118D9F701CFF8164F603370E90B8565872", - "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-97D1AADDD462AB67A840415877258A30BB9A433A", - "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-CEF407294190CB5121749F4FD6B61E331F196CBE", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-0A6E054B451F31C94055F6ACB00BA5957441873C", - "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-03F9E1303394326C8D4DFD1EC3DB94E9416B9929", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-3A99E7C513F8A0FB74E6E339AEBFF60479F0B68A", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-7C5FE65036EE897A68CBD0EEE5ABB4050D145BCB", - "SPDXRef-File--en-US-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml-F9F281261AF11896A491F49E2CE5D3648BDD447E", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-6FF436015E0E27137485AEDCAA6055FDB30D79C7", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-341F55E993192C70697C60854D61A962A02DE6D3", - "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-C52AA0F79E08AAF2FB0E039B91884E1CE418C3C4", - "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-E4794F6BC83915D0C1AB580C81C27D5E4E46B478", - "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-062AB1D4091E653C555DE2A5348E57F195341D90", - "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-FBE247CC3A305F2C2062E94B356A1BAD46FFAF89", - "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-876DC8E05BC22ABBDF55CE4EF151264612E4CFB1", - "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-1A958E3054862F5193272D487A996FBA2AB4E18C", - "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-581124CB768D48E241E812BC4FC3DB872442B91B", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-496E85669194E299F443B1754BDB4A3CD04B8BCC", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-369A36A1A325C60CCD91A0DA565F768AC3F03511", - "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-5E6A616B36949F1E739404D89B8E97326D174C56", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-33B7D4EF77613AD4211C76D78D5F20CFC3975A13", - "SPDXRef-File--net472-System.Memory.dll-E0B59F8F264DBAF893C50CBF931657BC4D987201", - "SPDXRef-File--net472-OneCollectorChannel.dll-D9BE304A92ECDD767C8CEA2330117017BD591B73", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-C4D3976B3A74CB6601506653EDA6CB3360730BEC", - "SPDXRef-File--net472-Microsoft.Identity.Client.dll-BD76C3D18335C3176AC8E11224D84A1E6BEE55DD", - "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-90571CA6FEE8EBE2C79991B7A86A3CBE510DC7A5", - "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-DCC6A264BD574D13BF808CB52CA41522AC3BDE37", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-EB67218154369A8A4AAF66F771319CC115FB4167", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-88710698ED692D23D92F13209F5C2072F10D18FB", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-156E8ED45A57CDE8FFE3729808B824BD0D430A09", - "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-55F01F1DDF9AC8578E144EE6E2CDC14925E4C71C", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-3C7E2D0B99179AABB4E475D06FAA70629AA26174", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-5081CA43FCE72FB45333F367476B739296CC7BEC", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-D26C9351307A5F7EAB692C6B457594E4E8B0F53F", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-A3FD5A660724384B3197D6B4934F0D9485BB15BD", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-28722B42A746D983F4A97FFECD0567DA3C3C2DE2", - "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-A0DC2B8491A0B9C2CBFCE33D8D7D7D527AD7E58A", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-B37CBE3C9D3E332A9DDB5BAF8E6DC3B93D46A94B", - "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-5E6A616B36949F1E739404D89B8E97326D174C56", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-1951922D05FCE76F1130BDD61D899AE8E9F96A06", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-00C9D78AFE85CAE3AA797880F0CC133A4571874C", - "SPDXRef-File--bin-BrotliSharpLib.dll-4FEC8C997E71D52AC7D27FA5DC392A4A6FB2C764", - "SPDXRef-File--net472-Newtonsoft.Json.dll-D1F027FA448F3816F416F5A7C6C162D9CBBEBD26", - "SPDXRef-File--net472-System.Numerics.Vectors.dll-A00B0362AAFC0B9AAAB01EC0D80B3B0E1611E151", - "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-3ABDDA39D9ACB6470FB36DCC3425CC4606B2C55A", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-B37CBE3C9D3E332A9DDB5BAF8E6DC3B93D46A94B", - "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-3750CF3EAFA4D3997459ADA6309803337910A4C3", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml-7067DC6AA26501044FDDE047592CCCC376FD0E7C", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-32FFD2E31610145482AE308C43D72E5F2A6F4671", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-52A3C2102B756541404CB7B06B275755C57034A5", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-89CA360E305AFF3F2AE713B6DD5A53B2F5DDCD97", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-7ED13B9FF2D4019B10E93525C7A4AC59AAEF3906", - "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-30BDDE4497DBEE37D444756C6FE7D5A0E2E05F99", - "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-5C58D7202043A71375A39F836E63F809F33B5FFA", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-87E6716DA8DBD1A73A93CEF6BEA5993499F7875B", - "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-9690CDD7BA2C802F11A01C4315E2F329AE73E118", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-9F901C25263F440F9858E303C8238ED424833BF1", - "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-CAC7641EEDB2A34CBF107DAAEF91C3D56C97FF62", - "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-DF4F225A88F620FB536C246699CF5DABB07E139E", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-52CFB70F417E92107A93FBF26A76DCD6E84B6A84", - "SPDXRef-File--net472-System.Management.Automation.dll-BCF968E68E022321BA41082CB6E8B0D6AE759EEE", - "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-E2C49A0815301BA6ADB9D10C6DE9D071F9FD2AA7", - "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-926DC77DFF9AE8F96C2F404443D799FF6DEBAB1E", - "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-3E7AE643ED9D05ED31E81266C2F2B20DCC01CDC9", - "SPDXRef-File--en-US-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-0A3B265D20E863CBDCB264974391CA7D26766C0E", - "SPDXRef-File--SfbRpsModule.format.ps1xml-B606F1AC1C980350169996BB21FCC92F4E012F16", - "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-17AE72D05FBDF218582AED81028911E7AD77D47B", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-4243CCEDC31218198FBD0E69C6B5BB670910CAA8", - "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", - "SPDXRef-File--en-US-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml-FEFA595D1ECC65F8818C1A38F2BFEE3CF7E0575E", - "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-D37669DF752E750EF9D32BB0DF16A9BC08A3FBD4", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-80095484E5562CDF59754BC5916A78A8AF2A3FCD", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-4208DBE5000D7524F7A4191D1D202E5EC3654C67", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-24D7CF2936AE31D7C39999A1372929B4279F043A", - "SPDXRef-File--GetTeamSettings.format.ps1xml-E1D870E09A9BB929597D90D925FB50512AF1D9E4", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-F6C01AFDBA9C2FBD10B2A6C60DE5550F5AE07ACC", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-581124CB768D48E241E812BC4FC3DB872442B91B", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-AC1E023C15601824C8C940113FB6ADA52A5C1F25", - "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-7A66B639F23FF9D2F7144B6A7A76E761A59C6A36", - "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-D9BE304A92ECDD767C8CEA2330117017BD591B73", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-798F4F8D0134E1EEEAF8D47A60DB60E8F5FE5EE9", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-A50601E6FA548D8E82BEA01C22EEE48819829885", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-BD93C20C5A2A2F3325C33555CB6C5ADE1A68AD56", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-0F4BA3ACD2719F5DB1D62BEFAB343AD986E87056", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-4510CBF7B6BD6D4364B22DEB9349E49F82095ABC", - "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-B0FC0E358621742B4E4660A0A4D3F4143C492745", - "SPDXRef-File--custom-Merged-custom-PsExt.ps1-32AEC330FDAEE3EA730D889471828DE7675CC9EF", - "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-F38C1C4B5790E34EC6CB9874CDD291FE5D453E56", - "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-0F2127067C61F6988FD49CF8714B410249E5EC2B", - "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-2F8F2D8A722680DFE03F6BA2CF103F69BCA5C9B9", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-98FB01D72EBCC9822A8F2D2B371A67F5EB68FFD9", - "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-21F11DD98C6C41684FA460C917CFF7744EAC0F32", - "SPDXRef-File--MicrosoftTeams.psd1-5291F9C15F07DBA9A0F1B96C7D7BF2544434949E", - "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-796CAF23506427ABFD0CBB113FDCC1D690D70890", - "SPDXRef-File--MicrosoftTeams.psm1-1E14FCCFB5EDDC3395718B4F54776DCD20FC1A44", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-A29776AA3A5DFBB302E241303327569F56E5A6F9", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-2B19B7BD0EF74A536D8C630EA8F8DC1E6DD988EB", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-EC42D11F294CDC11DADD50149BBF7B79B28CFEB5", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-80FDFDD8EFC4D19437D87EAB379D51C6D723137B", - "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-15219595C978A728007BE25B13C123979848F119", - "SPDXRef-File--net472-System.Security.Principal.Windows.dll-FAAB91C369623B2C6C68C3126C64D7252CABC533", - "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-BE80EC1BC002A26A895FC21445E3ACFAEE7E9932", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-2A8C48CDAFB9A0DF983C17D3E6EBC77759A5519A", - "SPDXRef-File--netcoreapp3.1-Polly.dll-7297FE4EF31344B13C0AE2EB8DB5261F1675EED0", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-926DC77DFF9AE8F96C2F404443D799FF6DEBAB1E", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-062AB1D4091E653C555DE2A5348E57F195341D90", - "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-F38C1C4B5790E34EC6CB9874CDD291FE5D453E56", - "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-C727842E0271095F41D0C203EFB95A404459C7F8", - "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-A3C89FAC13F4C252C813E1A1DFA4BF1DDD4860DC", - "SPDXRef-File--internal-Merged-internal.ps1-BF8844C5C101436FFD34EEF9A1E061BAB22D8A35", - "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-45AA7AD01C1BEB6E784F68B3338964F54CFFDD61", - "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-FF17AA1E4E17FD55B12C239B8CC17CF29E1D3E60", - "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-A634DE5D0C7D5840957C990C3328549A7460451A", - "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-BA67B9B44D4637672620C7CB6E181EBC17BAA0F1", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-13DDF727B4565371A45E1594E5AAE579BACF59C1", - "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-7E71DB70C09037F6E913A8114DD863878FC61F81", - "SPDXRef-File--net472-System.ValueTuple.dll-92A0F64A8F03C876FEAC5AEAFF8002718BD48FD6", - "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-8229092FCAF38DF20AAB4186501F4EB92455E622", - "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-AA195DCD97528317DE222B833918C78505548FE9", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-D01A9DE1CC2032A4D2B5BDFF8B652F30E95D129C", - "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-2DFA482D04A677D6FF23A223C3A2D32735F91606", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-123E389CD273B537465E52B4364888E0E4614FC4", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-CA0EFD6D4A87B97607CF9AE875DE945D7DEAD9BD", - "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", - "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-10F54097256A8557F4CB7E21222F5C4E6C888959", - "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-A1AC61CCD0D6C87353463411FC1AA284C7E3A734", - "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-E83EC26B235167554ADD233285C99F08690D5793", - "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-67CFEB80C1CF072F86D133B67825D00989375501", - "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-CFFB1338F7C4E6300B1D54B0EB2DA953ECFB9C15", - "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-2C3DE414E0D866C6F9DA42D81CBB7CFF4EB4D3A0", - "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-17B9D24C36C6FECD28637658E99E51E81735F8F6", - "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-DF0AE83741149E35F93B94203DEE27C001C0EF2F", - "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-74E23CE5B1219B6741503B15840A6A7FE83A2519", - "SPDXRef-File--netcoreapp3.1-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", - "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-1549009D6CA10B3E91514F73C1B6E1B6DACF1F51", - "SPDXRef-File--net472-Polly.dll-C1DEEB017C0B5B7524B8B05A68C96B1BFCD853E9", - "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-C0EBB8FEAA34DD7A204301CD6E2DF3174EBD7324", - "SPDXRef-File--custom-CmdletConfig.json-18FF22FD5BABEFF456D99313BF3BF735A3CC59ED", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-F0B8DC9CC0C9B4492A18A4697637269F840F6FA3", - "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-FC5D31B0DD60499D3C08370336437ABE8A6883EA", - "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-81AAF23A17DB70848CC1D507F319E744ED6D1058", - "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-83BC439CE27E048A354FBA3FF72494588B2A4360", - "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-E838F6AC8692EACC953D94BCCA068A54D9AE9F2F", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-CDEDBFC5CF33DEA7B09A48963ACD132DA893B717", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-608E2C517FF2BA67A53CC052D52E09957031882D", - "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-EB1769C406CB801F482549E13362E0AF6016F106", - "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-E99F7324A88E8515D0C2286047C68B445050B553" - ] - } - ], - "externalDocumentRefs": [ - { - "externalDocumentId": "DocumentRef-infrastructure-itpro-teamspowershellmodule-71990329-a8b741faa7e4dd5a1a4b41c651a76f8e4871d581", - "spdxDocument": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:71990329/FMREecjthkqCSIfrAdTwqw", - "checksum": { - "algorithm": "SHA1", - "checksumValue": "a8b741faa7e4dd5a1a4b41c651a76f8e4871d581" - } - } - ], - "relationships": [ - { - "relationshipType": "DESCRIBED_BY", - "relatedSpdxElement": "SPDXRef-DOCUMENT", - "spdxElementId": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-A8B741FAA7E4DD5A1A4B41C651A76F8E4871D581" + "supplier": "NOASSERTION" }, { - "relationshipType": "PREREQUISITE_FOR", - "relatedSpdxElement": "DocumentRef-infrastructure-itpro-teamspowershellmodule-71990329-a8b741faa7e4dd5a1a4b41c651a76f8e4871d581:SPDXRef-RootPackage", - "spdxElementId": "SPDXRef-RootPackage" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "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" }, { - "relationshipType": "DESCRIBES", - "relatedSpdxElement": "SPDXRef-RootPackage", - "spdxElementId": "SPDXRef-DOCUMENT" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "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" }, { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "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-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "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-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "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-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", - "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D558AFB2CAD0E7DBCD0E628F69A6F76A18AEF3F674D04B5206B53D08F9C8FCFB", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "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-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + "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-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", - "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", - "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", - "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "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-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "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-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", - "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "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-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", "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-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", - "spdxElementId": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "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-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "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-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", - "spdxElementId": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "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-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "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-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", "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" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", - "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-51859863AD2341A201A718E83102C31AD33750C7FDCCCABDA897001A4B4ADAC1", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-D595C7CA243D238A94C6D0F9277EB98AE42EDA370259D4615A58E5BE78BAD562", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-4E51A8116E7C39A9C87837BD3B1C17B8322CEA23323DD29B2E41173CD8E4D5B7", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-19657174A611A55D249468976305B5C48B4BCB2F4799785E382B139741337943", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-D558AFB2CAD0E7DBCD0E628F69A6F76A18AEF3F674D04B5206B53D08F9C8FCFB", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", - "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", - "spdxElementId": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED" + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "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-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-65F3BB807AF49E7AD397E2DCDE7E8152B0F742044FF2ABFB7B8136F4D77F3E3D", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "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-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "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-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", - "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", - "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "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-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "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-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "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-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", - "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", - "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", - "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", - "spdxElementId": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "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-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", + "relatedSpdxElement": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", - "spdxElementId": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "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-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", "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" + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "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" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", - "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", "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" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "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-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", - "spdxElementId": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17" + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", "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" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "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-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", - "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", - "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", + "spdxElementId": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "spdxElementId": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "spdxElementId": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", "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" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "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-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "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-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", - "spdxElementId": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", - "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "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-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", "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" + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", "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" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", - "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", - "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", - "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", - "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", "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-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", - "spdxElementId": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2" + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "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-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", "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" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", "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" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", - "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "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-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", - "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-A55FFA0033D6824E362612DD7487681403BD255B228F8228120800797DDBF595", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + "relatedSpdxElement": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + "relatedSpdxElement": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + "relatedSpdxElement": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "spdxElementId": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "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-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", - "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "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" + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", - "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4DE8E3079CEA8F5FE28C211EEE5F280BAD5C23CF79463BDAC0D8E987AF82CD6E", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", - "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", - "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "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-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", - "spdxElementId": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892" + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "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-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", "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-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "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-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", - "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", - "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "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-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", - "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", - "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", - "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "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-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", "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-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", "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-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "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-4F4FF95A25D2C54B1508561EFB5ABD2CD5EBF637ADA4580C0A64DA57084985E6", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", - "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + "relatedSpdxElement": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-73F10AFE7A15AD6A85D18E5BEF5166AF2CCCC9AAF7E7C46F8AC2C216AE865D01", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + "relatedSpdxElement": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + "relatedSpdxElement": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", - "spdxElementId": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "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-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "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-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "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-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", - "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "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-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", - "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", - "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", - "spdxElementId": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", - "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "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-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", - "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + "relatedSpdxElement": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-87DBC129E46E77857F5ECA3AB3A5EB8B516E2E67F885F6BB6243D1CA004FB440", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + "relatedSpdxElement": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", - "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", - "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "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-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", - "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", - "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", - "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", - "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", - "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "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-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", - "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", - "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", - "spdxElementId": "SPDXRef-RootPackage" + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-274088E7BDFC13167248BD9A4784E26EA10B6637C067A0252A40FAC9CFFCCD46", - "spdxElementId": "SPDXRef-RootPackage" + "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", @@ -14615,7 +16581,7 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", @@ -14625,7 +16591,7 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -14684,98 +16650,33 @@ }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "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-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" - }, - { - "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" }, { "relationshipType": "DEPENDS_ON", - "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", - "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + "relatedSpdxElement": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430", + "spdxElementId": "SPDXRef-RootPackage" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -14820,12 +16721,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -14895,12 +16796,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -14950,12 +16851,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -14977,6 +16878,46 @@ "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", @@ -15010,12 +16951,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15100,12 +17041,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15162,6 +17103,46 @@ "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", @@ -15195,12 +17176,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15310,12 +17291,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15395,12 +17376,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15490,12 +17471,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15560,12 +17541,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15605,12 +17586,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15670,12 +17651,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15740,12 +17721,12 @@ { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", - "spdxElementId": "SPDXRef-Package-76C2A97CD86765B08920BA1C476E2BF3A240D34CE63255FFB7750E077B982628" + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" }, { "relationshipType": "DEPENDS_ON", "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", - "spdxElementId": "SPDXRef-Package-E74C777F99FC285F000DF92E2CF61BE0754A371180F17C168F8789FFCC411D08" + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" }, { "relationshipType": "DEPENDS_ON", @@ -15766,13 +17747,13 @@ "spdxVersion": "SPDX-2.2", "dataLicense": "CC0-1.0", "SPDXID": "SPDXRef-DOCUMENT", - "name": "infrastructure_itpro_teamspowershellmodule 71990329", - "documentNamespace": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:71990329/I1hAw8nwPEm6FWRg3WT0Bg", + "name": "infrastructure_itpro_teamspowershellmodule 72855948", + "documentNamespace": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:72855948/sCCNxYUcl0KQ-_AZ9OaqhA", "creationInfo": { - "created": "2025-08-21T07:08:27Z", + "created": "2025-10-01T08:53:50Z", "creators": [ "Organization: Microsoft", - "Tool: Microsoft.SBOMTool-4.1.1" + "Tool: Microsoft.SBOMTool-4.1.2" ] }, "documentDescribes": [ diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 new file mode 100644 index 000000000000..4a6965367575 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 @@ -0,0 +1 @@ +663b4d504debf6479010de4d619fb15b9d84d87f6b36704b3c6a0bf61f9b848d \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.3.1/bin/BrotliSharpLib.dll b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/bin/BrotliSharpLib.dll rename to Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll index 7c991de7bfe4..9c516c3749ae 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/bin/BrotliSharpLib.dll and b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll similarity index 91% rename from Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.JsonWebTokens.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll index f3df7b5c0d28..00838f3421bd 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.JsonWebTokens.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll similarity index 79% rename from Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.Logging.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll index f1757b9d7f28..00f9303f6572 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.Logging.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.Tokens.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll index bcefd1545401..47da8dcd8f31 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.IdentityModel.Tokens.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll similarity index 84% rename from Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll index 5c31d0b5e21b..046a68764c04 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json diff --git a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll similarity index 56% rename from Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll index b569757744d3..4497151fb53e 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/bin/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll similarity index 95% rename from Modules/MicrosoftTeams/7.3.1/bin/System.IdentityModel.Tokens.Jwt.dll rename to Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll index 0c9257a8b00e..55d1996f9666 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/bin/System.IdentityModel.Tokens.Jwt.dll and b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/custom/CmdletConfig.json b/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/custom/CmdletConfig.json rename to Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json index e00352e1c9d1..057d44fd8896 100644 --- a/Modules/MicrosoftTeams/7.3.1/custom/CmdletConfig.json +++ b/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json @@ -695,6 +695,8 @@ "Get-CsPhoneNumberPolicyAssignment": { "CmdletType": "AutoRest", "ExportsTo": [ + "TeamsGA", + "TeamsPreview", "SelfHost", "Torus" ] @@ -702,6 +704,8 @@ "Set-CsPhoneNumberPolicyAssignment": { "CmdletType": "AutoRest", "ExportsTo": [ + "TeamsGA", + "TeamsPreview", "SelfHost", "Torus" ] @@ -897,6 +901,15 @@ "Torus" ] }, + "Get-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "Get-CsSharedCallQueueHistoryTemplate": { "CmdletType": "AutoRest", "ExportsTo": [ @@ -2422,6 +2435,24 @@ "Torus" ] }, + "New-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "New-CsCallingLineIdentity": { "CmdletType": "Remoting", "ModernCmdlet": "New-CsConfigurationModern", @@ -2472,6 +2503,33 @@ "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": [ @@ -2481,6 +2539,33 @@ "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", @@ -3038,6 +3123,15 @@ "Torus" ] }, + "Remove-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "Remove-CsSharedCallQueueHistoryTemplate": { "CmdletType": "AutoRest", "ExportsTo": [ @@ -3615,6 +3709,15 @@ "Torus" ] }, + "Set-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, "Set-CsSharedCallQueueHistoryTemplate": { "CmdletType": "AutoRest", "ExportsTo": [ diff --git a/Modules/MicrosoftTeams/7.3.1/custom/Merged_custom_PsExt.ps1 b/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 similarity index 91% rename from Modules/MicrosoftTeams/7.3.1/custom/Merged_custom_PsExt.ps1 rename to Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 index 446043f75c5a..dcc801138e2a 100644 --- a/Modules/MicrosoftTeams/7.3.1/custom/Merged_custom_PsExt.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 @@ -6159,17 +6159,38 @@ function Get-CsComplianceRecordingForCallQueueTemplate { # Objective of this custom file: transforming the results to the custom objects -function Get-CsMainlineAttendantFlow { +function Get-CsMainlineAttendantAppointmentBookingFlow { [CmdletBinding()] param( [Parameter(Mandatory=$false)] [System.String] # The identity of the mainline attendant flow which is retrieved. - ${FlowId}, + ${Identity}, [Parameter(Mandatory=$false)] - [Switch] - ${Force}, + [int] + # The First parameter gets the first N mainline attendant flows. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N mainline attendant flows. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [System.String] + # The SortBy parameter specifies the property used to sort. + ${SortBy}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns mainline attendant flows where name contains specified string + ${NameFilter}, [Parameter(DontShow)] [ValidateNotNull()] @@ -6190,13 +6211,118 @@ function Get-CsMainlineAttendantFlow { if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - - if ($PSBoundParameters.ContainsKey("Force")) { - $PSBoundParameters.Remove("Force") | Out-Null + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantFlow @PSBoundParameters @httpPipelineArgs + 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) { @@ -6205,17 +6331,124 @@ function Get-CsMainlineAttendantFlow { Write-AdminServiceDiagnostic($result.Diagnostic) - if (${FlowId} -ne '') { - $mailineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantFlow]::new() - $mailineAttendantFlow.ParseFromGetResponse($result) - } - else { + 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.$mainlineAttendantFlows) { - $mailineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantFlow]::new() - $mainlineAttendantFlows += $mailineAttendantFlow.ParseFromDtoModel($model) + 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) } - $mainlineAttendantFlows + $questionAnswerFlows } } catch { @@ -6745,33 +6978,27 @@ function Get-CsSharedCallQueueHistoryTemplate { # 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}, +# Objective of this custom file: transforming the results to the custom objects - [Parameter(Mandatory=$false, position=2)] - [Switch] - # The Force parameter indicates if we force the action to be performed. (Deprecated) - ${Force}, +function Get-CsTagsTemplate { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the shared tags template which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, - [Parameter(DontShow)] + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] ${HttpPipelinePrepend} ) - begin { + begin { $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) } @@ -6780,11 +7007,101 @@ function Import-CsAutoAttendantHolidays { $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - $null = $PSBoundParameters.Remove("Force") - - $base64input = [System.Convert]::ToBase64String($InputBytes) - $PSBoundParameters.Add("SerializedHolidayRecord", $base64input) - $null = $PSBoundParameters.Remove("InputBytes") + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + 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")) { @@ -7022,6 +7339,11 @@ function New-CsAutoAttendant { # 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[]] @@ -7064,6 +7386,7 @@ function New-CsAutoAttendant { $null = $PSBoundCommonParameters.Remove("AuthorizedUsers") $null = $PSBoundCommonParameters.Remove("HideAuthorizedUsers") $null = $PSBoundCommonParameters.Remove("EnableMainlineAttendant") + $null = $PSBoundCommonParameters.Remove("MainlineAttendantAgentVoiceId") if ($DefaultCallFlow -ne $null) { $null = $PSBoundParameters.Remove('DefaultCallFlow') @@ -7157,6 +7480,7 @@ function New-CsAutoAttendant { } 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 = @() @@ -7169,24 +7493,28 @@ function New-CsAutoAttendant { $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'." - $PSBoundParameters.Remove('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 ( -not [System.Enum]::IsDefined($mainlineAttendantVoiceIds, $PSBoundParameters["VoiceId"])) { - throw "The provided VoiceId '$($PSBoundParameters["VoiceId"])' is not supported for Mainline Attendant. Supported values are: $([string]::Join(', ', [System.Enum]::GetNames($mainlineAttendantVoiceIds)))." + 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)))." } - $voiceId = $mainlineAttendantVoiceIds::$($PSBoundParameters["VoiceId"]) - $PSBoundParameters.Remove('VoiceId') - $PSBoundParameters.Add("VoiceId", $voiceId) + $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." - $PSBoundParameters.Remove('EnableVoiceResponse') + Write-Warning "`$EnableVoiceResponse` is not set. Defaulting to 'true' for mainline attendant." + $null = $PSBoundParameters.Remove('EnableVoiceResponse') $PSBoundParameters.Add('EnableVoiceResponse', $true) } } @@ -7807,6 +8135,21 @@ function New-CsAutoAttendantMenuOption { # 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[]] @@ -7860,9 +8203,19 @@ function New-CsAutoAttendantMenuOption { } } - if ($Action -eq [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType]::MainlineAttendantFlow -and [string]::IsNullOrEmpty($MainlineAttendantTarget)) + 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 `$MainlineAttendantTarget` cannot be null when the `$Action` is '$Action'" + 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 @@ -8660,8 +9013,8 @@ function New-CsComplianceRecordingForCallQueueTemplate { [Parameter(Mandatory=$true, position=2)] [System.String] - # The BotId parameter represents the ID of the CR bot - ${BotId}, + # The BotApplicationInstanceObjectId parameter represents the ID of the CR bot + ${BotApplicationInstanceObjectId}, [Parameter(Mandatory=$false, position=3)] [Switch] @@ -8681,7 +9034,7 @@ function New-CsComplianceRecordingForCallQueueTemplate { [Parameter(Mandatory=$false, position=6)] [System.String] # The PairedApplication parameter specifies the paired application for the call queue. - ${PairedApplication}, + ${PairedApplicationInstanceObjectId}, [Parameter(DontShow)] [ValidateNotNull()] @@ -8714,8 +9067,8 @@ function New-CsComplianceRecordingForCallQueueTemplate { } if ($PairedApplication -ne $null){ - $null = $PSBoundParameters.Remove("PairedApplication") - $PSBoundParameters.Add('PairedApplication', $PairedApplication) + $null = $PSBoundParameters.Remove("PairedApplicationInstanceObjectId") + $PSBoundParameters.Add('PairedApplicationInstanceObjectId', $PairedApplication) } if ($ConcurrentInvitationCount -eq 0){ @@ -8814,17 +9167,29 @@ function New-CsMainlineAttendantAppointmentBookingFlow { if (!$PSBoundParameters.ContainsKey("ErrorAction")) { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - - # 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 + 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) + # 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 @@ -8875,7 +9240,7 @@ function New-CsMainlineAttendantQuestionAnswerFlow { # The Description of the flow. ${Description}, - [Parameter(Mandatory=$true, position=2)] + [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}, @@ -8905,20 +9270,33 @@ function New-CsMainlineAttendantQuestionAnswerFlow { $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) } - # 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.GetLocalDocumentContent($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) + 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 @@ -9518,6 +9896,172 @@ function New-CsSharedCallQueueHistoryTemplate { # 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 { @@ -9734,6 +10278,150 @@ function Remove-CsComplianceRecordingForCallQueueTemplate { # 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 { @@ -9970,12 +10658,84 @@ function Remove-CsOnlineSchedule { # Objective of this custom file: print out the diagnostic -function Remove-CsSharedCallQueueHistoryTemplate { +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 shared call queue history template to be removed. + # The identifier of the tags template to be removed. ${Id}, [Parameter(Mandatory=$false, position=1)] @@ -10006,7 +10766,7 @@ function Remove-CsSharedCallQueueHistoryTemplate { $PSBoundParameters.Remove("Force") | Out-Null } - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsTagsTemplate @PSBoundParameters @httpPipelineArgs # Stop execution if internal cmdlet is failing if ($result -eq $null) { @@ -10229,37 +10989,47 @@ function Set-CsAutoAttendant { } 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 $Name. How can I assist you today? Please note that this call may be recorded for compliance purposes." + 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 '$LanguageId' is not supported for mainline attendant. Defaulting to 'en-US'." - $PSBoundParameters.Remove('LanguageId') + 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 (-not [System.Enum]::IsDefined($mainlineAttendantVoiceIds, $PSBoundParameters["VoiceId"])) { - throw "The provided VoiceId '$($PSBoundParameters["VoiceId"])' is not supported for Mainline Attendant. Supported values are: $([string]::Join(', ', [System.Enum]::GetNames($mainlineAttendantVoiceIds)))." + 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 } - $voiceId = $mainlineAttendantVoiceIds::$($PSBoundParameters["VoiceId"]) - $PSBoundParameters.Remove('VoiceId') - $PSBoundParameters.Add("VoiceId", $voiceId) + $mainlineAttendantVoiceId = $mainlineAttendantVoiceIds::$($Instance.MainlineAttendantAgentVoiceId) + $null = $PSBoundParameters.Remove('MainlineAttendantAgentVoiceId') + $PSBoundParameters.Add("MainlineAttendantAgentVoiceId", $mainlineAttendantVoiceId) - if ($Instance.EnableVoiceResponse -ne $true) { - Write-Warning "`$EnableVoiceResponse` is not set. Defaulting to true for mainline attendant." - $PSBoundParameters.Remove('EnableVoiceResponse') - $PSBoundParameters.Add('EnableVoiceResponse', $true) + # 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 @@ -11460,11 +12230,11 @@ function Set-CsComplianceRecordingForCallQueueTemplate { Name = ${Instance}.Name Identity = ${Instance}.Id Description = ${Instance}.Description - BotId = ${Instance}.BotId + BotApplicationInstanceObjectId = ${Instance}.BotApplicationInstanceObjectId RequiredDuringCall = ${Instance}.RequiredDuringCall RequiredBeforeCall = ${Instance}.RequiredBeforeCall ConcurrentInvitationCount = ${Instance}.ConcurrentInvitationCount - PairedApplication = ${Instance}.PairedApplication + PairedApplicationInstanceObjectId = ${Instance}.PairedApplicationInstanceObjectId } # Get common parameters @@ -11477,7 +12247,7 @@ function Set-CsComplianceRecordingForCallQueueTemplate { $null = $params.Remove("Instance") if ($ConcurrentInvitationCount -eq 0){ - $null = $paramss.Remove("ConcurrentInvitationCount") + $null = $params.Remove("ConcurrentInvitationCount") $params.Add('ConcurrentInvitationCount', 1) } elseif ($ConcurrentInvitationCount -ne $null){ # Validate the value of ConcurrentInvitationCount @@ -11523,6 +12293,214 @@ function Set-CsComplianceRecordingForCallQueueTemplate { # 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 { @@ -12001,6 +12979,92 @@ function Set-CsSharedCallQueueHistoryTemplate { # 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 { @@ -12231,8 +13295,8 @@ function EncodeSipUri { # SIG # Begin signature block # MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBRtUelRXPyYoe9 -# N6SJzKlBikbUWMP5COsFCJvlvUSL5aCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIzgYBO9cwSOta +# qQrIdA0xrme0aWPoNiYVqVkWCcHICqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji # EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p @@ -12309,62 +13373,62 @@ function EncodeSipUri { # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p # Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA # BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIIQJ -# C5N3nlfaJ96vwSp/B9UL+AYj7HqjEA5IxAPBIp3oMEIGCisGAQQBgjcCAQwxNDAy +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKmd +# xEWoMIxGMuEh4n+NAdj3ygcr0yIeOfH7II1XDdz3MEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAvsveGeZfrv5/oMg6d4R/mjccoBx4Udpm/rJs -# Q/Zwt6Z4MHIJC6+RPymGUSNhgdgmVrbdJCAgtW3ee9qd6AAsrAF5gcB5534s3uES -# 5+tMicckfuVn3+EFZYYjnfiWjh9P4pzKF1ZvN8fdxIZYLUoX1oGsaf0NF54ZEpb5 -# srR5U8D72NZSvLY1VMaqn36hfLY5Bqf0QkVrDrnCyTvC1WAmb3LP3UdktWjBEsxF -# ovbZ1shcxCviuQqKvdkUn1Pp6TPY2cehZSGqrL8VgLpIlIcoHxLj/brBTq2cBIom -# ddoiZuC8DaU4ccTjG8Q2wud6uRhfQ5yAvcPBRAb2iIou7U0ojqGCF7AwghesBgor +# b20wDQYJKoZIhvcNAQEBBQAEggEAOkj3Fv6/lJRxFrebhPdNguYFyVKcPKznWejf +# 7D5v4ep1gHvLixSXiPzUAuMfW8zLN6H1V5jIRU8Uel4h7A51hMFSKRYg5MguQCk6 +# MXjo7EK8UunG6Ya+n1o0CJZzM8rJqtv1Jz7s1EK1+icFHeR6lteCpgbRrQhxx46E +# AFOCIFXgFeDFlfSVJup90mYf3mAJx4a0A0Sl8930RIGAOGoMaAYndY+2zpyUGni+ +# uJvj3D+uHZkHDrYHV/4uLXBsqY0q3tRqfOkg1xPnwxEjkUva4RUUmPr6HEf7Z+i6 +# gmn9b+cGLEMqYdzcU1c+ZF2nq317Z2hUSM1fY6/cxzJRF7UfuqGCF7AwghesBgor # BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBDTMsMg13fZtTvrAHIbnq0d+2Wt+eeH21j -# dEj0pWOrgwIGaKShIdcYGBMyMDI1MDgyMTA2NTExMi4zNDFaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCC/NqTy9keF2NwFAu5InBPDQccwjm84junW +# ayO+WaiieQIGaKSChGLFGBMyMDI1MTAwMTA4MzMxMS42NzRaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB/Big -# r8xpWoc6AAEAAAH8MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvX +# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNFoXDTI1MTAyMjE4MzExNFowgdMxCzAJ +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjZGMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# p1DAKLxpbQcPVYPHlJHyW7W5lBZjJWWDjMfl5WyhuAylP/LDm2hb4ymUmSymV0EF -# RQcmM8BypwjhWP8F7x4iO88d+9GZ9MQmNh3jSDohhXXgf8rONEAyfCPVmJzM7yts -# urZ9xocbuEL7+P7EkIwoOuMFlTF2G/zuqx1E+wANslpPqPpb8PC56BQxgJCI1LOF -# 5lk3AePJ78OL3aw/NdlkvdVl3VgBSPX4Nawt3UgUofuPn/cp9vwKKBwuIWQEFZ83 -# 7GXXITshd2Mfs6oYfxXEtmj2SBGEhxVs7xERuWGb0cK6afy7naKkbZI2v1UqsxuZ -# t94rn/ey2ynvunlx0R6/b6nNkC1rOTAfWlpsAj/QlzyM6uYTSxYZC2YWzLbbRl0l -# RtSz+4TdpUU/oAZSB+Y+s12Rqmgzi7RVxNcI2lm//sCEm6A63nCJCgYtM+LLe9pT -# shl/Wf8OOuPQRiA+stTsg89BOG9tblaz2kfeOkYf5hdH8phAbuOuDQfr6s5Ya6W+ -# vZz6E0Zsenzi0OtMf5RCa2hADYVgUxD+grC8EptfWeVAWgYCaQFheNN/ZGNQMkk7 -# 8V63yoPBffJEAu+B5xlTPYoijUdo9NXovJmoGXj6R8Tgso+QPaAGHKxCbHa1QL9A -# SMF3Os1jrogCHGiykfp1dKGnmA5wJT6Nx7BedlSDsAkCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSY8aUrsUazhxByH79dhiQCL/7QdjAfBgNVHSMEGDAWgBSfpxVdAF5i +# 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 -# AAOCAgEAT7ss/ZAZ0bTaFsrsiJYd//LQ6ImKb9JZSKiRw9xs8hwk5Y/7zign9gGt -# weRChC2lJ8GVRHgrFkBxACjuuPprSz/UYX7n522JKcudnWuIeE1p30BZrqPTOnsc -# D98DZi6WNTAymnaS7it5qAgNInreAJbTU2cAosJoeXAHr50YgSGlmJM+cN6mYLAL -# 6TTFMtFYJrpK9TM5Ryh5eZmm6UTJnGg0jt1pF/2u8PSdz3dDy7DF7KDJad2qHxZO -# RvM3k9V8Yn3JI5YLPuLso2J5s3fpXyCVgR/hq86g5zjd9bRRyyiC8iLIm/N95q6H -# WVsCeySetrqfsDyYWStwL96hy7DIyLL5ih8YFMd0AdmvTRoylmADuKwE2TQCTvPn -# jnLk7ypJW29t17Yya4V+Jlz54sBnPU7kIeYZsvUT+YKgykP1QB+p+uUdRH6e79Va -# iz+iewWrIJZ4tXkDMmL21nh0j+58E1ecAYDvT6B4yFIeonxA/6Gl9Xs7JLciPCIC -# 6hGdliiEBpyYeUF0ohZFn7NKQu80IZ0jd511WA2bq6x9aUq/zFyf8Egw+dunUj1K -# tNoWpq7VuJqapckYsmvmmYHZXCjK1Eus7V1I+aXjrBYuqyM9QpeFZU4U01YG15uW -# wUCaj0uZlah/RGSYMd84y9DCqOpfeKE6PLMk7hLnhvcOQrnxP6kwggdxMIIFWaAD +# 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 @@ -12408,41 +13472,41 @@ function EncodeSipUri { # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUATkEpJXOaqI2w -# fqBsw4NLVwqYqqqggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip +# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOxRGbkwIhgPMjAyNTA4MjEwNDA2MTdaGA8yMDI1 -# MDgyMjA0MDYxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7FEZuQIBADAKAgEA -# AgIHvAIB/zAHAgEAAgITHzAKAgUA7FJrOQIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# MDANBgkqhkiG9w0BAQsFAAIFAOyHBJ4wIhgPMjAyNTEwMDEwMTM4MzhaGA8yMDI1 +# MTAwMjAxMzgzOFowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcEngIBADAKAgEA +# AgIGlwIB/zAHAgEAAgIScjAKAgUA7IhWHgIBADA2BgorBgEEAYRZCgQCMSgwJjAM # BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQA5pIHrTnFZg2+WHVBtKEVNseFSfLKkg6N6RwwZsSxsypjRGiEDy/I/ -# 5u2xPgsInMvBf3jcp2ldBBW83q1Y2q3Da5V4Rdi0/F0TLLqIasKwqX3nzrGQCKX8 -# DJL2ib72fwON4QLa9fQO8Ay5yLTIGeKIRoEeykxVpvJYvrq544/sx74VNEuazJym -# 7cHowlWihmgfhkgj3ntyMHqlZAHWnU3oMK4Zjx0VM/2f/Q2BlNBexN6wGghcH1Nt -# Y+yVfyW9g0yiHrmfjQHDfekcijE2zD20ozv04x0tCUe+DD7bW43VFjir09m2SmjN -# 0rRGzFdzQhcvl+4m6eDGzk095C3ykHN5MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# CwUAA4IBAQAdaXY8v9U/NzKV16+VoFilpCMuEVCWleGhL3ffLhOEHkg2VAop6cmg +# fPYJ646YmB7Iy3irtfHqdSfqUWZposIvzZ1NJoBPbnfN24VZV1Z6Xcf+qkS3Jksg +# yAFJ6GmZ7rpAnsSlJtFg5zmB+isPjhxaMff15FBCenjxxy2mW11CU8XecTgoT1PP +# WK5Mi5A6XOW3A8Gt4/HFr/cdobC9TSyM/FRWoUlzJN+ApghTP8PUwVLw1LI5agH0 +# /0jkpDNJg49gtTYaWf+FZFFKpebRA1yoDYogeKEiQ3G3f7SyMM3WxlwA7vn/jQg3 +# MzyhDF8/UjPjoTJ2p8dYcMQQHsYXDbbaMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH8GKCvzGlahzoAAQAAAfwwDQYJYIZI +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZI # AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgCA4EOCa/or22G0/SNf8GmmSeQqDcGUIvJPIjUxy+EnQwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCCVQq+Qu+/h/BOVP4wweUwbHuCUhh+T7hq3 -# d5MCaNEtYjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# 9w0BCQQxIgQgnBOmXy5RwewKsCbYCAAA7JHmJhq6Tx+ZQAOmNbi45nEwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudI +# k/9KAk/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n # dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y # YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB/Bigr8xpWoc6AAEAAAH8MCIEIJEFexbqvQGazGhcotW3Mmi65+htFvnlkX2N -# qcISIh6hMA0GCSqGSIb3DQEBCwUABIICAD47VBzsamgIVM5p8nhEj6j799p7mqOY -# Eeu1u3JEqvEbN2NfSs03q+tTvgtGv4odhF9bPLkH1svDAqjMJkNLUq8pVpL39T6x -# OIYOFUQnvJq7tuPyntrNQjYfJFUopAW8q/5URqYvCfLkrZgCPrah82ecbfmpPNRn -# GCN6ZPgVmumSHM5kJnP3KxaTEnckQdAiUjKWWiGZCaA20P6wK5Tt0UIXVd8vv2c6 -# 8rG0gQwve6Om3SVOyblsq+vAfbvW8eDVIouhsvNk6svpAp9FzdNxoAr6lZ4xS/hk -# CZ013KQVIR6+jHvH6RdhDqaBknfUMkP52RAYRFgToEGR1RhYxsHVo7Ha2cj9Rya7 -# O7h3+HNDedJah//Rl+EjOh8Xr2ITDnNy9eoiD5Ua2bcDAe1egH+ofstpV7oM0MLz -# Le1UBbVM8x7hnlhVAc4Nj9Y1pddIZ98LNZEXCF6ZR9ndUjIMwXAeMKYsPID7c5Hv -# h7EsJce//MykLnZkjyQruh5vKACqzlduEOWaimisAIKzw40vdICCJvobwx/ZRLIn -# HOotlKEGr/qou0bF4+NrMi6A/uabMPWxBlNaEI+3UjwlX/ZF27++dnUUBaqPzZ+q -# rV1cur1aEXC7EP3XcYgys0d9iH+fAC7NaETaGOE9BfVd1Re54/53C2ToDM96jqF0 -# DsmRcotvSamW +# 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/Az.Accounts/4.0.2/StartupScripts/InitializeAssemblyResolver.ps1 b/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 similarity index 62% rename from Modules/Az.Accounts/4.0.2/StartupScripts/InitializeAssemblyResolver.ps1 rename to Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 index 96b2731d9d1f..8d65d2ee6a4e 100644 --- a/Modules/Az.Accounts/4.0.2/StartupScripts/InitializeAssemblyResolver.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 @@ -1,65 +1,58 @@ -$assemblyRootPath = [System.IO.Path]::Combine($PSScriptRoot, "..", "lib") -Write-Debug "Initializing ConditionalAssemblyContext. PSEdition is [$($PSVersionTable.PSEdition)]. PSVersion is [$($PSVersionTable.PSVersion)]." -$conditionalAssemblyContext = [Microsoft.Azure.PowerShell.AssemblyLoading.ConditionalAssemblyContext]::new($PSVersionTable.PSEdition, $PSVersionTable.PSVersion) -Write-Debug "Initializing ConditionalAssemblyProvider. AssemblyRootPath is [$assemblyRootPath]." -[Microsoft.Azure.PowerShell.AssemblyLoading.ConditionalAssemblyProvider]::Initialize($assemblyRootPath, $conditionalAssemblyContext) +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') -if ($PSEdition -eq 'Desktop') { - try { - [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '..\internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1' + if(Test-Path $internalModulePath) { + $null = Import-Module -Name $internalModulePath } - catch { - Write-Warning $_ - } -} -else { - try { - Add-Type -Path ([System.IO.Path]::Combine($PSScriptRoot, "..", "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll")) | Out-Null - Write-Debug "Registering Az shared AssemblyLoadContext." - [Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.AzAssemblyLoadContextInitializer]::RegisterAzSharedAssemblyLoadContext() - Write-Debug "AssemblyLoadContext registered." - } - catch { - Write-Warning $_ - } -} + + # 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 -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCAe8RL2QVOwrz6 -# penupFKMe0U4FkbIX5RGfbRRPsEAcqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBOycrzQVq6CnNY +# rK5l5Eg2CcKYocwkesaom45CeipKo6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV -# LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY -# oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi -# kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ -# /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv -# ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r -# EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV -# NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC -# rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos -# oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB -# +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO -# raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ -# sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W -# +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s -# IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu -# iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm @@ -99,29 +92,29 @@ else { # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMHo -# fDlPBqmVqK1okjwWVgBBtT7fuKbvz/K2Z2tehrjfMEIGCisGAQQBgjcCAQwxNDAy +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJjw +# tTQPVUIPxEfl/cH44G64tSZU5xH8iTxSrE/PWkOGMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAmDyoVO02vslwhP88Cl/i4nCB6rCDOLX4Go8H -# xCopEhiPZ4qL1ST7vM27l2eq5wKiYSg0f95p7rTH1LPUWIwdgKwtRmPREQqHbbI3 -# 2XcFtOI/cMw8Nu9x0l/aiSm3ZSWEBzEQtmwRmzZz2UxSGH4lWK22vBcphbCGN6Da -# sIw1zZqZDr4paUt4VRWUDl5gExgtM5hkbpKP6A39d6Z7GbS+ROfZ5+j6bUs/HlHP -# uz2OZ+bvp80bhFNjjmGN7sKwhtwFsjpUid2x3t6Oa6Jw40xjy/vHxo7PgT4uMLWQ -# kNEuTphyMg8pw3JToDDUgJdExUPwbaSRms7Y6gVLSHdOjMSZgqGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# b20wDQYJKoZIhvcNAQEBBQAEggEAHARwEACGgeo1ixh3JYE5UqAJpnNZy7L99o1/ +# jMDzCitGGDwl8FXAXO0zGJJl4vrJjtnqU0eDmqxPHiG7PoBco+cky3oPK4HTgxxk +# cFWrAm6+0ZmtdLPKZ2NphUZ2v/QNj9Q/XlnPbyKdKpvqXLlmBoxSFiAKh8JemN6c +# f8iTH3mln3xQL6xXN7Wdfzbj3l45AFk4TWLepJKn0F9RxvtW8iHS/8kFZlhwIXHz +# eNxfI9yPfF4Ht+LzLtnherw93yO68ohxPuq6tcKpAf6ilsc3NA0NKrC9nAHLODkx +# mZQ0vR1OYw2Cwy1DmV0MyoJoYKkGZ735C6pl8fy8dx/WlzFWAqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBZ2ikkxIYHsBxzkd4hVEbjTTkwlyvAkT53 -# HPAZdAIfMAIGZ2Lk7HhdGBMyMDI1MDExNTA1MDcwMC4wNDNaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAOCQpRRepj6EZa/HAux1KL/0wunCfJBimY +# 3dc7ak5UdQIGaKSChGIoGBMyMDI1MTAwMTA4MzMwNi4zMzJaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT # Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAACAAvX +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvX # qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w @@ -199,7 +192,7 @@ else { # 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk # txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg # DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT @@ -208,36 +201,36 @@ else { # L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOsxo0YwIhgPMjAyNTAxMTUwMzAwMjJaGA8yMDI1 -# MDExNjAzMDAyMlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6zGjRgIBADAHAgEA -# AgIFOjAHAgEAAgITQjAKAgUA6zL0xgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQAhYJMb9FIZ7OeKocN8yka65cMD9bLiHmBAxOfBpIfr/zOeMxqpBOcrHdZg -# IuB308Ui/Zig1ZL/ffuX5XrGjCctRiuaqPq6xNmx3jiYhgwkv86tL9skdQZkka2L -# jfelJ5HH6OViGj1I1j4X5SQa2phJuhRVVOjYIZzCaBEBtqRswu2MsqR2h+Bg6BTE -# XVOlMdDOdausGU79t4sTzpHgAUDcEin4ZpNQes+5XxSUYRST7t9sMghbkhK0V0k/ -# Nsdlxv+KuglBaPJC1ylpeMaPdvx3Mbgx3xU7zGqwYC1lm2BaBizrsTkP07qKUAkD -# 4I5D9+t73hy+Y/h3YrQQXuzTUiFiMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgTRTTwJ+LAzJ7l3gH/YeftywXIey6eUDG2AeoS5F4l+8wgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudIk/9K -# Ak/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAC -# AAvXqn8bKhdWAAEAAAIAMCIEIBHJJTpFdeGz4Ttmbufp6oDf1lOTIX6loOgqyXbB -# lab+MA0GCSqGSIb3DQEBCwUABIICADvVDzrogX3zxTbMxBMkvxeMpU+Mg4RPqnJc -# kqxTF9zqPtgES8CilMh05/mAPzSHdwBgMGVeK7Rzbf1G7se5mVbKc+m3pFVtv2Ic -# QYTY1/efjzmtwdDI6/puRJO5+08jT/2b43UxrdHacIN+rRqowOTbsvNTN1Rm9pVs -# CCNNPwEXVOkRbKgAKqYIWkimQT/5lvQBYQWe5eCC54Rmxu146mFSqQTELK84PNLR -# bU6YfUQ2+L4Lm3cmC+LF4DKPwC4QEWymrb0PR9B/w5KQNxCR70kdwSkwMc/kMtS0 -# Ae7PbDRraGjQCTQRBNE3Z/JHVADPSkIQIESa9lyq9ClyUvPNwM2B4844Xsb+KFtp -# +ae2jnk3sCnT35TDMYQbppiFSKkfnUe2zOsyEHDvK4khgafr6kKDQHgiPYQDluqt -# hMgc0R8Q3fAlyFPvFrZpClXz+qS/45kJX3SgTPr6Df86iPhGB7+W+XS/FQWN8fI4 -# /AY1vv3YIXEwvoQNyX5q7b8EFEHp5n4abT1QSfTZZYRDU7ecblF4+QL4S0Cq0ARu -# Dvj8MeAGjK8WRjyCQgAfiQKry4ZVUtA8HOKkQa12RnMzP2McOEalFKbY1redXszk -# zLC7Vo0StmN/WWxlZgIYIrTlgTqH9vaWmkjehMvOjMqYct6rTCcNkkKHqdmk01EW -# 2aBwXRx4 +# 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.3.1/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml index cb7caf7829e5..9d883dfb0e42 100644 --- a/Modules/MicrosoftTeams/7.3.1/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 @@ -15120,6 +15120,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al 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. @@ -15280,6 +15281,7 @@ Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -Al 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. @@ -18345,18 +18347,6 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter None - - AutoShareFilesInExternalChats - - Indicates if file scope will be changed automatically when sharing files and loops in chats with external or guest users. - - String - - String - - - None - DefaultFileUploadAppId @@ -18372,14 +18362,16 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter FileSharingInChatswithExternalUsers - Indicates if file sharing in chats with external users is enabled. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled String String - None + Enabled Force @@ -18430,18 +18422,6 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter - - AutoShareFilesInExternalChats - - Indicates if file scope will be changed automatically when sharing files and loops in chats with external or guest users. - - String - - String - - - None - DefaultFileUploadAppId @@ -18457,14 +18437,16 @@ New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -Exter FileSharingInChatswithExternalUsers - Indicates if file sharing in chats with external users is enabled. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled String String - None + Enabled Force @@ -22734,7 +22716,7 @@ Description : This is a test policy System.String - Disabled + Enabled WhatIf @@ -23288,7 +23270,7 @@ Description : This is a test policy System.String - Disabled + Enabled WhatIf @@ -31764,7 +31746,8 @@ At line:1 char:1 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. + 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. @@ -31787,7 +31770,7 @@ At line:1 char:1 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. + > [!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 @@ -31801,7 +31784,7 @@ At line:1 char:1 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. + > [!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 @@ -31815,7 +31798,7 @@ At line:1 char:1 CommunicationWithExternalOrgs > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 - > [!NOTE] > Please note that this parameter is in Private Preview. + > [!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. @@ -32054,7 +32037,7 @@ At line:1 char:1 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. + > [!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 @@ -32068,7 +32051,7 @@ At line:1 char:1 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. + > [!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 @@ -32082,7 +32065,7 @@ At line:1 char:1 CommunicationWithExternalOrgs > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 - > [!NOTE] > Please note that this parameter is in Private Preview. + > [!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. @@ -32376,7 +32359,7 @@ At line:1 char:1 -------------------------- Example 3 -------------------------- Get-CsExternalAccessPolicy -Filter tag:* | Set-CsExternalAccessPolicy -EnableFederationAccess $True - Example 3 enables federation access for all the external access policies that have been configured at the per-user scope. To carry out this task, the first thing the command does is use the `Get-CsExternalAcessPolicy` cmdlet and the Filter parameter to return a collection of all the policies that have been configured at the per-user scope. (The filter value "tag:*" limits returned data to policies that have an Identity that begins with the string value "tag:". Any policy with an Identity that begins with "tag:" has been configured at the per-user scope.) The filtered collection is then piped to the `Set-CsExternalAccessPolicy` cmdlet, which modifies the EnableFederationAccess property for each policy in the collection. + Example 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. @@ -33332,18 +33315,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Set-CsTeamsAcsFederationConfiguration - - AllowAllAcsResources - - DEPRECATED. Do not use. - - Boolean - - Boolean - - - False - AllowedAcsResources @@ -33357,19 +33328,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Empty/Null - - BlockedAcsResources - - List of blocked Azure Communication Services resources. - 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 @@ -33410,7 +33368,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true 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 AllowAllAcsResources, their label should be displayed as 'External'. + 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 @@ -33422,7 +33380,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true RequireAcsFederationForMeeting - This configuration controls whether ACS Federation is required for meetings. Possibles values are: True, False. + This configuration controls whether ACS Federation is required for meetings. Possible values are: True, False. Boolean @@ -33434,18 +33392,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true - - AllowAllAcsResources - - DEPRECATED. Do not use. - - Boolean - - Boolean - - - False - AllowedAcsResources @@ -33459,19 +33405,6 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true Empty/Null - - BlockedAcsResources - - List of blocked Azure Communication Services resources. - 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 @@ -33512,7 +33445,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true 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 AllowAllAcsResources, their label should be displayed as 'External'. + 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 @@ -33524,7 +33457,7 @@ Set-CsTenantFederationConfiguration -CustomizeFederation $true RequireAcsFederationForMeeting - This configuration controls whether ACS Federation is required for meetings. Possibles values are: True, False. + This configuration controls whether ACS Federation is required for meetings. Possible values are: True, False. Boolean @@ -36595,6 +36528,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList 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. @@ -36741,6 +36675,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList 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. @@ -36901,6 +36836,7 @@ Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList 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. @@ -41300,18 +41236,6 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a None - - AutoShareFilesInExternalChats - - Indicates if file scope will be changed automatically when sharing files and loops in chats with external or guest users. - - String - - String - - - None - Confirm @@ -41338,14 +41262,16 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a FileSharingInChatswithExternalUsers - Indicates if file sharing in chats with external users is enabled. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled String String - None + Enabled Force @@ -41396,18 +41322,6 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a - - AutoShareFilesInExternalChats - - Indicates if file scope will be changed automatically when sharing files and loops in chats with external or guest users. - - String - - String - - - None - Confirm @@ -41435,14 +41349,16 @@ Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{a FileSharingInChatswithExternalUsers - Indicates if file sharing in chats with external users is enabled. + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled String String - None + Enabled Force @@ -45604,8 +45520,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr ContentBasedPhishingCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if Content Based Phishing Check in teams messaging across the whole tenant + > [!NOTE] > This feature has not been released. + This setting enables content-based phishing detection for Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -45655,8 +45571,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr FileTypeCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if FileType check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables weaponizable file detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -45693,8 +45609,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr ReportIncorrectSecurityDetections - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if Report Incorrect Security Detections is enabled in teams messaging across the whole tenant + > [!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 @@ -45708,8 +45624,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr UrlReputationCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if UrlReputationCheck check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables malicious URL detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -45749,8 +45665,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr ContentBasedPhishingCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if Content Based Phishing Check in teams messaging across the whole tenant + > [!NOTE] > This feature has not been released. + This setting enables content-based phishing detection for Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -45800,8 +45716,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr FileTypeCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if FileType check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables weaponizable file detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -45851,8 +45767,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr ReportIncorrectSecurityDetections - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if Report Incorrect Security Detections is enabled in teams messaging across the whole tenant + > [!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 @@ -45866,8 +45782,8 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr UrlReputationCheck - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - This setting determines if UrlReputationCheck check in teams messaging across the whole tenant + > [!NOTE] > This parameter is in Private Preview. + This setting enables malicious URL detection in Teams messages in the tenant. Possible Values: - Enabled - Disabled @@ -46489,7 +46405,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr System.String - Disabled + Enabled WhatIf @@ -47045,7 +46961,7 @@ PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBr System.String - Disabled + Enabled WhatIf diff --git a/Modules/MicrosoftTeams/7.3.1/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml diff --git a/Modules/MicrosoftTeams/7.3.1/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml diff --git a/Modules/MicrosoftTeams/7.3.1/en-US/MicrosoftTeams-help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/en-US/MicrosoftTeams-help.xml rename to Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml index e88e97a48641..93998357f5db 100644 --- a/Modules/MicrosoftTeams/7.3.1/en-US/MicrosoftTeams-help.xml +++ b/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml @@ -403,7 +403,7 @@ New York City +17182000004 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/teams/get-csteamsshiftsconnectionerrorreport). + 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). @@ -457,11 +457,11 @@ New York City +17182000004 Online Version: - https://learn.microsoft.com/powershell/module/teams/disable-csteamsshiftsconnectionerrorreport + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csteamsshiftsconnectionerrorreport Get-CsTeamsShiftsConnectionErrorReport - https://learn.microsoft.com/powershell/module/teams/get-csteamsshiftsconnectionerrorreport + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport @@ -4620,7 +4620,7 @@ e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2 - > [!IMPORTANT] > This cmdlet is being deprecated. Use the Get-CsPhoneNumberAssignment cmdlet to display information about one or more phone numbers. Detailed instructions on how to use the new cmdlet can be found at Get-CsPhoneNumberAssignment (/powershell/module/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. + > [!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. @@ -5200,6 +5200,240 @@ Id O365Region SourceType TargetType TelephoneNumber UserId + + + 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 @@ -5253,6 +5487,65 @@ Id O365Region SourceType TargetType TelephoneNumber UserId 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 + @@ -5293,6 +5586,66 @@ Id O365Region SourceType TargetType TelephoneNumber UserId 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 + @@ -5354,6 +5707,240 @@ Id O365Region SourceType TargetType TelephoneNumber UserId + + + 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 @@ -14575,6 +15162,232 @@ Tag : {Engineering} + + + 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 @@ -15029,6 +15842,114 @@ $getBatchStatusResponse.BatchItem + + + 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 @@ -38149,7 +39070,7 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH Auto Attendants (AAs) are a key element in the Office 365 Phone System. Each AA can be associated with phone numbers that allow callers to reach specific people in the organization through a directory lookup. Alternatively, it can route the calls to an operator, a user, another AA, or a call queue. You can create new AAs by using the New-CsAutoAttendant cmdlet; each newly created AA gets assigned a random string that serves as the identity of the AA. - > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -UserNameExtension > > 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 NOTES : + > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -UserNameExtension > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -EnableMainLineAttendant > - -MainlineAttendantAgentVoiceId NOTES : - To setup your AA for calling, you need to create an application instance first using `New-CsOnlineApplicationInstance` cmdlet , then associate it with your AA configuration using `New-CsOnlineApplicationInstanceAssociation` cmdlet. - The default call flow has the lowest precedence, and any custom call flow has a higher precedence and is executed if the schedule associated with it is in effect. - Holiday call flows have higher priority than after-hours call flows. Thus, if a holiday schedule and an after-hours schedule are both in effect at a particular time, the call flow corresponding to the holiday call flow will be rendered. @@ -38218,7 +39139,19 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH 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. `-VoiceId` choices are limited when Mainline Attendant is enabled > 1. `-EnableVoiceResponse` will be enabled automatically + > [!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 @@ -38437,7 +39370,20 @@ $audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH 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. `-VoiceId` choices are limited when Mainline Attendant is enabled > 1. `-EnableVoiceResponse` will be enabled automatically + > [!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 @@ -40091,7 +41037,7 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me The New-CsAutoAttendantMenuOption cmdlet creates a new menu option for the Auto Attendant (AA) service. The AA service uses the menu options to respond to a caller with the appropriate action. - > [!CAUTION] > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -Description > - -Action MainLineAttendantFlow > - -MainlineAttendantTarget + > [!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 @@ -40100,9 +41046,9 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me Action The Action parameter represents the action to be taken when the menu option is activated. The Action must be set to one of the following values: - - Announcement - plays a defined prompt then returns to the menu + - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu - DisconnectCall - The call is disconnected. - - TransferCallToOperator - the call is transferred to the operator. + - MainlineAttendantFlow - Restricted to VoiceApps TAP customers - TransferCallToOperator - the call is transferred to the operator. - TransferCallToTarget - The call is transferred to the menu option's call target. Object @@ -40182,6 +41128,43 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me 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 @@ -40214,9 +41197,9 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me Action The Action parameter represents the action to be taken when the menu option is activated. The Action must be set to one of the following values: - - Announcement - plays a defined prompt then returns to the menu + - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu - DisconnectCall - The call is disconnected. - - TransferCallToOperator - the call is transferred to the operator. + - MainlineAttendantFlow - Restricted to VoiceApps TAP customers - TransferCallToOperator - the call is transferred to the operator. - TransferCallToTarget - The call is transferred to the menu option's call target. Object @@ -40296,6 +41279,43 @@ $menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -Me 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 @@ -44146,10 +45166,10 @@ Token New-CsComplianceRecordingForCallQueueTemplate - BotId + BotApplicationInstanceObjectId - > Applicable: Microsoft Teams - The Application Instance Id of the compliance recording bot to invite. + The compliance recording bot's application instance object Id. + Use Get-CsOnlineApplicationInstance (get-csonlineapplicationinstance.md)to get the `ObjectId`. System.String @@ -44161,7 +45181,6 @@ Token ConcurrentInvitationCount - > Applicable: Microsoft Teams The number of concurrent invitations to send to the compliance recording for call queue bot. System.Int32 @@ -44174,7 +45193,6 @@ Token Description - > Applicable: Microsoft Teams A description for the compliance recording for call queues template. System.String @@ -44187,7 +45205,6 @@ Token Name - > Applicable: Microsoft Teams The name of the compliance recording for call queue template. System.String @@ -44198,10 +45215,9 @@ Token None - PairedApplication + PairedApplicationInstanceObjectId - > Applicable: Microsoft Teams - The PairedApplication parameter specifies the paired application for the call queue. + The PairedApplicationInstanceObjectId parameter specifies the paired compliance recording bot application object Id to invite to the call. System.String @@ -44213,7 +45229,6 @@ Token RequiredBeforeCall - > Applicable: Microsoft Teams 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 @@ -44226,7 +45241,6 @@ Token RequiredDuringCall - > Applicable: Microsoft Teams 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 @@ -44240,10 +45254,10 @@ Token - BotId + BotApplicationInstanceObjectId - > Applicable: Microsoft Teams - The Application Instance Id of the compliance recording bot to invite. + The compliance recording bot's application instance object Id. + Use Get-CsOnlineApplicationInstance (get-csonlineapplicationinstance.md)to get the `ObjectId`. System.String @@ -44255,7 +45269,6 @@ Token ConcurrentInvitationCount - > Applicable: Microsoft Teams The number of concurrent invitations to send to the compliance recording for call queue bot. System.Int32 @@ -44268,7 +45281,6 @@ Token Description - > Applicable: Microsoft Teams A description for the compliance recording for call queues template. System.String @@ -44281,7 +45293,6 @@ Token Name - > Applicable: Microsoft Teams The name of the compliance recording for call queue template. System.String @@ -44292,10 +45303,9 @@ Token None - PairedApplication + PairedApplicationInstanceObjectId - > Applicable: Microsoft Teams - The PairedApplication parameter specifies the paired application for the call queue. + The PairedApplicationInstanceObjectId parameter specifies the paired compliance recording bot application object Id to invite to the call. System.String @@ -44307,7 +45317,6 @@ Token RequiredBeforeCall - > Applicable: Microsoft Teams 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 @@ -44320,7 +45329,6 @@ Token RequiredDuringCall - > Applicable: Microsoft Teams 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 @@ -44359,7 +45367,7 @@ Token -------------------------- Example 1 -------------------------- - New-CsComplianceRecordingForCallQueueTemplate -Name "Customer Service" -Description "Required before/during call" -BotId 14732826-8206-42e3-b51e-6693e2abb698 -RequiredDuringCall $true -RequiredBeforeCall $true + 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. @@ -44758,7 +45766,8 @@ Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: Whether or not users can communicate with people from other domains and, if so, which domains they are allowed to communicate with. Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, AOL, and Yahoo. - Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains that users are not allowed to communicate with. By default, users can communicate with any domain that does not appear on the blocked list. However, administrators can modify this default setting and limit communication to domains that are on the allowed domains list. + Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains that users are not allowed to communicate with. By default, users can communicate with any domain that does not appear on the blocked list. However, administrators can modify this default setting and limit communication to domains that are on the allowed domains list. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example, you cannot use a command similar to this one, which passes a string value representing a domain name to the blocked domains list: `Set-CsTenantFederationConfiguration -BlockedDomains "fabrikam.com"` Instead, you must create a domain object by using the New-CsEdgeDomainPattern cmdlet, store that domain object in a variable (in this example, $x), then pass the variable name to the blocked domains list: @@ -44834,7 +45843,25 @@ Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList Set-CsTenantFederationConfiguration -BlockedDomains $x - Example 1 demonstrates how you can assign a single domain to the blocked domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the New-CsEdgeDomainPattern cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the Set-CsTenantFederationConfiguration cmdlet and the BlockedDomains parameter to configure fabrikam.com as the only domain blocked by the current tenant. + Example 1 demonstrates how you can assign a single domain to the blocked domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `BlockedDomains` parameter to configure fabrikam.com as the only domain blocked by the current tenant. Please note that `AllowFederatedUsers` should be `True` for this to work. + + + + -------------------------- Example 2 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +Set-CsTenantFederationConfiguration -AllowedDomains $x + + Example 2 demonstrates how you can assign a single domain to the allowed domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `AllowedDomains` parameter to configure fabrikam.com as the only domain allowed by the current tenant. Please note that `AllowFederatedUsers` should be `True` for this to work. + + + + -------------------------- Example 3 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "" + +Set-CsTenantFederationConfiguration -AllowedDomains $x + + Example 3 demonstrates how you can block a specified tenant from any external federation. To do this, the first command in the example creates an empty domain object; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `AllowedDomains` parameter to configure the current tenant with a Block-All setting. Please note that `AllowFederatedUsers` should be `True` in case you want to allow specific users to be able to communicate externally via `ExternalAccessPolicy` instances. @@ -46088,7 +47115,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 CallerAuthenticationMethod The method by which the caller is authenticated - PARAVALUES: sms | email | verification_link | voiceprint | user_details + PARAVALUES: Sms | Email | VerificationLink | Voiceprint | UserDetails String @@ -46101,7 +47128,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 ApiAuthenticationType The method of authentication used by the API - PARAVALUES: basic | api_key | bearer_token_static | bearer_token_dynamic + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic String @@ -46154,7 +47181,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 CallerAuthenticationMethod The method by which the caller is authenticated - PARAVALUES: sms | email | verification_link | voiceprint | user_details + PARAVALUES: Sms | Email | VerificationLink | Voiceprint | UserDetails String @@ -46167,7 +47194,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 ApiAuthenticationType The method of authentication used by the API - PARAVALUES: basic | api_key | bearer_token_static | bearer_token_dynamic + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic String @@ -46257,7 +47284,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 ApiAuthenticationType The method of authentication used by the API - PARAVALUES: basic | api_key | bearer_token_static | bearer_token_dynamic + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic String @@ -46310,7 +47337,7 @@ e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/201 ApiAuthenticationType The method of authentication used by the API - PARAVALUES: basic | api_key | bearer_token_static | bearer_token_dynamic + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic String @@ -51972,6 +52999,294 @@ $getBatchStatusResponse.BatchItem + + + 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 @@ -64973,6 +66288,222 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + + 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 @@ -67994,6 +69525,114 @@ d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/20 + + + 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 @@ -77169,6 +78808,146 @@ Set-CsComplianceRecordingForCallQueueTemplate $template + + + 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 @@ -86217,7 +87996,479 @@ Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendant - System.Object + 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 @@ -86226,180 +88477,92 @@ Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendant - 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 + $SharedCQHistory = Get-CsSharedCallQueueHistory -Id 66f0dc32-d344-4bb1-b524-027d4635515c +$SharedCQHisotry.AnsweredAndOutboundCalls = "AuthorizedUsersAndAgents" +Set-CsSharedCallQueueHistoryTemplate -Instance $SharedCQHistory - 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. + 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-csphonenumberassignment + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsSharedCallQueueHistoryTemplate - Remove-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment + New-CsSharedCallQueueHistoryTemplate + - Get-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment + Get-CsSharedCallQueueHistoryTemplate + + + + Remove-CsSharedCallQueueHistoryTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + - Set-CsPhoneNumberTag + Set-CsTagsTemplate Set - CsPhoneNumberTag + CsTagsTemplate - This cmdlet allows the admin to create and assign a tag to a phone number. + Changes an existing Tag template. - 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. + 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-CsPhoneNumberTag + Set-CsTagsTemplate - PhoneNumber + Instance - Indicates the phone number for the the tag to be assigned + 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. - String + Object - String + Object None - - Tag + + Tenant - Indicates the tag to be assigned or created. + This parameter is reserved for Microsoft internal use only. - String + Guid - String + Guid None @@ -86408,131 +88571,36 @@ Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count number - PhoneNumber - - Indicates the phone number for the the tag to be assigned - - String - - String - - - None - - - Tag + Instance - Indicates the tag to be assigned or created. + 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. - String + Object - String + Object 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 + + Tenant - > Applicable: Microsoft Teams - The instance of the shared call queue history template to change. + This parameter is reserved for Microsoft internal use only. - System.String + Guid - System.String + Guid None - - - - None - - - - - - + - Microsoft.Rtc.Management.OAA.Models.AutoAttendant + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue @@ -86544,48 +88612,26 @@ Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count number - - - -------------------------- 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 - + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstagstemplate - Remove-CsSharedCallQueueHistoryTemplate + New-CsTagsTemplate - Get-CsCallQueue + Get-CsTagsTemplate - New-CsCallQueue + Remove-CsTagsTemplate - Set-CsCallQueue - - - - Remove-CsCallQueue + New-CsTag @@ -96652,7 +98698,8 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules > Applicable: Microsoft Teams Domain objects (created by using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet) that represent the domains that users are allowed to communicate with. If the `New-CsEdgeAllowAllKnownDomains` cmdlet is used then users can communicate with any domain that does not appear on the blocked domains list. If the `New-CsEdgeAllowList` cmdlet is used then users can only communicate with domains that have been added to the allowed domains list. Note that string values cannot be passed directly to the AllowedDomains parameter. Instead, you must create an object reference using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet and then use the object reference variable as the parameter value. - The AllowedDomains parameter can support up to 4,000 domains. + The AllowedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. Boolean @@ -96694,7 +98741,8 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules 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. + 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 @@ -96743,7 +98791,9 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules 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. + 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 @@ -96893,7 +98943,8 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules > Applicable: Microsoft Teams Domain objects (created by using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet) that represent the domains that users are allowed to communicate with. If the `New-CsEdgeAllowAllKnownDomains` cmdlet is used then users can communicate with any domain that does not appear on the blocked domains list. If the `New-CsEdgeAllowList` cmdlet is used then users can only communicate with domains that have been added to the allowed domains list. Note that string values cannot be passed directly to the AllowedDomains parameter. Instead, you must create an object reference using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet and then use the object reference variable as the parameter value. - The AllowedDomains parameter can support up to 4,000 domains. + The AllowedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. Boolean @@ -96935,7 +98986,8 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules 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. + 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 @@ -96985,7 +99037,9 @@ Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules 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. + 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 @@ -97209,43 +99263,50 @@ Set-CsTenantFederationConfiguration -BlockedDomains @{Add=$x} -------------------------- Example 6 -------------------------- + Set-CsTenantFederationConfiguration -AllowedDomains $Null + + Example 6 shows how you can remove all the domains assigned to the allowed domains list for the current tenant, thereby blocking external communication for all users in the Tenant. In case `AllowFederatedUsers` is set to `True`, then explicit `ExternalAccessPolicy` instances can be leveraged to set a per-user federation setting. To do this, simply include the AllowedDomains parameter and set the parameter value to null ($Null). When this command completes, the allowed domain list will be cleared. + + + + -------------------------- Example 7 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedDomainsAsAList $list - Example 6 shows how you can replace domains in the Allowed Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the AllowedDomainsAsAList parameter and set the parameter value to the List object. When this command completes, the allowed domains list will be replaced with those domains. + Example 7 shows how you can replace domains in the Allowed Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the AllowedDomainsAsAList parameter and set the parameter value to the List object. When this command completes, the allowed domains list will be replaced with those domains. - -------------------------- Example 7 -------------------------- + -------------------------- Example 8 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Add=$list} - Example 7 shows how you can add domains to the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Add method in the AllowedDomainsAsAList parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the AllowedDomains list. + Example 8 shows how you can add domains to the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Add method in the AllowedDomainsAsAList parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the AllowedDomains list. - -------------------------- Example 8 -------------------------- + -------------------------- Example 9 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Remove=$list} - Example 8 shows how you can remove domains from the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Remove method in the AllowedDomainsAsAList parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the AllowedDomains list. + Example 9 shows how you can remove domains from the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Remove method in the AllowedDomainsAsAList parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the AllowedDomains list. - -------------------------- Example 9 -------------------------- + -------------------------- Example 10 -------------------------- Set-CsTenantFederationConfiguration -AllowTeamsConsumer $True -AllowTeamsConsumerInbound $False - The command shown in Example 9 enables communication with people using Teams with an account that's not managed by an organization, to only be initiated by people in your organization. This means that people using Teams with an account that's not managed by an organization will not be able to discover or start a conversation with people in your organization. + The command shown in Example 10 enables communication with people using Teams with an account that's not managed by an organization, to only be initiated by people in your organization. This means that people using Teams with an account that's not managed by an organization will not be able to discover or start a conversation with people in your organization. - -------------------------- Example 10 -------------------------- + -------------------------- Example 11 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") @@ -97253,57 +99314,57 @@ Set-CsTenantFederationConfiguration -BlockedDomains $list Set-CsTenantFederationConfiguration -BlockAllSubdomains $True - Example 10 shows how you can block all subdomains of domains in BlockedDomains list. In this example, all users from contoso.com and fabrikam.com will be blocked. When the BlockAllSubdomains is enabled, all users from all subdomains of all domains in BlockedDomains list will also be blocked. So, users from subdomain.contoso.com and subdomain.fabrikam.com will be blocked. Note: Users from subcontoso.com will not be blocked because it's a completely different domain rather than a subdomain of contoso.com. + Example 11 shows how you can block all subdomains of domains in BlockedDomains list. In this example, all users from contoso.com and fabrikam.com will be blocked. When the BlockAllSubdomains is enabled, all users from all subdomains of all domains in BlockedDomains list will also be blocked. So, users from subdomain.contoso.com and subdomain.fabrikam.com will be blocked. Note: Users from subcontoso.com will not be blocked because it's a completely different domain rather than a subdomain of contoso.com. - -------------------------- Example 11 -------------------------- + -------------------------- Example 12 -------------------------- Set-CsTenantFederationConfiguration -ExternalAccessWithTrialTenants "Allowed" - Example 11 shows how you can allow users to communicate with users in tenants that contain only trial licenses (default value is Blocked). + Example 12 shows how you can allow users to communicate with users in tenants that contain only trial licenses (default value is Blocked). - -------------------------- Example 12 -------------------------- + -------------------------- Example 13 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") $list.add("fabrikam.com") Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains $list - Using the `AllowedTrialTenantDomains` parameter, you can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. Example 12 shows how you can set or replace domains in the Allowed Trial Tenant Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the `AllowedTrialTenantDomains` parameter and set the parameter value to the List object. When this command completes, the Allowed Trial Tenant Domains list will be replaced with those domains. + Using the `AllowedTrialTenantDomains` parameter, you can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. Example 13 shows how you can set or replace domains in the Allowed Trial Tenant Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the `AllowedTrialTenantDomains` parameter and set the parameter value to the List object. When this command completes, the Allowed Trial Tenant Domains list will be replaced with those domains. - -------------------------- Example 13 -------------------------- + -------------------------- Example 14 -------------------------- Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @("contoso.com", "fabrikam.com") - Example 13 shows another way to set a value of `AllowedTrialTenantDomains`. It uses array of objects and it always replaces value of the `AllowedTrialTenantDomains`. When this command completes, the result is the same as in example 12. + Example 14 shows another way to set a value of `AllowedTrialTenantDomains`. It uses array of objects and it always replaces value of the `AllowedTrialTenantDomains`. When this command completes, the result is the same as in example 13. The array of `AllowedTrialTenantDomains` can be emptied by running the following command: `Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @()`. - -------------------------- Example 14 -------------------------- + -------------------------- Example 15 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Add=$list} - Example 14 shows how you can add domains to the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then, use the Add method in the `AllowedTrialTenantDomains` parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the Allowed Trial Tenant Domains list. + Example 15 shows how you can add domains to the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then, use the Add method in the `AllowedTrialTenantDomains` parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the Allowed Trial Tenant Domains list. - -------------------------- Example 15 -------------------------- + -------------------------- Example 16 -------------------------- $list = New-Object Collections.Generic.List[String] $list.add("contoso.com") Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} - Example 15 shows how you can remove domains from the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then use the Remove method in the `AllowedTrialTenantDomains` parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the Allowed Trial Tenant Domains list. + Example 16 shows how you can remove domains from the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then use the Remove method in the `AllowedTrialTenantDomains` parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the Allowed Trial Tenant Domains list. - -------------------------- Example 16 -------------------------- + -------------------------- Example 17 -------------------------- Set-CsTenantFederationConfiguration -DomainBlockingForMDOAdminsInTeams "Enabled" @@ -99794,7 +101855,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} UnansweredDelay - The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 10 and 60 seconds in 10 seconds increments, i.e. 00:00:10, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. + The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 5 and 60 seconds in 5 seconds increments between 5 and 15 seconds, and 10 seconds increments otherwise, i.e. 00:00:05, 00:00:10, 00:00:15, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. System.String @@ -100013,7 +102074,7 @@ Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} UnansweredDelay - The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 10 and 60 seconds in 10 seconds increments, i.e. 00:00:10, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. + The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 5 and 60 seconds in 5 seconds increments between 5 and 15 seconds, and 10 seconds increments otherwise, i.e. 00:00:05, 00:00:10, 00:00:15, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. System.String diff --git a/Modules/MicrosoftTeams/7.3.1/exports/ProxyCmdletDefinitionsWithHelp.ps1 b/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/exports/ProxyCmdletDefinitionsWithHelp.ps1 rename to Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 index 1bffd7ff6ab1..1acb708033e1 100644 --- a/Modules/MicrosoftTeams/7.3.1/exports/ProxyCmdletDefinitionsWithHelp.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 @@ -45196,6 +45196,90 @@ end { } } +# .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)] @@ -45203,14 +45287,44 @@ param( [Parameter(Position=0)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${FlowId}, + ${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] - ${Force}, + ${Descending}, - [Parameter(Position=1, DontShow)] + [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[]] @@ -45260,6 +45374,90 @@ end { } } +# .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)] @@ -46130,6 +46328,70 @@ end { } } +# .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')] @@ -47717,6 +47979,11 @@ param( [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')] @@ -48206,6 +48473,21 @@ param( [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')] @@ -48930,7 +49212,7 @@ param( [Parameter(Position=2, Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${BotId}, + ${BotApplicationInstanceObjectId}, [Parameter(Position=3)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -48950,7 +49232,7 @@ param( [Parameter(Position=6)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - ${PairedApplication}, + ${PairedApplicationInstanceObjectId}, [Parameter(DontShow)] [ValidateNotNull()] @@ -49229,16 +49511,16 @@ param( [System.String] ${Description}, - [Parameter(Position=2, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] - ${ApiAuthenticationType}, - [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')] @@ -49911,6 +50193,133 @@ end { } } +# .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])] @@ -50501,20 +50910,148 @@ end { } # .ExternalHelp en-US\MicrosoftTeams-help -function Remove-CsConfigurationModern { -[CmdletBinding(PositionalBinding=$false)] +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] - ${ConfigType}, + ${Identity}, - [Parameter(Position=1, Mandatory)] + [Parameter(Position=1)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, + [System.Management.Automation.SwitchParameter] + ${Force}, - [Parameter(Position=2, DontShow)] + [Parameter(DontShow)] [ValidateNotNull()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] @@ -50530,7 +51067,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsConfigurationModern'; + __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) @@ -50954,6 +51491,70 @@ end { } } +# .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)] @@ -51729,6 +52330,124 @@ end { } } +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsMainlineAttendantAppointmentBookingFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsMainlineAttendantQuestionAnswerFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsMainlineAttendantQuestionAnswerFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + # .ExternalHelp en-US\MicrosoftTeams-help function Set-CsOdcServiceNumber { [CmdletBinding(PositionalBinding=$false)] @@ -52709,6 +53428,70 @@ end { } } +# .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')] @@ -53498,10 +54281,10 @@ end { } # SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCXt+++ykdxzn+8 -# HaiAnBOjDeyvDAoUxG4IuvZdyCgcmaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBkgNc3SV2m6Sgc +# z1TChY0ngz7tOvT8zgayZlr22W0TRaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z # 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p @@ -53573,144 +54356,144 @@ end { # XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA # 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt # Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp # Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB # BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIIk8AnwVd6m/W5C8yfckM3PA -# 6ZGjHkcfvcZfRZFg17DCMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEscMFYNCcnOY66Fk7jQ6La9 +# n/+rO9ShrpMG4d3ll1OeMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A # cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAoPm5OIHKtOXLGYXbZwuxN0vLMlghKFHwsiVX4rl1lW0PiJb2dUayorJ3 -# bjdbw0fQJ1o5AP7AqaHpTWDsToZcFUESjC300baroEve+J2X3DGreWHr2h7dtGac -# xGBrjrnFagceNHO/fF4xKv+7pIZ3ZbigIUWEGPO23XiM8AunUZ61l9MOejlrtNqG -# RT/zlT6GE1nXRCVqXC8I/vxt+QlPQyXBtwZWcQ1nAn+hmf0xwCQ31QOc3G5TpkXB -# tll2aS3rC1x0sqWgMTEMY9a1XSCtN6dlzZYwn5N5kdg+tYeLcIFhh7rS0NgqFRRX -# XgkNoF+L3B4qI6x+1ddRJCXcmGS8BqGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCAlsH2XEGHHX7ykkAYANmDA/V0ZXl600VdpNR2fFyq9jgIGaKOoJ3BS -# GBMyMDI1MDgyMTA2NTEyMC4zMDRaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV +# BQAEggEAZmAGn1n0y9mKzaNyeh9vxzKl7PrdBwdueox8/iGJl+eb2DvPEM6oNjvx +# zRld11sOitlN/nBDASbDRm5r2H4UhNVmkc0KPRV4Dm9HFdhzKNdtG8+nMc4g1v05 +# QQnwCesuNZh9gE+datNrsU9RKuocUiSXsCWPJAtsDLC/JQbJuaJS8fldgess3w3r +# n+eM6bVOiOhlpTXtRtnRTo5zYDXipTdEauJo1fR6gaF20sJ0NmIjYv3CcUWJ+E19 +# 7ZbgmDlLj1F9Bxh5AKAp/c8r+4F+rJU5x9eZqy27T4NDL68O89AUg/dCzdIjj5II +# RbOnUbdKb4KtIbWd2kCVmHrcF7uFyKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC +# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq +# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl +# AwQCAQUABCBvszC7o2PMK3q9tNrT6+2O295g5bMfqsffiurTMSgFYgIGaNry8iS+ +# GBMyMDI1MTAwMTA4MzMzMC45OTJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+KOhJgwMQEj+AAEAAAH4MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOFoXDTI1MTAyMjE4MzEwOFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjMyMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxR23pXYnD2BuODdeXs2C -# u/T5kKI+bAw8cbtN50Cm/FArjXyL4RTqMe6laQ/CqeMTxgckvZr1JrW0Mi4F15rx -# /VveGhKBmob45DmOcV5xyx7h9Tk59NAl5PNMAWKAIWf270SWAAWxQbpVIhhPWCnV -# V3otVvahEad8pMmoSXrT5Z7Nk1RnB70A2bq9Hk8wIeC3vBuxEX2E8X50IgAHsyaR -# 9roFq3ErzUEHlS8YnSq33ui5uBcrFOcFOCZILuVFVTgEqSrX4UiX0etqi7jUtKyp -# gIflaZcV5cI5XI/eCxY8wDNmBprhYMNlYxdmQ9aLRDcTKWtddWpnJtyl5e3gHuYo -# j8xuDQ0XZNy7ESRwJIK03+rTZqfaYyM4XSK1s0aa+mO69vo/NmJ4R/f1+KucBPJ4 -# yUdbqJWM3xMvBwLYycvigI/WK4kgPog0UBNczaQwDVXpcU+TMcOvWP8HBWmWJQIm -# TZInAFivXqUaBbo3wAfPNbsQpvNNGu/12pg0F8O/CdRfgPHfOhIWQ0D8ALCY+Lsi -# wbzcejbrVl4N9fn2wOg2sDa8RfNoD614I0pFjy/lq1NsBo9V4GZBikzX7ZjWCRgd -# 1FCBXGpfpDikHjQ05YOkAakdWDT2bGSaUZJGVYtepIpPTAs1gd/vUogcdiL51o7s -# huHIlB6QSUiQ24XYhRbbQCECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBS9zsZzz57Q -# lT5nrt/oitLv1OQ7tjAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAYfk8GzzpEVnG -# l7y6oXoytCb42Hx6TOA0+dkaBI36ftDE9tLubUa/xMbHB5rcNiRhFHZ93RefdPpc -# 4+FF0DAl5lP8xKAO+293RWPKDFOFIxgtZY08t8D9cSQpgGUzyw3lETZebNLEA17A -# /CTpA2F9uh8j84KygeEbj+bidWDiEfayoH2A5/5ywJJxIuLzFVHacvWxSCKoF9hl -# SrZSG5fXWS3namf4tt690UT6AGyWLFWe895coFPxm/m0UIMjjp9VRFH7nb3Ng2Q4 -# gPS9E5ZTMZ6nAlmUicDj0NXAs2wQuQrnYnbRAJ/DQW35qLo7Daw9AsItqjFhbMcG -# 68gDc4j74L2KYe/2goBHLwzSn5UDftS1HZI0ZRsqmNHI0TZvvUWX9ajm6SfLBTEt -# oTo6gLOX0UD/9rrhGjdkiCw4SwU5osClgqgiNMK5ndk2gxFlDXHCyLp5qB6BoPpc -# 82RhO0yCzoP9gv7zv2EocAWEsqE5+0Wmu5uarmfvcziLfU1SY240OZW8ld4sS8fn -# ybn/jDMmFAhazV1zH0QERWEsfLSpwkOXaImWNFJ5lmcnf1VTm6cmfasScYtElpjq -# Z9GooCmk1XFApORPs/PO43IcFmPRwagt00iQSw+rBeIH00KQq+FJT/62SB70g9g/ -# R8TS6k6b/wt2UWhqrW+Q8lw6Xzgex/YwggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjozMjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAtkQt/ebWSQ5DnG+aKRzPELCFE9GggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l +# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w +# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg +# ghHqMIIHIDCCBQigAwIBAgITMwAAAgTY4A4HlzJYmAABAAACBDANBgkqhkiG9w0B +# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOxQyWgwIhgPMjAyNTA4MjAyMjIzMzZaGA8yMDI1MDgyMTIyMjMzNlowdDA6 -# BgorBgEEAYRZCgQBMSwwKjAKAgUA7FDJaAIBADAHAgEAAgIVlDAHAgEAAgIS0DAK -# AgUA7FIa6AIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB -# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBgKHKamkpq0bjD -# yqwvKqJIh4MpErIorqas9UeflW4WuaBqfgZfRHLcGpHlqtym1lhV2dZ2ogn0xT9k -# blrYknIIa0VY/rw/5EJPSN3AU8QT66EflMjIdtZ1mRTIbhhSG507VUy0Ma03wsa4 -# ZgxrzsrC2Akqbo0sE4EHk6u48gr9EuouVyFCu2NmDge0NNYKlfEIOBhoXBCjFGyp -# XzyiOUHxGw5DNQ5LuCKh85oPcT35guLgYF4ooRfmIeBZ5XvCljB0/FAyCPXkrkz/ -# +O/SgmsoHiihw4dKupgzu3wAvU9zXC9OpiMg/42yXZEKK6UGjsBJGLapGoOR/oN8 -# ULas4ousMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh +# 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 -# MTACEzMAAAH4o6EmDAxASP4AAQAAAfgwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG -# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg0YICSU0eSPit -# I0RthpcPv7Wkgn/aCGFp7DiRtwr0Vv0wgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk -# MIG9BCDvzDPyXw1UkAUFYt8bR4UdjM90Qv5xnVaiKD3I0Zz3WjCBmDCBgKR+MHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+KOhJgwMQEj+AAEAAAH4 -# MCIEIACSAjjfH4EbGV3zJvpJyYuWul9UZtGP8mFk8LjT1VLUMA0GCSqGSIb3DQEB -# CwUABIICAL6l4VIGqueHG5JWz85DklYVrYTkeuxqLFr71VI5wxncetYJyWX3OmDr -# nUFRXTtRCRS3LRpAY05IuJdYsvbYAIlx5749qXfMZVK8yBtptdqNDPc4XEv5+OJC -# af7BZurpJqJH6eJy3kUkuIpRPTbY9EjLS3WhSwBXfTbzTlG9004NpowS0fcZbouf -# HVCMn0KejDkmtinKwsnUNUQTy9g/NvVRyV9UkcvrVQe6u4L0BHdLVaTaCrgDtlPJ -# T5gzW5piew4N3n556ycAyk8OFooWE6ghDB95Qh6Nhnj36B9rmEHu04TB4taOTDNs -# 8GBnvYLgMsNI9sNty1+LVgGH5GN+Wh1GmS4y8WtxkfP7+GHNuDbvi5SUJ/+Iod5x -# bT4WhVI6MGPe/RG3npPvHubiIpbiz1vXqmYowJ6hhLxQgR8A506EW4Ej9UMx/2iw -# oeDt1VpXD7x95SrIrzcEawg8CtL3oCYvEVVj0gff2H27tnIYfwHLMiTYHpsUlMps -# cmQ/ndgGYGQvlIXehigBosAc87ozJW5ieVQBNjjg88mWtP7EUets3uk/e/xurdFi -# 9780RIUs8i04mj5XfWXO1PhhJzeYkCTvSvP2FTQ7dxCM8z7vtc+g3NQaV64KS4P9 -# ViIPphUvERhvIq0uoQwJdI5Jtkon2xhKg7qbSSmnS6ztH8gv7FaR +# 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.3.1/internal/Merged_internal.ps1 b/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 similarity index 89% rename from Modules/MicrosoftTeams/7.3.1/internal/Merged_internal.ps1 rename to Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 index 5a8dd69c285b..057e669f868d 100644 --- a/Modules/MicrosoftTeams/7.3.1/internal/Merged_internal.ps1 +++ b/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 @@ -42,7 +42,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -237,7 +236,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -795,7 +793,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -968,7 +965,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -1187,7 +1183,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -1377,7 +1372,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -1554,7 +1548,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -1724,7 +1717,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -2000,7 +1992,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -2196,7 +2187,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -2419,7 +2409,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -2638,7 +2627,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -2797,11 +2785,11 @@ end { <# .Synopsis -Get a specific MainlineAttendantFlow Config for the given flow id. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/flowId. +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Description -Get a specific MainlineAttendantFlow Config for the given flow id. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/flowId. +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Example {{ Add code here }} .Example @@ -2832,7 +2820,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -2860,17 +2847,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantappointmentbookingflow #> -function Get-CsMainlineAttendantFlow { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +function Get-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${FlowId}, + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -2879,43 +2866,43 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] # . ${Descending}, - [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] # . ${ExcludeContent}, - [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] # . ${First}, - [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . ${NameFilter}, - [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] # . ${Skip}, - [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . ${SortBy}, - [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . @@ -2970,9 +2957,9 @@ begin { $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'; + 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) @@ -3012,40 +2999,140 @@ end { <# .Synopsis -Get requested Schema's data from MAS DB. +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. .Description -Get requested Schema's data from MAS DB. +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.IMasSchemaItem +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-csmasversionedschemadata +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow #> -function Get-CsMasVersionedSchemaData { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Get-CsMainlineAttendantFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] param( - [Parameter(Mandatory)] + [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] - # Schema to get from MAS DB - ${SchemaName}, + # . + ${ConfigurationId}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Identity. - ${Identity}, + # . + ${NameFilter}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Last X versions to fetch from MAS DB. - ${Version}, + # . + ${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')] @@ -3096,7 +3183,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3136,53 +3225,128 @@ end { <# .Synopsis -Get meeting migration status for a user or tenant +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. .Description -Get meeting migration status for a user or tenant +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.IMeetingMigrationStatusResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantquestionanswerflow #> -function Get-CsMeetingMigrationStatusModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] +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()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # . + ${Identity}, - [Parameter()] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, + # . + ${NameFilter}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, + # . + ${SortBy}, - [Parameter()] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # state of meeting Migration status - Pending, InProgress, Failed, Succeeded - ${State}, + # . + ${TypeFilter}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -3233,7 +3397,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3273,53 +3439,40 @@ end { <# .Synopsis -Get meeting migration status summary for a user or tenant +Get requested Schema's data from MAS DB. .Description -Get meeting migration status summary for a user or tenant +Get requested Schema's data from MAS DB. .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata #> -function Get-CsMeetingMigrationStatusSummaryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] +function Get-CsMasVersionedSchemaData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter()] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # Schema to get from MAS DB + ${SchemaName}, [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}, + # Last X versions to fetch from MAS DB. + ${Version}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -3370,7 +3523,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3410,41 +3563,41 @@ end { <# .Synopsis -Get meeting migration transaction history for a user +Get meeting migration status for a user or tenant .Description -Get meeting migration transaction history for a user +Get meeting migration status for a user or tenant .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern #> -function Get-CsMeetingMigrationTransactionHistoryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] +function Get-CsMeetingMigrationStatusModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(Mandatory)] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Identity. - # Supports UPN and SIP, Aad user object Id - ${UserIdentity}, + # end time filter - to get meeting migration status before endtime + ${EndTime}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # CorrelationId fetched when running start-csexmeetingmigration - ${CorrelationId}, + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] @@ -3452,6 +3605,12 @@ param( # 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] @@ -3501,7 +3660,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3541,23 +3700,54 @@ end { <# .Synopsis -Get Tenant's Migrationdetails. +Get meeting migration status summary for a user or tenant .Description -Get Tenant's Migrationdetails. +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.IGmtSchemaItem +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern #> -function Get-CsMoveTenantServiceInstanceTaskStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +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] @@ -3607,7 +3797,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3647,83 +3837,47 @@ end { <# .Synopsis -This cmdlet is point get operation on users. +Get meeting migration transaction history for a user .Description -This cmdlet is point get operation on users. +Get meeting migration transaction history for a user .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern #> -function Get-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +function Get-CsMeetingMigrationTransactionHistoryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # UserId of user. - ${Identity}, + # Identity. + # Supports UPN and SIP, Aad user object Id + ${UserIdentity}, - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # CorrelationId fetched when running start-csexmeetingmigration + ${CorrelationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -3774,8 +3928,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3815,86 +3968,23 @@ end { <# .Synopsis -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. +Get Tenant's Migrationdetails. .Description -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. +Get Tenant's Migrationdetails. .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus #> -function Get-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +function Get-CsMoveTenantServiceInstanceTaskStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] [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] @@ -3944,8 +4034,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -3985,11 +4074,9 @@ end { <# .Synopsis -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +This cmdlet is point get operation on users. .Description -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +This cmdlet is point get operation on users. .Example {{ Add code here }} .Example @@ -3998,7 +4085,7 @@ GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser .Notes COMPLEX PARAMETER PROPERTIES @@ -4018,7 +4105,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -4046,16 +4132,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser #> -function Get-CsOnlineApplicationInstanceAssociationStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] +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)] @@ -4114,8 +4200,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4155,11 +4241,11 @@ end { <# .Synopsis -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Description -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Example {{ Add code here }} .Example @@ -4168,7 +4254,7 @@ GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(defau .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -4188,7 +4274,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -4216,19 +4301,12 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation #> -function Get-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +function Get-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ApplicationId}, - [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] @@ -4236,20 +4314,12 @@ param( ${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] @@ -4299,10 +4369,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4342,9 +4410,11 @@ end { <# .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 @@ -4353,9 +4423,7 @@ end { .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -4375,7 +4443,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -4403,23 +4470,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus #> -function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +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] # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Version}, + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -4477,8 +4538,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4518,23 +4579,100 @@ end { <# .Synopsis - +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) .Description - +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) .Example {{ Add code here }} .Example {{ Add code here }} +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress +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-csonlineliscivicaddress +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile #> -function Get-CsOnlineLisCivicAddress { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +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] @@ -4584,7 +4722,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4624,11 +4765,9 @@ end { <# .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 @@ -4637,9 +4776,9 @@ GET Teams.VoiceApps/schedules?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -4659,7 +4798,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -4687,17 +4825,23 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer #> -function Get-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] +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='Get1', Mandatory)] + [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the schedule to retrieve. - ${Identity}, + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Version}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -4706,48 +4850,6 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${Descending}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExcludeContent}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${First}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${NameFilter}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${Skip}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SortBy}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TypeFilter}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -4797,9 +4899,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4848,26 +4949,14 @@ end { {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress #> -function Get-CsOnlineTelephoneNumberOrder { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse])] +function Get-CsOnlineLisCivicAddress { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] [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] @@ -4917,7 +5006,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -4957,9 +5046,11 @@ end { <# .Synopsis -Get Cs-OnlineVoicemailUserSettings. +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. .Description -Get Cs-OnlineVoicemailUserSettings. +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. .Example {{ Add code here }} .Example @@ -4968,7 +5059,9 @@ Get Cs-OnlineVoicemailUserSettings. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -4988,7 +5081,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -5016,16 +5108,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule #> -function Get-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +function Get-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # Id for the schedule to retrieve. ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -5035,6 +5127,48 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -5055,12 +5189,298 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use 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] @@ -5166,7 +5586,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -5350,6 +5769,220 @@ end { # 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 @@ -5508,7 +6141,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -5794,7 +6426,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -6007,7 +6638,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -6356,7 +6986,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -6571,7 +7200,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -6788,7 +7416,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -7702,6 +8329,9 @@ BODY : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -7734,6 +8364,7 @@ BODY : . [InclusionScopeGroupDialScopeGroupId ]: [InclusionScopeType ]: [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: [MainlineAttendantEnabled ]: [MenuDialByNameEnabled ]: [MenuDirectorySearchMethod ]: @@ -7765,6 +8396,9 @@ CALLFLOW : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -7798,6 +8432,9 @@ DEFAULTCALLFLOWGREETING : . MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -7933,6 +8570,12 @@ param( # . ${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] @@ -8302,6 +8945,9 @@ BODY : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -8328,6 +8974,9 @@ GREETING : . MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -8815,6 +9464,9 @@ BODY : . [DirectorySearchMethod ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -8839,6 +9491,9 @@ BODY : . MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -9019,6 +9674,9 @@ To create the parameters described below, construct a hash table containing the BODY : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -9053,6 +9711,24 @@ param( # . ${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] @@ -10347,7 +11023,7 @@ param( [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # Gets or sets the MRI of the first bot. - ${BotId}, + ${BotApplicationInstanceObjectId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -10372,7 +11048,7 @@ param( [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. - ${PairedApplication}, + ${PairedApplicationInstanceObjectId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -10513,7 +11189,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -10837,15 +11512,15 @@ Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tena {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMainlineAttendantAppointmentBookingFlowRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMainlineAttendantAppointmentBookingFlowResponse +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 : . +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. @@ -10855,12 +11530,12 @@ BODY : . https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantappointmentbookingflow #> function New-CsMainlineAttendantAppointmentBookingFlow { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMainlineAttendantAppointmentBookingFlowResponse])] +[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.ICreateMainlineAttendantAppointmentBookingFlowRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, @@ -12425,404 +13100,80 @@ end { <# .Synopsis - +Creates a draft of each Ivr Tag .Description - +Creates a draft of each Ivr Tag .Example -PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json -# open json in your favorite editor, make changes - -PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) - -{ - "id": "061fe692-7da7-4f65-a57b-0472cf0045af", - "name": "New Template", - "scope": "Tenant", - "shortDescription": "New Description", - "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", - "channelCount": 2, - "appCount": 2, - "modifiedOn": "2020-12-10T18:46:52.7231705Z", - "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", - "locale": "en-US", - "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" -} +{{ Add code here }} .Example -PS C:\> New-CsTeamTemplate ` --Locale en-US ` --DisplayName 'New Template' ` --ShortDescription 'New Description' ` --App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` --Channel @{ ` - displayName="General"; ` - id="General"; ` - isFavoriteByDefault=$true; ` -}, ` -@{ ` - displayName="test"; ` - id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` - isFavoriteByDefault=$false; ` -} - - -{ - "id": "061fe692-7da7-4f65-a57b-0472cf0045af", - "name": "New Template", - "scope": "Tenant", - "shortDescription": "New Description", - "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", - "channelCount": 2, - "appCount": 2, - "modifiedOn": "2020-12-10T18:46:52.7231705Z", - "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", - "locale": "en-US", - "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" -} +{{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +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. -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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id - -MEMBERSETTING : Member role settings for the team. - AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. - AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. - AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. - AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. - UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. - -MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. - AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. - AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. +BODY : . + [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-csteamtemplate +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstag #> -function New-CsTeamTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +function New-CsTag { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse])] [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='New', Mandatory)] - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Locale}, - - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] - # The client input for a request to create a template. - # Only admins from Config Api can perform this request. + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest] + # . # 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}, + [System.Int32] + # . + ${TagDetailCallPriority}, [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}, + # . + ${TagDetailEnableSharedVoicemailSystemPromptSuppression}, [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}, + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableTranscription}, [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}, + # . + ${TagDetailId}, [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}, + # . + ${TagDetailType}, [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}, + # 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')] @@ -12873,10 +13224,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewExpanded'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentity'; - NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentityExpanded'; + 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) @@ -12916,51 +13265,76 @@ end { <# .Synopsis -Invokes tenant migration +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template .Description -Invokes tenant migration +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.ITenantMigration +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult +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 : Payload for tenant migration - [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. - [TargetServiceInstance ]: Target service instance where tenant is to be migrated. +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-cstenantcrossmigration +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstagstemplate #> -function New-CsTenantCrossMigration { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +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.ITenantMigration] - # Payload for tenant migration + [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] - # MoveOption can take following values PrepForMove, StartDualSync, Finalize. - ${MoveOption}, + # Description of the IVR tag template. + ${Description}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # Target service instance where tenant is to be migrated. - ${TargetServiceInstance}, + # Gets or sets the 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')] @@ -13011,8 +13385,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_NewExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_NewExpanded'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -13052,23 +13426,167 @@ end { <# .Synopsis -Adds delegate with validations in bvd + .Description -Adds delegate with validations in bvd + .Example -{{ Add code here }} +PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json +# open json in your favorite editor, make changes + +PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} .Example -{{ Add code here }} +PS C:\> New-CsTeamTemplate ` +-Locale en-US ` +-DisplayName 'New Template' ` +-ShortDescription 'New Description' ` +-App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` +-Channel @{ ` + displayName="General"; ` + id="General"; ` + isFavoriteByDefault=$true; ` +}, ` +@{ ` + displayName="test"; ` + id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` + isFavoriteByDefault=$false; ` +} + + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate .Outputs -System.Boolean +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 ]: @@ -13083,7 +13601,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -13110,49 +13627,202 @@ INPUTOBJECT : Identity Parameter [UserId ]: UserId. [Version ]: [WfmTeamId ]: Team Id + +MEMBERSETTING : Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + +MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csusercallingdelegate +https://docs.microsoft.com/en-us/powershell/module/teams/new-csteamtemplate #> -function New-CsUserCallingDelegate { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +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] # . - ${Delegate}, - - [Parameter(ParameterSetName='New', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, + ${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(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${MakeCalls}, + [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(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ManageSettings}, + [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(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [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] - # . - ${ReceiveCalls}, + # 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')] @@ -13174,12 +13844,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -13209,8 +13873,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_New'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_NewViaIdentity'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-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) @@ -13250,105 +13916,51 @@ end { <# .Synopsis - +Invokes tenant migration .Description - +Invokes tenant migration .Example {{ Add code here }} .Example {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +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 : 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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +BODY : Payload for tenant migration + [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. + [TargetServiceInstance ]: Target service instance where tenant is to be migrated. .Link -https://docs.microsoft.com/en-us/powershell/module/teams/complete-csonlinetelephonenumberorder +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstenantcrossmigration #> -function Complete-CsOnlineTelephoneNumberOrder { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='CompleteExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function New-CsTenantCrossMigration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Complete', Mandatory)] - [Parameter(ParameterSetName='CompleteExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${OrderId}, - - [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CompleteViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Complete', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest] - # UpdateSearchOrderRequest + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration] + # Payload for tenant migration # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, - [Parameter(ParameterSetName='CompleteExpanded')] - [Parameter(ParameterSetName='CompleteViaIdentityExpanded')] + [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Action}, + # 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')] @@ -13370,12 +13982,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -13405,10 +14011,939 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Complete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_Complete'; - CompleteExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteExpanded'; - CompleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentity'; - CompleteViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentityExpanded'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-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) @@ -13443,11 +14978,11 @@ end { <# .Synopsis -Get Audio file content. -GET Teams.MediaStorage/audiofile/appId/audiofileId/content +Get User. +Get-CsAadUser .Description -Get Audio file content. -GET Teams.MediaStorage/audiofile/appId/audiofileId/content +Get User. +Get-CsAadUser .Example {{ Add code here }} .Example @@ -13456,7 +14991,7 @@ GET Teams.MediaStorage/audiofile/appId/audiofileId/content .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.String +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser .Notes COMPLEX PARAMETER PROPERTIES @@ -13476,7 +15011,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -13504,25 +15038,20 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/export-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/get-csaaduser #> -function Export-CsOnlineAudioFile { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false)] +function Get-CsAadUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Export', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ApplicationId}, - - [Parameter(ParameterSetName='Export', Mandatory)] + [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='ExportViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -13578,8 +15107,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Export = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_Export'; - ExportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_ExportViaIdentity'; + 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) @@ -13614,48 +15143,104 @@ end { <# .Synopsis -Find group. -GET /Teams.VoiceApps/groups?. +Gets auto attendant holidays. +GET Teams.VoiceApps/auto-attendants/identity/holidays. .Description -Find group. -GET /Teams.VoiceApps/groups?. +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.IGetGroupsResponse +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/find-csgroup +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantholidays #> -function Find-CsGroup { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse])] -[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] +function Get-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse])] +[CmdletBinding(DefaultParameterSetName='Get', 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(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.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether to return only groups enabled for mail. - ${MailEnabledOnly}, + [System.String[]] + # . + ${Name}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] - # Gets or sets max results to return. - ${MaxResults}, + # . + ${ResponseType}, [Parameter()] + [AllowEmptyCollection()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Gets or sets search query. - ${SearchQuery}, + [System.String[]] + # . + ${Year}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -13706,7 +15291,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsGroup_Find'; + 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) @@ -13741,58 +15327,91 @@ end { <# .Synopsis -Search for application instances that match the search criteria. +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/status/identity .Description -Search for application instances that match the search criteria. +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.IGetApplicationInstancesResponse +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/find-csonlineapplicationinstance +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantstatus #> -function Find-CsOnlineApplicationInstance { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse])] -[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] +function Get-CsAutoAttendantStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3])] +[CmdletBinding(DefaultParameterSetName='Get', 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')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${SearchQuery}, + # 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.Management.Automation.SwitchParameter] + [System.String[]] # . - ${UnAssociatedOnly}, + ${IncludeResources}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -13843,7 +15462,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsOnlineApplicationInstance_Find'; + 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) @@ -13878,25 +15498,85 @@ end { <# .Synopsis -Get Tenant from AAD. -Get-CsAadTenant +Get specific language information. +GET Teams.VoiceApps/supported-languages/identity. .Description -Get Tenant from AAD. -Get-CsAadTenant +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.IAadTenant +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-csaadtenant +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedlanguage #> -function Get-CsAadTenant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant])] +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] @@ -13946,7 +15626,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadTenant_Get'; + 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) @@ -13981,11 +15662,11 @@ end { <# .Synopsis -Get User. -Get-CsAadUser +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. .Description -Get User. -Get-CsAadUser +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. .Example {{ Add code here }} .Example @@ -13994,7 +15675,7 @@ Get-CsAadUser .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -14014,7 +15695,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -14042,17 +15722,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csaaduser +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedtimezone #> -function Get-CsAadUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] +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] - # identity. - # Supports UserId as Guid or UPN as String. + # Id for the supported timezone to retrieve the information for. ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -14111,8 +15790,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14147,106 +15826,25 @@ end { <# .Synopsis -Gets auto attendant holidays. -GET Teams.VoiceApps/auto-attendants/identity/holidays. +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. .Description -Gets auto attendant holidays. -GET Teams.VoiceApps/auto-attendants/identity/holidays. +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. .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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantholidays +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendanttenantinformation #> -function Get-CsAutoAttendantHolidays { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse])] +function Get-CsAutoAttendantTenantInformation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse])] [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] @@ -14296,8 +15894,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantTenantInformation_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14333,10 +15930,10 @@ end { <# .Synopsis Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/status/identity +GET Teams.VoiceApps/auto-attendants/identity. .Description Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/status/identity +GET Teams.VoiceApps/auto-attendants/identity. .Example {{ Add code here }} .Example @@ -14345,7 +15942,9 @@ GET Teams.VoiceApps/auto-attendants/status/identity .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3 +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -14365,7 +15964,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -14393,11 +15991,11 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendant #> -function Get-CsAutoAttendantStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +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')] @@ -14412,12 +16010,53 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [AllowEmptyCollection()] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String[]] + [System.Management.Automation.SwitchParameter] # . - ${IncludeResources}, + ${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')] @@ -14468,8 +16107,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_GetViaIdentity'; + 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) @@ -14504,11 +16144,9 @@ end { <# .Synopsis -Get specific language information. -GET Teams.VoiceApps/supported-languages/identity. +Gets raw data from bvd tables. .Description -Get specific language information. -GET Teams.VoiceApps/supported-languages/identity. +Gets raw data from bvd tables. .Example {{ Add code here }} .Example @@ -14517,7 +16155,7 @@ GET Teams.VoiceApps/supported-languages/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity .Notes COMPLEX PARAMETER PROPERTIES @@ -14537,7 +16175,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -14565,17 +16202,29 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedlanguage +https://docs.microsoft.com/en-us/powershell/module/teams/get-csbusinessvoicedirectorydiagnosticdata #> -function Get-CsAutoAttendantSupportedLanguage { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse])] +function Get-CsBusinessVoiceDirectoryDiagnosticData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the supported language to retrieve the information for. - ${Identity}, + # 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')] @@ -14584,6 +16233,18 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Optional resultSize. + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Optional row key. + ${RowKey}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -14633,8 +16294,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_GetViaIdentity'; + 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) @@ -14669,11 +16330,11 @@ end { <# .Synopsis -Get supported timezone information. -GET Teams.VoiceApps/supported-timezones/identity. +Get call queues. +GET Teams.VoiceApps/callqueues?. .Description -Get supported timezone information. -GET Teams.VoiceApps/supported-timezones/identity. +Get call queues. +GET Teams.VoiceApps/callqueues?. .Example {{ Add code here }} .Example @@ -14682,7 +16343,9 @@ GET Teams.VoiceApps/supported-timezones/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -14702,7 +16365,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -14730,16 +16392,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedtimezone +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscallqueue #> -function Get-CsAutoAttendantSupportedTimeZone { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse])] +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='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', 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)] @@ -14749,6 +16411,56 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter()] + [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] @@ -14798,8 +16510,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14834,25 +16547,135 @@ end { <# .Synopsis -Get tenant information specific to Voice Apps by the tenant Id. -GET Teams.VoiceApps/information. +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. .Description -Get tenant information specific to Voice Apps by the tenant Id. -GET Teams.VoiceApps/information. +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.IGetTenantInformationResponse +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-csautoattendanttenantinformation +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscompliancerecordingforcallqueuetemplate #> -function Get-CsAutoAttendantTenantInformation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse])] +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] @@ -14902,7 +16725,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantTenantInformation_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -14937,11 +16762,9 @@ end { <# .Synopsis -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/identity. +Get all tenant available configurations .Description -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/identity. +Get all tenant available configurations .Example {{ Add code here }} .Example @@ -14950,9 +16773,9 @@ GET Teams.VoiceApps/auto-attendants/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse +System.String .Notes COMPLEX PARAMETER PROPERTIES @@ -14972,7 +16795,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -15000,72 +16822,44 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration #> -function Get-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +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] - # Id for the auto attendant to retrieve. - ${Identity}, + # 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(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')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${SortBy}, + # Api Version + ${ApiVersion}, - [Parameter(ParameterSetName='Get1')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . - ${TypeFilter}, + ${SchemaVersion}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -15116,9 +16910,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_GetViaIdentity'; + 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) @@ -15153,9 +16948,11 @@ end { <# .Synopsis -Gets raw data from bvd tables. +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Description -Gets raw data from bvd tables. +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. .Example {{ Add code here }} .Example @@ -15164,7 +16961,9 @@ Gets raw data from bvd tables. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -15184,7 +16983,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -15212,29 +17010,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csbusinessvoicedirectorydiagnosticdata +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantappointmentbookingflow #> -function Get-CsBusinessVoiceDirectoryDiagnosticData { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity])] +function Get-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [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)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Bvd table name. - ${Table}, + # . + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -15243,17 +17029,47 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] - # Optional resultSize. - ${ResultSize}, + # . + ${First}, - [Parameter()] + [Parameter(ParameterSetName='Get')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Optional row key. - ${RowKey}, + # . + ${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')] @@ -15304,8 +17120,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_GetViaIdentity'; + 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) @@ -15340,11 +17157,11 @@ end { <# .Synopsis -Get call queues. -GET Teams.VoiceApps/callqueues?. +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. .Description -Get call queues. -GET Teams.VoiceApps/callqueues?. +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 @@ -15353,9 +17170,9 @@ GET Teams.VoiceApps/callqueues?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -15375,7 +17192,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -15403,13 +17219,13 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow #> -function Get-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +function Get-CsMainlineAttendantFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . @@ -15422,51 +17238,55 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] + [System.String] # . - ${Descending}, + ${ConfigurationId}, - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Management.Automation.SwitchParameter] # . - ${ExcludeContent}, + ${Descending}, - [Parameter()] + [Parameter(ParameterSetName='Get1')] [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}, + # . + ${ExcludeContent}, - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] # . ${First}, - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . ${NameFilter}, - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.Int32] # . ${Skip}, - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] # . ${SortBy}, - [Parameter(ParameterSetName='Get')] + [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] # . @@ -15521,9 +17341,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_GetViaIdentity'; + 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) @@ -15558,11 +17378,11 @@ end { <# .Synopsis -Get all Compliance Recording Configs. -GET /Teams.VoiceApps/compliance-recording?. +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. .Description -Get all Compliance Recording Configs. -GET /Teams.VoiceApps/compliance-recording?. +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. .Example {{ Add code here }} .Example @@ -15571,9 +17391,9 @@ GET /Teams.VoiceApps/compliance-recording?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -15593,7 +17413,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -15621,16 +17440,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-cscompliancerecordingforcallqueuetemplate +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantquestionanswerflow #> -function Get-CsComplianceRecordingForCallQueueTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse])] +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] - # Compliance Recording Id. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -15658,12 +17477,6 @@ param( # . ${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] @@ -15737,9 +17550,9 @@ begin { $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'; + 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) @@ -15774,105 +17587,40 @@ end { <# .Synopsis -Get all tenant available configurations +Get requested Schema's data from MAS DB. .Description -Get all tenant available configurations +Get requested Schema's data from MAS DB. .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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata #> -function Get-CsConfiguration { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration], [System.String])] +function Get-CsMasVersionedSchemaData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] [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')] + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [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}, + # Schema to get from MAS DB + ${SchemaName}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Api Version - ${ApiVersion}, + # Identity. + ${Identity}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${SchemaVersion}, + # Last X versions to fetch from MAS DB. + ${Version}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -15923,10 +17671,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity1'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -15961,129 +17706,53 @@ end { <# .Synopsis -Get a specific MainlineAttendantFlow Config for the given flow id. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/flowId. +Get meeting migration status for a user or tenant .Description -Get a specific MainlineAttendantFlow Config for the given flow id. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/flowId. +Get meeting migration status for a user or tenant .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern #> -function Get-CsMainlineAttendantFlow { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +function Get-CsMeetingMigrationStatusModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${FlowId}, - - [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')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${First}, + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, - [Parameter(ParameterSetName='Get1')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${NameFilter}, + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, - [Parameter(ParameterSetName='Get1')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${Skip}, + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, - [Parameter(ParameterSetName='Get1')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${SortBy}, + # start time filter - to get meeting migration status after starttime + ${StartTime}, - [Parameter(ParameterSetName='Get1')] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # . - ${TypeFilter}, + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -16134,9 +17803,7 @@ begin { $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'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16171,40 +17838,53 @@ end { <# .Synopsis -Get requested Schema's data from MAS DB. +Get meeting migration status summary for a user or tenant .Description -Get requested Schema's data from MAS DB. +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.IMasSchemaItem +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern #> -function Get-CsMasVersionedSchemaData { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] +function Get-CsMeetingMigrationStatusSummaryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(Mandatory)] + [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Schema to get from MAS DB - ${SchemaName}, + # 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] - # Last X versions to fetch from MAS DB. - ${Version}, + # 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')] @@ -16255,7 +17935,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16290,41 +17970,41 @@ end { <# .Synopsis -Get meeting migration status for a user or tenant +Get meeting migration transaction history for a user .Description -Get meeting migration status for a user or tenant +Get meeting migration transaction history for a user .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern #> -function Get-CsMeetingMigrationStatusModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] +function Get-CsMeetingMigrationTransactionHistoryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter()] + [Parameter(Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # Identity. + # Supports UPN and SIP, Aad user object Id + ${UserIdentity}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, + # CorrelationId fetched when running start-csexmeetingmigration + ${CorrelationId}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, + # end time filter - to get meeting migration status before endtime + ${EndTime}, [Parameter()] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] @@ -16332,12 +18012,6 @@ param( # 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] @@ -16387,7 +18061,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16422,54 +18096,23 @@ end { <# .Synopsis -Get meeting migration status summary for a user or tenant +Get Tenant's Migrationdetails. .Description -Get meeting migration status summary for a user or tenant +Get Tenant's Migrationdetails. .Example {{ Add code here }} .Example {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus #> -function Get-CsMeetingMigrationStatusSummaryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] +function Get-CsMoveTenantServiceInstanceTaskStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] [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] @@ -16519,7 +18162,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16554,47 +18197,82 @@ end { <# .Synopsis -Get meeting migration transaction history for a user +This cmdlet is point get operation on users. .Description -Get meeting migration transaction history for a user +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.IMeetingMigrationTransactionHistoryResponse +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-csmeetingmigrationtransactionhistorymodern +https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser #> -function Get-CsMeetingMigrationTransactionHistoryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] +function Get-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - # Supports UPN and SIP, Aad user object Id - ${UserIdentity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # CorrelationId fetched when running start-csexmeetingmigration - ${CorrelationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, + # UserId of user. + ${Identity}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -16645,7 +18323,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; + 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) @@ -16680,23 +18359,85 @@ end { <# .Synopsis -Get Tenant's Migrationdetails. +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Description -Get Tenant's Migrationdetails. +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.IGmtSchemaItem +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-csmovetenantserviceinstancetaskstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus #> -function Get-CsMoveTenantServiceInstanceTaskStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +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] @@ -16746,7 +18487,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; + 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) @@ -16781,9 +18523,11 @@ end { <# .Synopsis -This cmdlet is point get operation on users. +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Description -This cmdlet is point get operation on users. +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. .Example {{ Add code here }} .Example @@ -16792,7 +18536,7 @@ This cmdlet is point get operation on users. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -16812,7 +18556,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -16840,16 +18583,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation #> -function Get-CsOdcUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +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] - # UserId of user. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -16908,8 +18651,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -16944,11 +18687,11 @@ end { <# .Synopsis -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) .Description -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +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 @@ -16957,7 +18700,7 @@ GET Teams.VoiceApps/applicationinstanceassociations/identity/status. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto .Notes COMPLEX PARAMETER PROPERTIES @@ -16977,7 +18720,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -17005,12 +18747,19 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile #> -function Get-CsOnlineApplicationInstanceAssociationStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +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] @@ -17018,12 +18767,20 @@ param( ${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] @@ -17073,8 +18830,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-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) @@ -17109,11 +18868,9 @@ end { <# .Synopsis -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. + .Description -Get application instance association. -GET Teams.VoiceApps/applicationinstanceassociations/identity. + .Example {{ Add code here }} .Example @@ -17122,7 +18879,9 @@ GET Teams.VoiceApps/applicationinstanceassociations/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -17142,7 +18901,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -17170,17 +18928,23 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer #> -function Get-CsOnlineApplicationInstanceAssociation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${CountryOrRegion}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Version}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -17238,8 +19002,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17274,101 +19038,23 @@ end { <# .Synopsis -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) + .Description -Get Audio file metedata with expiring download link. -GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) + .Example {{ Add code here }} .Example {{ Add code here }} -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.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 - [FlowId ]: - [GroupId ]: The ID of a group whose policy assignments will be returned. - [Id ]: - [Identity ]: - [Locale ]: - [LocationId ]: Location id. - [MemberId ]: ObjectId of the to-be-added member. - [Name ]: Setting name - [ObjectId ]: Application instance object ID. - [OdataId ]: A composite URI of a template. - [OperationId ]: The ID of a batch policy assignment operation. - [OrchestrationId ]: The Id of specific Orchestration - [OrderId ]: - [OwnerId ]: ObjectId of the group owner - [PackageName ]: The name of a specific policy package - [PartitionKey ]: PartitionKey of the table. - [PolicyType ]: The policy type for which group policy assignments will be returned. - [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. - [Region ]: Region to query Bvd table. - [SubnetId ]: - [Table ]: Bvd table name. - [TeamId ]: Team Id - [TelephoneNumber ]: An instance of hybrid telephone number. - [TenantId ]: TenantId. Guid - [UserId ]: UserId. - [Version ]: - [WfmTeamId ]: Team Id +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress #> -function Get-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +function Get-CsOnlineLisCivicAddress { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ApplicationId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # Identity Parameter - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='Get')] - [Parameter(ParameterSetName='GetViaIdentity')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${DurationInMin}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -17418,10 +19104,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17456,9 +19139,11 @@ end { <# .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 @@ -17467,9 +19152,9 @@ end { .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -17489,7 +19174,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -17517,23 +19201,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule #> -function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +function Get-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${Version}, + # Id for the schedule to retrieve. + ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -17542,6 +19220,48 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -17591,8 +19311,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-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) @@ -17636,14 +19357,26 @@ end { {{ Add code here }} .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder #> -function Get-CsOnlineLisCivicAddress { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +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] @@ -17693,7 +19426,7 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; } $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) @@ -17728,11 +19461,9 @@ end { <# .Synopsis -Get all schedules for a tenant. -GET Teams.VoiceApps/schedules?. +Get Cs-OnlineVoicemailUserSettings. .Description -Get all schedules for a tenant. -GET Teams.VoiceApps/schedules?. +Get Cs-OnlineVoicemailUserSettings. .Example {{ Add code here }} .Example @@ -17741,9 +19472,7 @@ GET Teams.VoiceApps/schedules?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings .Notes COMPLEX PARAMETER PROPERTIES @@ -17763,7 +19492,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -17791,16 +19519,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting #> -function Get-CsOnlineSchedule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] +function Get-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] [CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] param( - [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Get', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # Id for the schedule to retrieve. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -17810,48 +19538,6 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${Descending}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExcludeContent}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${First}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${NameFilter}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${Skip}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SortBy}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TypeFilter}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Management.Automation.SwitchParameter] @@ -17872,120 +19558,11 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - # The URI for the proxy server to use - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - # Credentials for a proxy server to use for the remote call - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Use 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}, + # Returns true when the command succeeds + ${PassThru}, [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] @@ -18016,7 +19593,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; + 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) @@ -18051,9 +19629,11 @@ end { <# .Synopsis -Get Cs-OnlineVoicemailUserSettings. +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. .Description -Get Cs-OnlineVoicemailUserSettings. +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. .Example {{ Add code here }} .Example @@ -18062,7 +19642,9 @@ Get Cs-OnlineVoicemailUserSettings. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -18082,7 +19664,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -18110,16 +19691,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting +https://docs.microsoft.com/en-us/powershell/module/teams/get-cssharedcallqueuehistorytemplate #> -function Get-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +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='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . + # Shared Call Queue History Id. ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -18129,6 +19710,54 @@ param( # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.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] @@ -18149,12 +19778,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -18184,8 +19807,9 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_GetViaIdentity'; + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-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) @@ -18220,11 +19844,11 @@ end { <# .Synopsis -Get all Shared Call Queue History Configs. -GET /Teams.VoiceApps/shared-call-queue-history?. +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. .Description -Get all Shared Call Queue History Configs. -GET /Teams.VoiceApps/shared-call-queue-history?. +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. .Example {{ Add code here }} .Example @@ -18233,9 +19857,9 @@ GET /Teams.VoiceApps/shared-call-queue-history?. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse .Notes COMPLEX PARAMETER PROPERTIES @@ -18255,7 +19879,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -18283,16 +19906,16 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-cssharedcallqueuehistorytemplate +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstagstemplate #> -function Get-CsSharedCallQueueHistoryTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse])] +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] - # Shared Call Queue History Id. + # . ${Identity}, [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] @@ -18320,12 +19943,6 @@ param( # . ${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] @@ -18399,9 +20016,9 @@ begin { $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'; + 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) @@ -18587,7 +20204,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -18863,7 +20479,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -19071,7 +20686,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -19410,7 +21024,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -19620,7 +21233,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -19832,7 +21444,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -20872,6 +22483,9 @@ BODY : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -20898,6 +22512,9 @@ GREETING : . MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -21367,6 +22984,9 @@ To create the parameters described below, construct a hash table containing the BODY : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -21401,6 +23021,24 @@ param( # . ${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] @@ -21595,6 +23233,9 @@ BODY : . [DirectorySearchMethod ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -21619,6 +23260,9 @@ BODY : . MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -21962,6 +23606,9 @@ BODY : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -21994,6 +23641,7 @@ BODY : . [InclusionScopeGroupDialScopeGroupId ]: [InclusionScopeType ]: [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: [MainlineAttendantEnabled ]: [MenuDialByNameEnabled ]: [MenuDirectorySearchMethod ]: @@ -22025,6 +23673,9 @@ CALLFLOW : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -22058,6 +23709,9 @@ DEFAULTCALLFLOWGREETING : . MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -22193,6 +23847,12 @@ param( # . ${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] @@ -23316,7 +24976,7 @@ param( [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # Gets or sets the MRI of the first bot. - ${BotId}, + ${BotApplicationInstanceObjectId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -23341,7 +25001,7 @@ param( [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. - ${PairedApplication}, + ${PairedApplicationInstanceObjectId}, [Parameter(ParameterSetName='NewExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] @@ -23477,7 +25137,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -23791,15 +25450,15 @@ Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tena {{ Add code here }} .Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMainlineAttendantAppointmentBookingFlowRequest +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMainlineAttendantAppointmentBookingFlowResponse +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 : . +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. @@ -23809,12 +25468,12 @@ BODY : . https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantappointmentbookingflow #> function New-CsMainlineAttendantAppointmentBookingFlow { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMainlineAttendantAppointmentBookingFlowResponse])] +[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.ICreateMainlineAttendantAppointmentBookingFlowRequest] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest] # . # To construct, see NOTES section for BODY properties and create a hash table. ${Body}, @@ -25327,6 +26986,322 @@ end { } } +<# +.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 @@ -25504,7 +27479,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -25977,7 +27951,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -26181,7 +28154,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -26382,11 +28354,339 @@ end { <# .Synopsis -Deletes a specific AutoAttendant. -DELETE Teams.VoiceApps/auto-attendants/identity. +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 -Deletes a specific AutoAttendant. -DELETE Teams.VoiceApps/auto-attendants/identity. +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. .Example {{ Add code here }} .Example @@ -26415,7 +28715,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -26443,17 +28742,17 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscompliancerecordingforcallqueuetemplate #> -function Remove-CsAutoAttendant { +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 for the auto attendant to be removed. - ${Identity}, + # . + ${Id}, [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -26511,8 +28810,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; + 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) @@ -26547,11 +28846,9 @@ end { <# .Synopsis -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Delete Configuration .Description -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Delete Configuration .Example {{ Add code here }} .Example @@ -26560,7 +28857,7 @@ DELETE Teams.VoiceApps/callqueues/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES @@ -26580,7 +28877,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -26608,19 +28904,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration #> -function Remove-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='Delete', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${ConfigName}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -26647,6 +28949,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -26676,8 +28984,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; + 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) @@ -26712,11 +29020,11 @@ end { <# .Synopsis -Delete Compliance Recording config. -DELETE /Teams.VoiceApps/compliance-recording/identity. +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. .Description -Delete Compliance Recording config. -DELETE /Teams.VoiceApps/compliance-recording/identity. +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. .Example {{ Add code here }} .Example @@ -26745,7 +29053,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -26773,9 +29080,9 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscompliancerecordingforcallqueuetemplate +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantappointmentbookingflow #> -function Remove-CsComplianceRecordingForCallQueueTemplate { +function Remove-CsMainlineAttendantAppointmentBookingFlow { [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] [CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( @@ -26783,7 +29090,7 @@ param( [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Id}, + ${Identity}, [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -26841,8 +29148,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_RemoveViaIdentity'; + 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) @@ -26877,9 +29184,11 @@ end { <# .Synopsis -Delete Configuration +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. .Description -Delete Configuration +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. .Example {{ Add code here }} .Example @@ -26888,7 +29197,7 @@ Delete Configuration .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES @@ -26908,7 +29217,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -26936,25 +29244,19 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantquestionanswerflow #> -function Remove-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${ConfigType}, + ${Identity}, - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -26981,12 +29283,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -27016,8 +29312,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; - DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; + 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) @@ -27085,7 +29381,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -27250,7 +29545,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -27427,7 +29721,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -27717,7 +30010,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -27912,7 +30204,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -28042,6 +30333,170 @@ end { } } +<# +.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 @@ -28075,7 +30530,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -28557,6 +31011,9 @@ BODY : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -28591,6 +31048,7 @@ BODY : . [InclusionScopeGroupDialScopeGroupId ]: [InclusionScopeType ]: [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: [MainlineAttendantEnabled ]: [MenuDialByNameEnabled ]: [MenuDirectorySearchMethod ]: @@ -28658,6 +31116,9 @@ CALLFLOW : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -28703,7 +31164,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -28733,6 +31193,9 @@ INPUTOBJECT : Identity Parameter MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -28939,6 +31402,13 @@ param( # . ${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')] @@ -29329,7 +31799,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -30160,7 +32629,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -30222,7 +32690,7 @@ param( [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # Gets or sets the MRI of the first bot. - ${BotId}, + ${BotApplicationInstanceObjectId}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] @@ -30259,7 +32727,7 @@ param( [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. - ${PairedApplication}, + ${PairedApplicationInstanceObjectId}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] @@ -30399,7 +32867,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -30427,67 +32894,549 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/set-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-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${ConfigType}, + # Flow Identity. + ${Identity}, - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.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] - # Api Version - ${ApiVersion}, + # Gets or sets the configuration ID of the mainline attendant question and answer flow. + ${ConfigurationId}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${SchemaVersion}, + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.String] + # A brief description of the question and answer flow. + ${Identity1}, - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Identity}, + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, + [System.String] + # Gets or sets the 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')] @@ -30509,12 +33458,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -30544,10 +33487,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-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) @@ -30622,7 +33565,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -30839,7 +33781,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -31050,7 +33991,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -31487,7 +34427,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -31976,7 +34915,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -32236,7 +35174,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -32674,7 +35611,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -32851,6 +35787,235 @@ end { } } +<# +.Synopsis +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Description +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel +.Outputs +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 @@ -33113,7 +36278,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -33348,7 +36512,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -33632,7 +36795,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -33825,7 +36987,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -34065,7 +37226,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -34234,7 +37394,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -34593,7 +37752,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -34832,7 +37990,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -34860,17 +38017,355 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant +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-CsAutoAttendant { +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 for the auto attendant to be removed. - ${Identity}, + # . + ${Id}, [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -34928,8 +38423,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; + 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) @@ -34969,11 +38464,9 @@ end { <# .Synopsis -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Delete Configuration .Description -Remove call queue. -DELETE Teams.VoiceApps/callqueues/identity. +Delete Configuration .Example {{ Add code here }} .Example @@ -34982,7 +38475,7 @@ DELETE Teams.VoiceApps/callqueues/identity. .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +System.Boolean .Notes COMPLEX PARAMETER PROPERTIES @@ -35002,7 +38495,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -35030,19 +38522,25 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration #> -function Remove-CsCallQueue { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='Delete', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Identity}, + ${ConfigName}, - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -35069,6 +38567,12 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -35098,8 +38602,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; + 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) @@ -35139,11 +38643,11 @@ end { <# .Synopsis -Delete Compliance Recording config. -DELETE /Teams.VoiceApps/compliance-recording/identity. +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. .Description -Delete Compliance Recording config. -DELETE /Teams.VoiceApps/compliance-recording/identity. +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. .Example {{ Add code here }} .Example @@ -35172,7 +38676,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -35200,9 +38703,9 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscompliancerecordingforcallqueuetemplate +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantappointmentbookingflow #> -function Remove-CsComplianceRecordingForCallQueueTemplate { +function Remove-CsMainlineAttendantAppointmentBookingFlow { [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] [CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( @@ -35210,7 +38713,7 @@ param( [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${Id}, + ${Identity}, [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] @@ -35268,8 +38771,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_RemoveViaIdentity'; + 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) @@ -35309,9 +38812,11 @@ end { <# .Synopsis -Delete Configuration +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. .Description -Delete Configuration +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. .Example {{ Add code here }} .Example @@ -35320,7 +38825,7 @@ Delete Configuration .Inputs Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity .Outputs -System.Boolean +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord .Notes COMPLEX PARAMETER PROPERTIES @@ -35340,7 +38845,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -35368,25 +38872,19 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantquestionanswerflow #> -function Remove-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Remove-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, - - [Parameter(ParameterSetName='Delete', Mandatory)] + [Parameter(ParameterSetName='Remove', Mandatory)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] # . - ${ConfigType}, + ${Identity}, - [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter @@ -35413,12 +38911,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -35448,8 +38940,8 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; - DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; + 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) @@ -35522,7 +39014,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -35692,7 +39183,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -35874,7 +39364,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -36174,7 +39663,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -36374,7 +39862,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -36509,6 +39996,175 @@ end { # 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 @@ -36542,7 +40198,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -37039,6 +40694,9 @@ BODY : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -37073,6 +40731,7 @@ BODY : . [InclusionScopeGroupDialScopeGroupId ]: [InclusionScopeType ]: [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: [MainlineAttendantEnabled ]: [MenuDialByNameEnabled ]: [MenuDirectorySearchMethod ]: @@ -37140,6 +40799,9 @@ CALLFLOW : . [MenuName ]: [MenuOption ]: [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -37185,7 +40847,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -37215,6 +40876,9 @@ INPUTOBJECT : Identity Parameter MENUOPTION : . [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: [AudioFilePromptDownloadUri ]: [AudioFilePromptFileName ]: [AudioFilePromptId ]: @@ -37421,6 +41085,13 @@ param( # . ${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')] @@ -37816,7 +41487,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -38652,7 +42322,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -38714,7 +42383,7 @@ param( [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] # Gets or sets the MRI of the first bot. - ${BotId}, + ${BotApplicationInstanceObjectId}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] @@ -38751,7 +42420,7 @@ param( [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. - ${PairedApplication}, + ${PairedApplicationInstanceObjectId}, [Parameter(ParameterSetName='SetExpanded')] [Parameter(ParameterSetName='SetViaIdentityExpanded')] @@ -38896,7 +42565,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -38924,67 +42592,559 @@ INPUTOBJECT : Identity Parameter [Version ]: [WfmTeamId ]: Team Id .Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration +https://docs.microsoft.com/en-us/powershell/module/teams/set-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-CsConfiguration { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +function Set-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ConfigName}, - - [Parameter(ParameterSetName='Update', Mandatory)] - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [System.String] - # . - ${ConfigType}, + # Flow Identity. + ${Identity}, - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] # Identity Parameter # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. ${InputObject}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.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] - # Api Version - ${ApiVersion}, + # Gets or sets the configuration ID of the mainline attendant question and answer flow. + ${ConfigurationId}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${SchemaVersion}, + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, + [System.String] + # A brief description of the question and answer flow. + ${Identity1}, - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] [System.String] - # . - ${Identity}, + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - # Additional Parameters - ${AdditionalProperties}, + [System.String] + # Gets or sets the 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')] @@ -39006,12 +43166,6 @@ param( # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru}, - [Parameter(DontShow)] [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] [System.Uri] @@ -39041,10 +43195,10 @@ begin { $parameterSet = $PSCmdlet.ParameterSetName $mapping = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-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) @@ -39124,7 +43278,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -39346,7 +43499,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -39562,7 +43714,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -40009,7 +44160,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -40508,7 +44658,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -40773,7 +44922,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -41221,7 +45369,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -41403,6 +45550,240 @@ end { # 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 @@ -41670,7 +46051,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -41910,7 +46290,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -42199,7 +46578,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -42397,7 +46775,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -42642,7 +47019,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -42816,7 +47192,6 @@ INPUTOBJECT : Identity Parameter [DialedNumber ]: [EndpointId ]: Application instance Id. [ErrorReportId ]: The UUID of a report instance - [FlowId ]: [GroupId ]: The ID of a group whose policy assignments will be returned. [Id ]: [Identity ]: @@ -43132,10 +47507,10 @@ end { } # SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDjRQYHTzv5G8zG -# o90TcJwQHlDZ2z6FJ1EiRTYi61h6IqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBz/kPsKFOwGek/ +# 6VbLdtLfJn4KQwSRtf6ff/hSAG8Fo6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji # EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p @@ -43207,145 +47582,144 @@ end { # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p # Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA # BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJoh -# 322UKtxyWlZIu1zyERzf+b11rCHDWjyKTbmFz2Z3MEIGCisGAQQBgjcCAQwxNDAy +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIA1s +# StTElv/N9NKKgFf+gAo2RfeobcsSdros26CB7mOmMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAd8rXLDN1HijVzz01hhWJO3DtbPqqJrymRDCT -# /b4lItqEe6yJ5YjLI7puEWf/NScK8s+hNXMBlEx86qh2AnsInSVx0cShk0cFKATp -# eNrhuhE+UFfaKvVQpf/DV+5/U0RUSH5Jc0dEVg3eyksdU8DEHnzbZm4qfe8HhNPW -# myghZFrMyF28gQ98DOe+AyJ6+83YpqNNTkzlt4PwEQhGJ+MssLS5KEDb7SB7MTET -# xkP4UUQDrSrSCerg8XuHXHbD7HCD5o9NPfNGjuo6ajLs6RaHX04UMZKLEzsb7Nnn -# AwyUpG8COLDVvV6fsav+Qyu47sZb/eL/Age4n2GGdkb9q5i0laGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBda2AM2KJMQhS/7FvUVOQZAhh6iCRTYTh4 -# vVJUIXEWAgIGaKShIdfUGBMyMDI1MDgyMTA2NTExNy40MDVaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB/Big -# r8xpWoc6AAEAAAH8MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNFoXDTI1MTAyMjE4MzExNFowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjZGMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# p1DAKLxpbQcPVYPHlJHyW7W5lBZjJWWDjMfl5WyhuAylP/LDm2hb4ymUmSymV0EF -# RQcmM8BypwjhWP8F7x4iO88d+9GZ9MQmNh3jSDohhXXgf8rONEAyfCPVmJzM7yts -# urZ9xocbuEL7+P7EkIwoOuMFlTF2G/zuqx1E+wANslpPqPpb8PC56BQxgJCI1LOF -# 5lk3AePJ78OL3aw/NdlkvdVl3VgBSPX4Nawt3UgUofuPn/cp9vwKKBwuIWQEFZ83 -# 7GXXITshd2Mfs6oYfxXEtmj2SBGEhxVs7xERuWGb0cK6afy7naKkbZI2v1UqsxuZ -# t94rn/ey2ynvunlx0R6/b6nNkC1rOTAfWlpsAj/QlzyM6uYTSxYZC2YWzLbbRl0l -# RtSz+4TdpUU/oAZSB+Y+s12Rqmgzi7RVxNcI2lm//sCEm6A63nCJCgYtM+LLe9pT -# shl/Wf8OOuPQRiA+stTsg89BOG9tblaz2kfeOkYf5hdH8phAbuOuDQfr6s5Ya6W+ -# vZz6E0Zsenzi0OtMf5RCa2hADYVgUxD+grC8EptfWeVAWgYCaQFheNN/ZGNQMkk7 -# 8V63yoPBffJEAu+B5xlTPYoijUdo9NXovJmoGXj6R8Tgso+QPaAGHKxCbHa1QL9A -# SMF3Os1jrogCHGiykfp1dKGnmA5wJT6Nx7BedlSDsAkCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSY8aUrsUazhxByH79dhiQCL/7QdjAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAT7ss/ZAZ0bTaFsrsiJYd//LQ6ImKb9JZSKiRw9xs8hwk5Y/7zign9gGt -# weRChC2lJ8GVRHgrFkBxACjuuPprSz/UYX7n522JKcudnWuIeE1p30BZrqPTOnsc -# D98DZi6WNTAymnaS7it5qAgNInreAJbTU2cAosJoeXAHr50YgSGlmJM+cN6mYLAL -# 6TTFMtFYJrpK9TM5Ryh5eZmm6UTJnGg0jt1pF/2u8PSdz3dDy7DF7KDJad2qHxZO -# RvM3k9V8Yn3JI5YLPuLso2J5s3fpXyCVgR/hq86g5zjd9bRRyyiC8iLIm/N95q6H -# WVsCeySetrqfsDyYWStwL96hy7DIyLL5ih8YFMd0AdmvTRoylmADuKwE2TQCTvPn -# jnLk7ypJW29t17Yya4V+Jlz54sBnPU7kIeYZsvUT+YKgykP1QB+p+uUdRH6e79Va -# iz+iewWrIJZ4tXkDMmL21nh0j+58E1ecAYDvT6B4yFIeonxA/6Gl9Xs7JLciPCIC -# 6hGdliiEBpyYeUF0ohZFn7NKQu80IZ0jd511WA2bq6x9aUq/zFyf8Egw+dunUj1K -# tNoWpq7VuJqapckYsmvmmYHZXCjK1Eus7V1I+aXjrBYuqyM9QpeFZU4U01YG15uW -# wUCaj0uZlah/RGSYMd84y9DCqOpfeKE6PLMk7hLnhvcOQrnxP6kwggdxMIIFWaAD -# 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 -# Hm5TaGllbGQgVFNTIEVTTjo2RjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUATkEpJXOaqI2w -# fqBsw4NLVwqYqqqggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# 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 -# MDANBgkqhkiG9w0BAQsFAAIFAOxRGbkwIhgPMjAyNTA4MjEwNDA2MTdaGA8yMDI1 -# MDgyMjA0MDYxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7FEZuQIBADAKAgEA -# AgIHvAIB/zAHAgEAAgITHzAKAgUA7FJrOQIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQA5pIHrTnFZg2+WHVBtKEVNseFSfLKkg6N6RwwZsSxsypjRGiEDy/I/ -# 5u2xPgsInMvBf3jcp2ldBBW83q1Y2q3Da5V4Rdi0/F0TLLqIasKwqX3nzrGQCKX8 -# DJL2ib72fwON4QLa9fQO8Ay5yLTIGeKIRoEeykxVpvJYvrq544/sx74VNEuazJym -# 7cHowlWihmgfhkgj3ntyMHqlZAHWnU3oMK4Zjx0VM/2f/Q2BlNBexN6wGghcH1Nt -# Y+yVfyW9g0yiHrmfjQHDfekcijE2zD20ozv04x0tCUe+DD7bW43VFjir09m2SmjN -# 0rRGzFdzQhcvl+4m6eDGzk095C3ykHN5MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# 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 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH8GKCvzGlahzoAAQAAAfwwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgb8UFwewHbRZ2ixc196zTTndFYAPeOsgG2MaKZaNFVTAwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCCVQq+Qu+/h/BOVP4wweUwbHuCUhh+T7hq3 -# d5MCaNEtYjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB/Bigr8xpWoc6AAEAAAH8MCIEIJEFexbqvQGazGhcotW3Mmi65+htFvnlkX2N -# qcISIh6hMA0GCSqGSIb3DQEBCwUABIICAB6dMKpPwlnI5wuwXlo1+GclBD7lgmdy -# 3c/utsGYM4iMdd5yze08erbbIcDGbNWGR0PMxDva1vf+QAFI5Fj3tC7ANlk76qg/ -# 4wzVkexR/PxohNHl8Ye7xiexywpb/2sHGGEb3cPExtqD7b2Hv8G1SYOdbEczvVQw -# TkuhdZEfQoFKrtwnuXKwlAFcSaB0SGOG9ttUkY/uuxIAW8NDOxaU4Mw1E5RmMq0p -# xo35lohrSimcrm+I3jWnChVi92DWTViebcR2I9snU82brYnxKj3gaRErkcJTxttC -# Wshqc/UxUMFlSVq2uhjtvthaYRnmj5nesMCgxSHvC9yoTDX5kk3rRWPY9UguDLCm -# 2kx2fhM/I+x4WLGkMMPi0zTgwvLUMKVDVnG9NEtEFsvoFJqTt4DZlrxY6vT9k9Ff -# 7mXI4xUzTZnVtOo5XjVpxSY5Mk7EO3ayqfsrycKdk/+k9s/v0vQOwfI8PPWg5EJX -# OALMfmhTmNAe6RF0QmHUDuzgBIpuXHy6d4H29OI/1l0TZ21/fymJStKTWVT+FMJ9 -# qYJBF3S32RjQ26uq2g66amOwUU+4MgzrdsMHV4494dR3Yb6d25NYtC1BUlSg0hA2 -# ZUc5rWCUPITgRf+OnWwY1iV8iteIplCr6CaRrmeCB7t5CBEmMHmZn9ea4Pq1p2Cn -# cE6T374/popP +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIMuWTjNZzs9K4AAQAAAgwwIgQgu7V5 +# UxtdecnnvsuZx1H4TMOBvhwcH0wzCRa0UMgjhyowDQYJKoZIhvcNAQELBQAEggIA +# VItBcHf3YhRXhgDMZNumg875L5hFCOvyOO3uwNCIKFuYahDGgIy9mmmxt4ZLKJN/ +# TVgfkP6EkntDu242Lvdot/U8GYYj1g6h17th2AIgXkqb7fV2L4NGRisyO3/uWw7C +# 6mWYCABRHpaeyDZjpGRYU7ja9TTmaYZatpe4XUBifL+nzLYAu30YUaZBD+wTOTiJ +# 2/vSfyn2ge4KhhmqrJiVgI3Sy0vlzd5iQC7XMMCISBBZMO+yvvSeVHNFkWHQBkvf +# l/qWWHto6lkvo/xLcbZd+FbHD6q4M8qGAATZqlJiITvsOv/LyXAd4lsATde132nN +# SJUxS41IyBR/ZK3/5yA0e1QDdeFvafqg+coAW56ayZRnoU6WATW/z0MDhvwFrLR/ +# H/bQq+xJov7PCaCUMUiY7AaXMxZLjGvQCv4yljY64L3sIUIU9rQkNheQNqzyhRuM +# SOVFKP75aKKHISuTstMT9oAZQWTzwfmSPxifmKfU4XE52RBRCAcwtsM3TF+SX5YJ +# QRknqWdRhAVm5heygE0kY4NQCIzZeZrXl/H7nv/xMlk0/6wglzD/7L3KDdL47F8w +# 2wkP9VYINJB233/RwBm68DZyVo+f1mK6pQnMTss53hyj2F3D4aCvHj2Xxno4bnz2 +# Km6MLiEKprX0Q/mwEdi6kdqVmj2jqjASKXbyQAJH0wM= # SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 b/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 new file mode 100644 index 000000000000..2e62ea6e6ac7 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 @@ -0,0 +1,257 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = $PSScriptRoot + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBinYxDco4Ms/jt +# y2SUOAGGFlsJymQ7B0Ay6+tcGLbG9KCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIATt +# akQutmXgLMF/GbL8NirDQVtbkIOFqy28LZj0qbtlMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEA17SsiywvTICsAnL5fGyzC/EE26js2hnmpDWC +# a2KoSdvIxLmWYnsXbg5DJb1v6idS2MVDVd46eYYzaeIa8zInxrWqp6MOgJVyLQXh +# N8vGjjWa9qT/+RtlsjT27frDUsBfkkFt3qtn6xyGNKxYvGQ4TX0P9zuEeS//gDyk +# GBZfCjqqRuDkHqevP8ik4DFfObw1iTcRa+ejYfCDTPg9+EDy5stubukg214IoOz+ +# FmvTq9PL3VboTu5x4+iY3L4GVQgOObMYDhuEY2aaeid27EHXOhN4S+pJzK7R6Gz/ +# 5T67FTwteTOuom1s+184WQpLzGYi6UeJsucUzDB1LfwXdD+zHqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDaA5MS4DiVLSNBUIDIuXZLs5idxwm77KL7 +# HcuK7/1nagIGaKOvjL6CGBMyMDI1MTAwMTA4MzMwMi4zMzlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgeYBQLgud1gmcftiFNp1+OdVcUxMZ6LMiJXInMarJqRAwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICACa6Nq4NPscx13GhxWhaTg5DsYGw0bUo +# Nfeo17hpbR6DlrtvYc7DJC7XBw00ZAyGo6r6wQ6XiXymbFVrnIyymsjp9pjjjEtb +# HaMwU53H10eaCQYvHK4lF37HdpH746RGMSHv6CitJx3C941XprN0Zt44CATmLUS5 +# KjyKF0C2Z+zUz44s27KKb2zZOiNnbIgxRhZ/D2C/JGFOlC9SxjZJrHIeCHDjYd6P +# 21nMFQRvdg5QG7q0GPpg3yEWeu3rJUIo582kSO0jYjwkofc2o0lJPoBfSQc3LvKm +# pveWhnX3Y/JSvJ9hRvN81xqO2aGl+eUgcGhhpzMxjXPHzL73aa5CTrLs3MNR3pwI +# +RmRC0rpKr1hXvefEP+2Vrs89Qbu8C8Vu0llMrvO50T0BLJVIIDUow0mg+zs/MGg +# sEWHZ0K7BAplcyIUkS4jpha+8XCW538M7Uuv3XP53OJgj2Z3gGngixvrnZS+lg+w +# cG4mc4638jAk+N3Jjm13gcFTPmGu2mqXk0DJcYZ+97xLfyng6M1hyAdpXBRCwZpq +# rQFlE7xAFqgLgHLbAQhwHbXuZYufTbGPZ4yceJm4WnFn6LliHInjhy2mvlH8YCib +# eGslVrjejTHq1TQSZIcne1IgWXlFCi8UhBNooSueXIklbPku/w5lleC4fNRNuB/m +# AzaURq/znMHO +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/CmdletSettings.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/CmdletSettings.json rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.ApplicationInsights.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.ApplicationInsights.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll index faefb00eb7f4..fdca7bac6a8b 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.ApplicationInsights.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll similarity index 97% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Applications.Events.Server.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll index 7a98c9523e37..ad34a9aef84c 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Applications.Events.Server.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll similarity index 86% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll index af2abd778d82..78b1b1c89c60 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll similarity index 67% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll index 23aef9fa5710..ec2db7967083 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll similarity index 93% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll index 5726660a9c48..9b7c5d8faa25 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll similarity index 88% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll index 1c2294eeac67..e8a18a4ec99e 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Data.Sqlite.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll similarity index 95% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Data.Sqlite.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll index 64e1d3500373..fc5d616f68d9 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Data.Sqlite.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll similarity index 83% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll index 2c9c62aa5b74..d621de85f24f 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Configuration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll similarity index 89% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Configuration.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll index d27a6875b6bc..897b044501b1 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Configuration.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll similarity index 90% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll index 67221c302e7f..e29ee64f615e 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll similarity index 91% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll index 76922a4f85de..47529d6aa416 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll similarity index 79% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Logging.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll index 8aaf65cb1d88..393cbf1dee97 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Logging.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Primitives.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll similarity index 93% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Primitives.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll index 581763b3c7ab..d787a8775b5c 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Extensions.Primitives.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll similarity index 93% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll index d68934c670ea..0a0209905e26 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll similarity index 91% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll index 363bb7b8745a..ca9a777af241 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll similarity index 95% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll index 94c1f7882627..5169c48c914f 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll similarity index 91% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll index 1562e125e9ed..bf89be4980de 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll similarity index 95% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll index 8392cd9e44b7..9e41800ce4ae 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll index 7e006a6e1550..2124ac0d246b 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Identity.Client.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll similarity index 70% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll index d12d1dbfd649..4a29bc7db7f8 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll similarity index 94% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll index 13d573dbfe39..3324ed45ef53 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll similarity index 87% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll index 313b238d2b0a..8decf370fcac 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll index 97a3446450ce..45ae17b27e42 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll similarity index 96% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll index 0b4c431312e7..2c6c10570125 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll similarity index 95% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll index 67342ff5b538..d3056a460fce 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll similarity index 85% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll index 278930a0a729..015c3e2fbf96 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll index e9d9cf39c693..1ad797c94a88 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll index d0443e38598e..2b5b8520c438 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/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 similarity index 97% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll index d256df27ca85..595ee81d4fb4 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll similarity index 74% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll index 722e7b3ed168..9d95160a36f9 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll similarity index 75% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll index 9a7f573e40f5..236f96369c04 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json index 01b8d1d8cfdb..0300bacaa346 100644 --- a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json +++ b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json @@ -6,14 +6,14 @@ "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v3.1": { - "Microsoft.Teams.PowerShell.Module/7.3.1": { + "Microsoft.Teams.PowerShell.Module/7.4.0": { "dependencies": { "Microsoft.NETCore.Targets": "3.1.0", - "Microsoft.Teams.ConfigAPI.Cmdlets": "8.808.3", + "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.3", - "Microsoft.Teams.PowerShell.TeamsCmdlets": "1.5.3", + "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", @@ -834,7 +834,7 @@ } } }, - "Microsoft.Teams.ConfigAPI.Cmdlets/8.808.3": {}, + "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": { @@ -887,7 +887,7 @@ "Microsoft.Extensions.Configuration": "8.0.0" } }, - "Microsoft.Teams.PowerShell.Connect/1.7.3": { + "Microsoft.Teams.PowerShell.Connect/1.7.4": { "dependencies": { "Microsoft.Applications.Events.Server": "1.1.2.97", "Microsoft.Ic3.TenantAdminApi.Common.Helper": "1.0.28", @@ -907,8 +907,8 @@ }, "runtime": { "lib/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll": { - "assemblyVersion": "1.7.3.0", - "fileVersion": "1.7.3.0" + "assemblyVersion": "1.7.4.0", + "fileVersion": "1.7.4.0" }, "lib/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll": { "assemblyVersion": "1.0.864.35", @@ -960,9 +960,9 @@ } } }, - "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.3": { + "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.6": { "dependencies": { - "Microsoft.Teams.PowerShell.Connect": "1.7.3", + "Microsoft.Teams.PowerShell.Connect": "1.7.4", "Newtonsoft.Json": "13.0.3", "Polly": "7.2.4", "Polly.Contrib.WaitAndRetry": "1.1.1", @@ -971,8 +971,8 @@ }, "runtime": { "lib/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll": { - "assemblyVersion": "1.5.3.0", - "fileVersion": "1.5.3.0" + "assemblyVersion": "1.5.6.0", + "fileVersion": "1.5.6.0" }, "lib/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll": { "assemblyVersion": "1.0.0.0", @@ -2061,7 +2061,7 @@ } }, "libraries": { - "Microsoft.Teams.PowerShell.Module/7.3.1": { + "Microsoft.Teams.PowerShell.Module/7.4.0": { "type": "project", "serviceable": false, "sha512": "" @@ -2290,12 +2290,12 @@ "path": "microsoft.teams.configapi.cmdlethostcontract/3.2.4", "hashPath": "microsoft.teams.configapi.cmdlethostcontract.3.2.4.nupkg.sha512" }, - "Microsoft.Teams.ConfigAPI.Cmdlets/8.808.3": { + "Microsoft.Teams.ConfigAPI.Cmdlets/8.925.3": { "type": "package", "serviceable": true, - "sha512": "sha512-rym//6uawBqI5wBbvbryZu4v0zgDDNoibKd4favsXwPlHQk6Gmik/oL34UfcOl9YIP/8UUGPQR4kKjAt8r6cjA==", - "path": "microsoft.teams.configapi.cmdlets/8.808.3", - "hashPath": "microsoft.teams.configapi.cmdlets.8.808.3.nupkg.sha512" + "sha512": "sha512-RFkL3bUSCPZcf4mhuOLzfYo5NXOtoAnXRl/1mZYwzE9yTnhelPvTUVBlgWOATUVa797YhdH4xDkSt1q5J3hTRw==", + "path": "microsoft.teams.configapi.cmdlets/8.925.3", + "hashPath": "microsoft.teams.configapi.cmdlets.8.925.3.nupkg.sha512" }, "Microsoft.Teams.Policy.Administration/21.4.4": { "type": "package", @@ -2318,19 +2318,19 @@ "path": "microsoft.teams.policy.administration.configurations/12.2.29", "hashPath": "microsoft.teams.policy.administration.configurations.12.2.29.nupkg.sha512" }, - "Microsoft.Teams.PowerShell.Connect/1.7.3": { + "Microsoft.Teams.PowerShell.Connect/1.7.4": { "type": "package", "serviceable": true, - "sha512": "sha512-mThur2TmhaRKakr4VvoJUpEduRZHnqnFoptped5pgfzr9tCttC+kILDScdtdZIrVq0v8Xt+hydhDEAKtPgwLJQ==", - "path": "microsoft.teams.powershell.connect/1.7.3", - "hashPath": "microsoft.teams.powershell.connect.1.7.3.nupkg.sha512" + "sha512": "sha512-5PVwBrhY1PrL9866+37a00LJP1BRhKyFuHWyOqb4dmHM44EvlXn4UJbgyvQOEmwr/i3dMRsJHsEWpeOZmmlP7A==", + "path": "microsoft.teams.powershell.connect/1.7.4", + "hashPath": "microsoft.teams.powershell.connect.1.7.4.nupkg.sha512" }, - "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.3": { + "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.6": { "type": "package", "serviceable": true, - "sha512": "sha512-XhEc4fFryxir3lHmxAU6vL5QeOQ1qw85VyEDq0IN+SGtM+VNE+D605ci1h93FBVPJ2uHm4tIhFgLhaLNRN0gsQ==", - "path": "microsoft.teams.powershell.teamscmdlets/1.5.3", - "hashPath": "microsoft.teams.powershell.teamscmdlets.1.5.3.nupkg.sha512" + "sha512": "sha512-0wpSIlsiwCAAP/sZHIn66p7M8QG4IkAGKOJcR8LHuyp7J0uU0ByINsjp/YyOkGtgV9gOFo8Gun8giCz63BQA6w==", + "path": "microsoft.teams.powershell.teamscmdlets/1.5.6", + "hashPath": "microsoft.teams.powershell.teamscmdlets.1.5.6.nupkg.sha512" }, "Microsoft.Web.WebView2/1.0.864.35": { "type": "package", diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll new file mode 100644 index 000000000000..3e4b300b873f Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb similarity index 79% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb index 8cff86595799..b3d0ebe75e8a 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml similarity index 100% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll new file mode 100644 index 000000000000..a91477ead25d Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll new file mode 100644 index 000000000000..a3b892b74038 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll index 30dc94fa3e04..3fa1efe54e41 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll similarity index 88% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll index 0c1402e16e66..f0a377a3a2cc 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll similarity index 86% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll index 2c161b9538cf..7e60694860ee 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Newtonsoft.Json.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Newtonsoft.Json.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll index e36d161247a6..a2d241560b29 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Newtonsoft.Json.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/OneCollectorChannel.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll similarity index 79% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/OneCollectorChannel.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll index 7ddfa5c3cd7d..c031ac96e3c0 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/OneCollectorChannel.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll similarity index 77% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll index 1a7c886584c0..c082759015cd 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Polly.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Polly.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll index 3c10deeea0db..afe6d97775d5 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/Polly.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll similarity index 96% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll index 133a471e96b9..6fcf940c4e30 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll similarity index 84% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll index 8ed3895cf9bc..19871f5fcf21 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll similarity index 96% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll index 4b6f8c1a77df..cd465d3aa208 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Management.Automation.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll similarity index 98% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Management.Automation.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll index e65f74691cc0..1eda9c7fa707 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Management.Automation.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Management.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll similarity index 94% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Management.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll index 7184b7ac05b8..2b5e3781091d 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Management.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll similarity index 82% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll index 51fdaff1d11b..8ac2cc7dbc63 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll similarity index 90% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.AccessControl.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll index ef07891e746e..fd0725aa4906 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.AccessControl.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll similarity index 86% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll index b59b33f32c84..c3e174c06b18 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.Principal.Windows.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll similarity index 86% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.Principal.Windows.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll index 966b99f965d0..9d4508448f18 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/System.Security.Principal.Windows.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll index a6a80f8d4044..95afcfaf07ef 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll index ade6939ad86d..1cfb61b7f7a5 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll differ diff --git a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll similarity index 99% rename from Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll index 74a23b2036bd..5ac532ab8307 100644 Binary files a/Modules/MicrosoftTeams/7.3.1/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll differ diff --git a/Shared/AppInsights/Microsoft.ApplicationInsights.dll b/Shared/AppInsights/Microsoft.ApplicationInsights.dll new file mode 100644 index 000000000000..0fc9839e335a Binary files /dev/null and b/Shared/AppInsights/Microsoft.ApplicationInsights.dll differ diff --git a/Test-AllZTNATests.ps1 b/Test-AllZTNATests.ps1 new file mode 100644 index 000000000000..b64f12d4ce28 --- /dev/null +++ b/Test-AllZTNATests.ps1 @@ -0,0 +1,9 @@ +$Tenant = '7ngn50.onmicrosoft.com' +$item =0 +Get-ChildItem "C:\Github\CIPP-API\Modules\CIPPCore\Public\Tests\Invoke-CippTest*.ps1" | ForEach-Object { + $item++ + + write-host "performing test $($_.BaseName) - $($item)" + . $_.FullName; & $_.BaseName -Tenant $Tenant + +} diff --git a/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 new file mode 100644 index 000000000000..7a8ae25cc590 --- /dev/null +++ b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 @@ -0,0 +1,106 @@ +# Pester tests for Get-CIPPAlertGlobalAdminAllowList +# Verifies prefix-based allow list handling and alert emission + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $AlertPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1' + + # Provide minimal stubs so Mock has commands to replace during tests + function New-GraphGetRequest { param($uri, $tenantid, $AsApp) } + function Write-AlertTrace { param($cmdletName, $tenantFilter, $data) } + function Write-AlertMessage { param($tenant, $message) } + function Get-NormalizedError { param($message) $message } + + . $AlertPath +} + +Describe 'Get-CIPPAlertGlobalAdminAllowList' { + BeforeEach { + $script:CapturedData = $null + $script:CapturedTenant = $null + $script:CapturedErrorMessage = $null + + Mock -CommandName New-GraphGetRequest -MockWith { + @( + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.user' + displayName = 'Allowed Admin' + userPrincipalName = 'breakglass@contoso.com' + id = 'id-allowed' + }, + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.user' + displayName = 'Unapproved Admin' + userPrincipalName = 'otheradmin@contoso.com' + id = 'id-unapproved' + } + ) + } + + Mock -CommandName Write-AlertTrace -MockWith { + param($cmdletName, $tenantFilter, $data) + $script:CapturedData = $data + $script:CapturedTenant = $tenantFilter + } + + Mock -CommandName Write-AlertMessage -MockWith { + param($tenant, $message) + $script:CapturedErrorMessage = $message + } + } + + It 'emits per-admin alerts when AlertEachAdmin is true' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass'; AlertEachAdmin = $true } + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.UserPrincipalName | Should -Contain 'otheradmin@contoso.com' + $CapturedData.UserPrincipalName | Should -Not -Contain 'breakglass@contoso.com' + $CapturedTenant | Should -Be 'contoso.onmicrosoft.com' + } + + It 'emits single aggregated alert when AlertEachAdmin is false (default)' { + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue 'breakglass' + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].NonCompliantUsers | Should -Contain 'otheradmin@contoso.com' + $CapturedData[0].NonCompliantUsers | Should -Not -Contain 'breakglass@contoso.com' + } + + It 'emits single aggregated alert when AlertEachAdmin is explicitly false via input object' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass'; AlertEachAdmin = $false } + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].NonCompliantUsers | Should -Contain 'otheradmin@contoso.com' + $CapturedData[0].NonCompliantUsers | Should -Not -Contain 'breakglass@contoso.com' + } + + It 'suppresses alert when UPN prefix is approved (comma separated list)' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass,otheradmin'; AlertEachAdmin = $true } + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -BeNullOrEmpty + } + + It 'accepts ApprovedGlobalAdmins property when provided as hashtable' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass,otheradmin' } + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -BeNullOrEmpty + } + + It 'writes alert message when Graph call fails' { + Mock -CommandName New-GraphGetRequest -MockWith { throw 'Graph failure' } -Verifiable + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue 'breakglass' + + $CapturedData | Should -BeNullOrEmpty + $CapturedErrorMessage | Should -Match 'Failed to check approved Global Admins' + $CapturedErrorMessage | Should -Match 'Graph failure' + } +} diff --git a/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 new file mode 100644 index 000000000000..e37958e93814 --- /dev/null +++ b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 @@ -0,0 +1,155 @@ +# Pester tests for Get-CIPPAlertIntunePolicyConflicts +# Verifies aggregation defaults, toggles, and error handling + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $AlertPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1' + + function New-GraphGetRequest { param($uri, $tenantid) } + function Write-AlertTrace { param($cmdletName, $tenantFilter, $data) } + function Write-AlertMessage { param($tenant, $message) } + function Get-NormalizedError { param($message) $message } + function Test-CIPPStandardLicense { param($StandardName, $TenantFilter, $RequiredCapabilities) } + + . $AlertPath +} + +Describe 'Get-CIPPAlertIntunePolicyConflicts' { + BeforeEach { + $script:CapturedData = $null + $script:CapturedTenant = $null + $script:CapturedErrorMessage = $null + + Mock -CommandName Test-CIPPStandardLicense -MockWith { $true } + + Mock -CommandName Write-AlertTrace -MockWith { + param($cmdletName, $tenantFilter, $data) + $script:CapturedData = $data + $script:CapturedTenant = $tenantFilter + } + + Mock -CommandName Write-AlertMessage -MockWith { + param($tenant, $message) + $script:CapturedErrorMessage = $message + } + + Mock -CommandName New-GraphGetRequest -MockWith { + param($uri, $tenantid) + if ($uri -like '*deviceManagement/managedDevices*') { + @( + [pscustomobject]@{ + deviceName = 'PC-01' + userPrincipalName = 'user1@contoso.com' + id = 'device-1' + deviceConfigurationStates = @( + [pscustomobject]@{ displayName = 'Policy A'; state = 'conflict' } + ) + } + ) + } elseif ($uri -like '*deviceAppManagement/mobileApps*') { + @( + [pscustomobject]@{ + displayName = 'App A' + deviceStatuses = @( + [pscustomobject]@{ installState = 'error'; deviceName = 'PC-01'; userPrincipalName = 'user1@contoso.com'; deviceId = 'device-1' } + ) + } + ) + } + } + } + + It 'defaults to aggregated alerting with all mechanisms and statuses' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedTenant | Should -Be 'contoso.onmicrosoft.com' + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].PolicyIssues | Should -Be 1 + $CapturedData[0].AppIssues | Should -Be 1 + $CapturedData[0].Issues.Count | Should -Be 2 + } + + It 'emits per-issue alerts when AlertEachIssue is true' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ AlertEachIssue = $true } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 2 + ($CapturedData | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 1 + ($CapturedData | Where-Object { $_.Type -eq 'Application' }).Count | Should -Be 1 + } + + It 'supports legacy Aggregate=false for per-issue alerts' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ Aggregate = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 2 + ($CapturedData | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 1 + ($CapturedData | Where-Object { $_.Type -eq 'Application' }).Count | Should -Be 1 + } + + It 'honors IncludePolicies toggle' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ IncludePolicies = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].PolicyIssues | Should -Be 0 + $CapturedData[0].AppIssues | Should -Be 1 + $CapturedData[0].Issues.Count | Should -Be 1 + ($CapturedData[0].Issues | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 0 + } + + It 'suppresses conflict-only alerts when AlertConflicts is false' { + # conflict for policy, error for app; expect only app when conflicts suppressed + Mock -CommandName New-GraphGetRequest -MockWith { + param($uri, $tenantid) + if ($uri -like '*deviceManagement/managedDevices*') { + @( + [pscustomobject]@{ + deviceName = 'PC-02' + userPrincipalName = 'user2@contoso.com' + id = 'device-2' + deviceConfigurationStates = @( + [pscustomobject]@{ displayName = 'Policy B'; state = 'conflict' } + ) + } + ) + } elseif ($uri -like '*deviceAppManagement/mobileApps*') { + @( + [pscustomobject]@{ + displayName = 'App B' + deviceStatuses = @( + [pscustomobject]@{ installState = 'error'; deviceName = 'PC-02'; userPrincipalName = 'user2@contoso.com'; deviceId = 'device-2' } + ) + } + ) + } + } + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ AlertConflicts = $false; Aggregate = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].Type | Should -Be 'Application' + $CapturedData[0].IssueStatus | Should -Be 'error' + } + + It 'skips processing when license check fails' { + Mock -CommandName Test-CIPPStandardLicense -MockWith { $false } -Verifiable + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedData | Should -BeNullOrEmpty + $CapturedTenant | Should -BeNullOrEmpty + } + + It 'writes alert message when Graph call fails' { + Mock -CommandName New-GraphGetRequest -MockWith { throw 'Graph failure' } -Verifiable + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedData | Should -BeNullOrEmpty + $CapturedErrorMessage | Should -Match 'Failed to query Intune (policy|application) states' + $CapturedErrorMessage | Should -Match 'Graph failure' + } +} diff --git a/Tools/Build-FunctionPermissions.ps1 b/Tools/Build-FunctionPermissions.ps1 new file mode 100644 index 000000000000..38586cc37ff9 --- /dev/null +++ b/Tools/Build-FunctionPermissions.ps1 @@ -0,0 +1,87 @@ +param( + [string]$ModulePath = (Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore'), + [string]$OutputPath, + [string]$ModuleName +) + +$ErrorActionPreference = 'Stop' + +function Resolve-ModuleImportPath { + param( + [Parameter(Mandatory = $true)][string]$Root, + [Parameter(Mandatory = $true)][string]$Name + ) + + $psd1 = Join-Path $Root "$Name.psd1" + if (Test-Path $psd1) { return $psd1 } + + $psm1 = Join-Path $Root "$Name.psm1" + if (Test-Path $psm1) { return $psm1 } + + throw "Module files not found for '$Name' in '$Root'. Expected $Name.psd1 or $Name.psm1." +} + +function Get-HelpProperty { + param( + [Parameter(Mandatory = $true)]$HelpObject, + [Parameter(Mandatory = $true)][string]$PropertyName + ) + + $property = $HelpObject.PSObject.Properties[$PropertyName] + if ($property) { return $property.Value } + return '' +} + +# Resolve defaults +if (-not (Test-Path -Path $ModulePath)) { + throw "ModulePath '$ModulePath' not found. Provide -ModulePath to the module root." +} +$ModulePath = (Resolve-Path -Path $ModulePath).ProviderPath +if (-not $ModuleName) { $ModuleName = (Split-Path -Path $ModulePath -Leaf) } +if (-not $OutputPath) { + $defaultLibData = Join-Path $ModulePath 'lib' 'data' 'function-permissions.json' + $OutputPath = if (Test-Path (Split-Path -Parent $defaultLibData)) { $defaultLibData } else { Join-Path $ModulePath 'function-permissions.json' } +} + +# Ensure destination directory exists +$null = New-Item -ItemType Directory -Path (Split-Path -Parent $OutputPath) -Force + +# Import target module so Get-Help can read Role/Functionality metadata +$ModuleImportPath = Resolve-ModuleImportPath -Root $ModulePath -Name $ModuleName +$normalizedImportPath = [System.IO.Path]::GetFullPath($ModuleImportPath) +$loaded = Get-Module -Name $ModuleName | Where-Object { [System.IO.Path]::GetFullPath($_.Path) -eq $normalizedImportPath } +if (-not $loaded) { + Write-Host "Importing module '$ModuleName' from '$ModuleImportPath'" + Import-Module -Name $ModuleImportPath -Force -ErrorAction Stop +} else { + Write-Host "Module '$ModuleName' already loaded from '$ModuleImportPath'; reusing existing session copy." +} + +$commands = Get-Command -Module $ModuleName -CommandType Function +$permissions = [ordered]@{} + +foreach ($command in $commands | Sort-Object -Property Name | Select-Object -Unique) { + $help = Get-Help -Name $command.Name -ErrorAction SilentlyContinue + if ($help) { + $role = Get-HelpProperty -HelpObject $help -PropertyName 'Role' + $functionality = Get-HelpProperty -HelpObject $help -PropertyName 'Functionality' + } else { + $role = '' + $functionality = '' + } + + if ($role -and $functionality) { + $permissions[$command.Name] = @{ + Role = $role + Functionality = $functionality + } + } else { + Write-Host "Skipping $($command.Name): no Role or Functionality metadata found." + } +} + +# Depth 3 is sufficient for the flat hashtable of functions -> (Role, Functionality) +$json = $permissions | ConvertTo-Json -Depth 3 +Set-Content -Path $OutputPath -Value $json -Encoding UTF8 + +Write-Host "Wrote permissions for $($permissions.Count) functions to $OutputPath" diff --git a/Tools/Initialize-DevEnvironment.ps1 b/Tools/Initialize-DevEnvironment.ps1 index bf9641461a77..bc8fd6193f91 100644 --- a/Tools/Initialize-DevEnvironment.ps1 +++ b/Tools/Initialize-DevEnvironment.ps1 @@ -15,6 +15,14 @@ if ((Test-Path $PowerShellWorkerRoot) -and !('Microsoft.Azure.Functions.PowerShe Add-Type -Path $PowerShellWorkerRoot } +# Remove previously loaded modules to force reloading if new code changes were made +$LoadedModules = Get-Module | Select-Object -ExpandProperty Name +switch ($LoadedModules) { + 'CIPPCore' { Remove-Module CIPPCore -Force } + 'CippExtensions' { Remove-Module CippExtensions -Force } + 'MicrosoftTeams' { Remove-Module MicrosoftTeams -Force } +} + Import-Module ( Join-Path $CippRoot 'Modules\AzBobbyTables' ) Import-Module ( Join-Path $CippRoot 'Modules\DNSHealth' ) Import-Module ( Join-Path $CippRoot 'Modules\CIPPCore' ) diff --git a/Tools/Test-BackupStorageComparison.ps1 b/Tools/Test-BackupStorageComparison.ps1 new file mode 100644 index 000000000000..ea14bd8a94bf --- /dev/null +++ b/Tools/Test-BackupStorageComparison.ps1 @@ -0,0 +1,249 @@ +param( + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage, + [Parameter(Mandatory = $false)] [ValidateSet('Small', 'Medium', 'Large', 'All')] [string] $TestSize = 'All', + [Parameter(Mandatory = $false)] [bool] $Cleanup = $true +) + +$ErrorActionPreference = 'Stop' + +# Import CIPPCore module from repository +$modulePath = Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore' 'CIPPCore.psm1' +if (-not (Test-Path -LiteralPath $modulePath)) { + throw "CIPPCore module not found at $modulePath" +} +Import-Module -Force $modulePath + +if (-not $ConnectionString) { + throw 'Azure Storage connection string not provided. Set AzureWebJobsStorage or pass -ConnectionString.' +} + +Write-Host '================================' -ForegroundColor Cyan +Write-Host 'Backup Storage Comparison Tests' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +# Test data configurations +$testConfigs = @( + @{ + Name = 'Small' + ItemCount = 10 + PropertiesPerItem = 5 + Description = 'Small payload (~5KB)' + }, + @{ + Name = 'Medium' + ItemCount = 100 + PropertiesPerItem = 15 + Description = 'Medium payload (~250KB)' + }, + @{ + Name = 'Large' + ItemCount = 500 + PropertiesPerItem = 30 + Description = 'Large payload (~2.5MB)' + } +) + +function Generate-TestData { + param( + [int]$ItemCount, + [int]$PropertiesPerItem, + [string]$Type + ) + + $data = @() + for ($i = 0; $i -lt $ItemCount; $i++) { + $item = @{ + id = [guid]::NewGuid().ToString() + rowKey = "item_$i" + timestamp = (Get-Date).ToUniversalTime() + table = $Type + } + + for ($p = 0; $p -lt $PropertiesPerItem; $p++) { + $item["property_$p"] = "This is test property $p with some additional content to make it realistic. Lorem ipsum dolor sit amet." * 3 + } + + $data += $item + } + + return $data +} + +function Test-TableStorage { + param( + [array]$TestData, + [string]$TestName + ) + + Write-Host "`n[TABLE STORAGE] Testing $TestName..." -ForegroundColor Yellow + + $tableName = "TestBackup$(Get-Random -Maximum 100000)" + $Table = Get-CippTable -tablename $tableName + + $jsonString = $TestData | ConvertTo-Json -Depth 100 -Compress + $jsonSizeKB = [math]::Round(($jsonString | Measure-Object -Character).Characters / 1KB, 2) + + Write-Host " JSON Size: $jsonSizeKB KB" + + # Time the storage operation + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + try { + $entity = @{ + PartitionKey = 'TestBackup' + RowKey = $TestName + Backup = [string]$jsonString + } + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force -ErrorAction Stop + $stopwatch.Stop() + + Write-Host " Write Time: $($stopwatch.ElapsedMilliseconds)ms" -ForegroundColor Green + Write-Host ' Status: Success ✓' -ForegroundColor Green + + return @{ + Method = 'Table Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $true + Details = "Stored in table '$tableName'" + } + } catch { + $stopwatch.Stop() + Write-Host " Status: Failed ✗ - $($_.Exception.Message)" -ForegroundColor Red + + return @{ + Method = 'Table Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $false + Details = $_.Exception.Message + } + } +} + +function Test-BlobStorage { + param( + [array]$TestData, + [string]$TestName + ) + + Write-Host "`n[BLOB STORAGE] Testing $TestName..." -ForegroundColor Yellow + + $containerName = 'test-backup-comparison' + $blobName = "backup_$TestName`_$(Get-Random -Maximum 100000).json" + + $jsonString = $TestData | ConvertTo-Json -Depth 100 -Compress + $jsonSizeKB = [math]::Round(($jsonString | Measure-Object -Character).Characters / 1KB, 2) + + Write-Host " JSON Size: $jsonSizeKB KB" + + try { + # Ensure container exists + $containers = @() + try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' -ConnectionString $ConnectionString + } catch { $containers = @() } + + $exists = ($containers | Where-Object { $_.Name -eq $containerName }) -ne $null + if (-not $exists) { + Write-Host " Creating container '$containerName'..." -ForegroundColor Gray + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $containerName -Method 'PUT' -QueryParams @{ restype = 'container' } -ConnectionString $ConnectionString + Start-Sleep -Milliseconds 500 + } + + # Time the upload operation + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource "$containerName/$blobName" -Method 'PUT' -ContentType 'application/json; charset=utf-8' -Body $jsonString -ConnectionString $ConnectionString + $stopwatch.Stop() + + Write-Host " Write Time: $($stopwatch.ElapsedMilliseconds)ms" -ForegroundColor Green + Write-Host ' Status: Success ✓' -ForegroundColor Green + Write-Host " Location: $containerName/$blobName" -ForegroundColor Gray + + return @{ + Method = 'Blob Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $true + Details = "$containerName/$blobName" + } + } catch { + $stopwatch.Stop() + Write-Host " Status: Failed ✗ - $($_.Exception.Message)" -ForegroundColor Red + + return @{ + Method = 'Blob Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $false + Details = $_.Exception.Message + } + } +} + +# Run tests +$results = @() +$configsToRun = if ($TestSize -eq 'All') { $testConfigs } else { $testConfigs | Where-Object { $_.Name -eq $TestSize } } + +foreach ($config in $configsToRun) { + Write-Host "`n`n$($config.Description)" -ForegroundColor Magenta + Write-Host "Generating test data ($($config.ItemCount) items, $($config.PropertiesPerItem) properties)..." -ForegroundColor Gray + + $testData = Generate-TestData -ItemCount $config.ItemCount -PropertiesPerItem $config.PropertiesPerItem -Type "Backup_$($config.Name)" + + # Test table storage + $tableResult = Test-TableStorage -TestData $testData -TestName $config.Name + $results += $tableResult + + Start-Sleep -Milliseconds 500 + + # Test blob storage + $blobResult = Test-BlobStorage -TestData $testData -TestName $config.Name + $results += $blobResult +} + +# Summary +Write-Host "`n`n================================" -ForegroundColor Cyan +Write-Host 'Test Summary' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +$results | Group-Object -Property TestName | ForEach-Object { + $testGroup = $_ + Write-Host "`n$($testGroup.Name):" -ForegroundColor Magenta + + $testGroup.Group | ForEach-Object { + $status = if ($_.Success) { '✓' } else { '✗' } + Write-Host " $($_.Method): $($_.Size)KB | Write: $($_.WriteTime)ms | $status" -ForegroundColor $(if ($_.Success) { 'Green' } else { 'Red' }) + } +} + +# Detailed comparison +Write-Host "`n`n================================" -ForegroundColor Cyan +Write-Host 'Performance Comparison' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +$results | Group-Object -Property TestName | ForEach-Object { + $testGroup = $_ + $tableResult = $testGroup.Group | Where-Object { $_.Method -eq 'Table Storage' } + $blobResult = $testGroup.Group | Where-Object { $_.Method -eq 'Blob Storage' } + + if ($tableResult -and $blobResult -and $tableResult.Success -and $blobResult.Success) { + $timeDiff = $blobResult.WriteTime - $tableResult.WriteTime + $timePercentage = [math]::Round(($timeDiff / $tableResult.WriteTime) * 100, 2) + + Write-Host "`n$($testGroup.Name):" -ForegroundColor Magenta + Write-Host " Table Write Time: $($tableResult.WriteTime)ms" -ForegroundColor Gray + Write-Host " Blob Write Time: $($blobResult.WriteTime)ms" -ForegroundColor Gray + + if ($timeDiff -gt 0) { + Write-Host " Blob is $($timeDiff)ms slower ($($timePercentage)% slower)" -ForegroundColor Yellow + } else { + Write-Host " Blob is $((-$timeDiff))ms faster ($($(-$timePercentage))% faster)" -ForegroundColor Green + } + } +} + +Write-Host "`n`nTest Complete!" -ForegroundColor Green diff --git a/Tools/Test-BlobUpload.ps1 b/Tools/Test-BlobUpload.ps1 new file mode 100644 index 000000000000..f7a13eeb6a55 --- /dev/null +++ b/Tools/Test-BlobUpload.ps1 @@ -0,0 +1,85 @@ +param( + [Parameter(Mandatory = $false)] [string] $ContainerName = 'test', + [Parameter(Mandatory = $false)] [string] $BlobName = 'hello.txt', + [Parameter(Mandatory = $false)] [string] $Content = 'Hello, world!', + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage +) + +$ErrorActionPreference = 'Stop' + +# Import CIPPCore module from repository +$modulePath = Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore' 'CIPPCore.psm1' +if (-not (Test-Path -LiteralPath $modulePath)) { + throw "CIPPCore module not found at $modulePath" +} +Import-Module -Force $modulePath + +if (-not $ConnectionString) { + throw 'Azure Storage connection string not provided. Set AzureWebJobsStorage or pass -ConnectionString.' +} + +# Parse connection string for AccountName and AccountKey +$connectionParams = @{} +foreach ($part in ($ConnectionString -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $connectionParams[$matches[1]] = $matches[2] } +} +$AccountName = $connectionParams['AccountName'] +$AccountKey = $connectionParams['AccountKey'] + +# Support UseDevelopmentStorage=true +if ($connectionParams['UseDevelopmentStorage'] -eq 'true') { + $AccountName = 'devstoreaccount1' + $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' +} + +if (-not $AccountName -or -not $AccountKey) { + throw 'Connection string must contain AccountName and AccountKey or UseDevelopmentStorage=true.' +} + +Write-Host "Account: $AccountName" -ForegroundColor Cyan +Write-Host "Container: $ContainerName" -ForegroundColor Cyan +Write-Host "Blob: $BlobName" -ForegroundColor Cyan + +# Check if container exists via listing; create if missing +$containers = @() +try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' +} catch { $containers = @() } + +$exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null +if ($exists) { + Write-Host 'Container exists.' -ForegroundColor Green +} else { + Write-Host 'Container not found. Creating...' -ForegroundColor Yellow + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $ContainerName -Method 'PUT' -QueryParams @{ restype = 'container' } + Start-Sleep -Seconds 1 + # Re-check + try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' + } catch { $containers = @() } + $exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null + if (-not $exists) { throw "Failed to create container '$ContainerName'" } + Write-Host 'Container created.' -ForegroundColor Green +} + +# Upload blob content (BlockBlob by default) +Write-Host 'Uploading blob content...' -ForegroundColor Yellow +try { + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource "$ContainerName/$BlobName" -Method 'PUT' -ContentType 'text/plain; charset=utf-8' -Body $Content +} catch { + Write-Error "Blob upload failed: $($_.Exception.Message)" + throw +} +Write-Host 'Upload complete.' -ForegroundColor Green + +# Generate SAS token valid for 7 days (read-only) +$expiry = (Get-Date).ToUniversalTime().AddDays(7) +$sas = New-CIPPAzServiceSAS -AccountName $AccountName -AccountKey $AccountKey -Service 'blob' -ResourcePath "$ContainerName/$BlobName" -Permissions 'r' -ExpiryTime $expiry -Protocol 'https' -Version '2022-11-02' -SignedResource 'b' -ConnectionString $ConnectionString + +$url = $sas.ResourceUri + $sas.Token +Write-Host 'Download URL (7 days):' -ForegroundColor Cyan +Write-Output $url + +# Return structured object +[PSCustomObject]@{ Url = $url; Container = $ContainerName; Blob = $BlobName; ExpiresUtc = $expiry } diff --git a/cspell.json b/cspell.json index 976a619a4a33..28a883c89c5e 100644 --- a/cspell.json +++ b/cspell.json @@ -14,6 +14,7 @@ "CIPP-API", "CIPPCPV", "CIPPGDAP", + "CIPPURL", "Connectwise", "CPIM", "Datto", diff --git a/host.json b/host.json index cb92d98a0fcc..0e7bc9b1617d 100644 --- a/host.json +++ b/host.json @@ -5,17 +5,20 @@ }, "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", - "version": "[4.*, 5.0.0)" + "version": "[4.26.0, 5.0.0)" }, "functionTimeout": "00:10:00", "extensions": { "durableTask": { - "maxConcurrentActivityFunctions": 5, - "maxConcurrentOrchestratorFunctions": 2, + "maxConcurrentActivityFunctions": 1, + "maxConcurrentOrchestratorFunctions": 5, "tracing": { "distributedTracingEnabled": false, "version": "None" - } + }, + "defaultVersion": "8.8.2", + "versionMatchStrategy": "Strict", + "versionFailureStrategy": "Fail" } } } diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity new file mode 100644 index 000000000000..9d4d6a804a9c --- /dev/null +++ b/node_modules/.yarn-integrity @@ -0,0 +1,10 @@ +{ + "systemParams": "win32-x64-127", + "modulesFolders": [], + "flags": [], + "linkedModules": [], + "topLevelPatterns": [], + "lockfileEntries": {}, + "files": [], + "artifacts": {} +} \ No newline at end of file diff --git a/profile.ps1 b/profile.ps1 index 0554659212ce..d26d55f264bd 100644 --- a/profile.ps1 +++ b/profile.ps1 @@ -1,49 +1,109 @@ -Write-Information "CIPP-API Start - PS Version: $($PSVersionTable.PSVersion)" +Write-Information '#### CIPP-API Start ####' + +$Timings = @{} +$TotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew() +# Only load Application Insights SDK for telemetry if a connection string or instrumentation key is set +$hasAppInsights = $false +if ($env:APPLICATIONINSIGHTS_CONNECTION_STRING -or $env:APPINSIGHTS_INSTRUMENTATIONKEY) { + $hasAppInsights = $true +} +if ($hasAppInsights) { + Set-Location -Path $PSScriptRoot + $SwAppInsights = [System.Diagnostics.Stopwatch]::StartNew() + try { + $AppInsightsDllPath = Join-Path $PSScriptRoot 'Shared\AppInsights\Microsoft.ApplicationInsights.dll' + $null = [Reflection.Assembly]::LoadFile($AppInsightsDllPath) + Write-Debug 'Application Insights SDK loaded successfully' + } catch { + Write-Warning "Failed to load Application Insights SDK: $($_.Exception.Message)" + } + $SwAppInsights.Stop() + $Timings['AppInsightsSDK'] = $SwAppInsights.Elapsed.TotalMilliseconds +} # Import modules -@('CIPPCore', 'CippExtensions', 'Az.KeyVault', 'Az.Accounts', 'AzBobbyTables') | ForEach-Object { +$SwModules = [System.Diagnostics.Stopwatch]::StartNew() +$ModulesPath = Join-Path $PSScriptRoot 'Modules' +$Modules = @('CIPPCore', 'CippExtensions', 'AzBobbyTables') +foreach ($Module in $Modules) { + $SwModule = [System.Diagnostics.Stopwatch]::StartNew() try { - $Module = $_ - Import-Module -Name $_ -ErrorAction Stop + Import-Module -Name (Join-Path $ModulesPath $Module) -ErrorAction Stop + $SwModule.Stop() + $Timings["Module_$Module"] = $SwModule.Elapsed.TotalMilliseconds } catch { + $SwModule.Stop() + $Timings["Module_$Module"] = $SwModule.Elapsed.TotalMilliseconds Write-LogMessage -message "Failed to import module - $Module" -LogData (Get-CippException -Exception $_) -Sev 'debug' - $_.Exception.Message + Write-Error $_.Exception.Message } } +$SwModules.Stop() +$Timings['AllModules'] = $SwModules.Elapsed.TotalMilliseconds +# Initialize global TelemetryClient only if Application Insights is configured +$SwTelemetry = [System.Diagnostics.Stopwatch]::StartNew() +if ($hasAppInsights -and -not $global:TelemetryClient) { + try { + $connectionString = $env:APPLICATIONINSIGHTS_CONNECTION_STRING + if ($connectionString) { + # Use connection string (preferred method) + $config = [Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration]::CreateDefault() + $config.ConnectionString = $connectionString + $global:TelemetryClient = [Microsoft.ApplicationInsights.TelemetryClient]::new($config) + Enable-CippConsoleLogging + Write-Debug 'TelemetryClient initialized with connection string' + } elseif ($env:APPINSIGHTS_INSTRUMENTATIONKEY) { + # Fall back to instrumentation key + $global:TelemetryClient = [Microsoft.ApplicationInsights.TelemetryClient]::new() + $global:TelemetryClient.InstrumentationKey = $env:APPINSIGHTS_INSTRUMENTATIONKEY + Enable-CippConsoleLogging + Write-Debug 'TelemetryClient initialized with instrumentation key' + } + } catch { + Write-Warning "Failed to initialize TelemetryClient: $($_.Exception.Message)" + } + $SwTelemetry.Stop() + $Timings['TelemetryClient'] = $SwTelemetry.Elapsed.TotalMilliseconds +} + +$SwDurableSDK = [System.Diagnostics.Stopwatch]::StartNew() if ($env:ExternalDurablePowerShellSDK -eq $true) { try { Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop - Write-Information 'External Durable SDK enabled' + Write-Debug 'External Durable SDK enabled' } catch { Write-LogMessage -message 'Failed to import module - AzureFunctions.PowerShell.Durable.SDK' -LogData (Get-CippException -Exception $_) -Sev 'debug' $_.Exception.Message } } +$SwDurableSDK.Stop() +$Timings['DurableSDK'] = $SwDurableSDK.Elapsed.TotalMilliseconds -try { - Disable-AzContextAutosave -Scope Process | Out-Null -} catch {} - +$SwAuth = [System.Diagnostics.Stopwatch]::StartNew() try { if (!$env:SetFromProfile) { - Write-Information "We're reloading from KV" + Write-Debug "We're reloading from KV" $Auth = Get-CIPPAuthentication } } catch { Write-LogMessage -message 'Could not retrieve keys from Keyvault' -LogData (Get-CippException -Exception $_) -Sev 'debug' } +$SwAuth.Stop() +$Timings['Authentication'] = $SwAuth.Elapsed.TotalMilliseconds -Set-Location -Path $PSScriptRoot -$CurrentVersion = (Get-Content .\version_latest.txt).trim() +$SwVersion = [System.Diagnostics.Stopwatch]::StartNew() +$CurrentVersion = (Get-Content -Path (Join-Path $PSScriptRoot 'version_latest.txt') -Raw).Trim() $Table = Get-CippTable -tablename 'Version' -Write-Information "Function App: $($env:WEBSITE_SITE_NAME) Version: $CurrentVersion" +Write-Information "Function App: $($env:WEBSITE_SITE_NAME) | API Version: $CurrentVersion | PS Version: $($PSVersionTable.PSVersion)" +$global:CippVersion = $CurrentVersion + $LastStartup = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Version' and RowKey eq '$($env:WEBSITE_SITE_NAME)'" if (!$LastStartup -or $CurrentVersion -ne $LastStartup.Version) { Write-Information "Version has changed from $($LastStartup.Version ?? 'None') to $CurrentVersion" if ($LastStartup) { $LastStartup.Version = $CurrentVersion - $LastStartup | Add-Member -MemberType NoteProperty -Name 'PSVersion' -Value $PSVersionTable.PSVersion.ToString() -Force + Add-Member -InputObject $LastStartup -MemberType NoteProperty -Name 'PSVersion' -Value $PSVersionTable.PSVersion.ToString() -Force } else { $LastStartup = [PSCustomObject]@{ PartitionKey = 'Version' @@ -58,8 +118,20 @@ if (!$LastStartup -or $CurrentVersion -ne $LastStartup.Version) { } catch { Write-LogMessage -message 'Failed to clear durables after update' -LogData (Get-CippException -Exception $_) -Sev 'Error' } + + $ReleaseTable = Get-CippTable -tablename 'cacheGitHubReleaseNotes' + Remove-AzDataTableEntity @ReleaseTable -Entity @{ PartitionKey = 'GitHubReleaseNotes'; RowKey = 'GitHubReleaseNotes' } -ErrorAction SilentlyContinue + Write-Debug 'Cleared GitHub release notes cache to force refresh on version update.' } -# Uncomment the next line to enable legacy AzureRm alias in Azure PowerShell. -# Enable-AzureRmAlias +$SwVersion.Stop() +$Timings['VersionCheck'] = $SwVersion.Elapsed.TotalMilliseconds -# You can also define functions or aliases that can be referenced in any of your PowerShell functions. +$TotalStopwatch.Stop() +$Timings['Total'] = $TotalStopwatch.Elapsed.TotalMilliseconds + +# Output timing summary as compressed JSON +$TimingsRounded = [ordered]@{} +foreach ($Key in ($Timings.Keys | Sort-Object)) { + $TimingsRounded[$Key] = [math]::Round($Timings[$Key], 2) +} +Write-Debug "#### Profile Load Timings #### $($TimingsRounded | ConvertTo-Json -Compress)" diff --git a/requirements.psd1 b/requirements.psd1 index 63032898f263..3364b5ae1eef 100644 --- a/requirements.psd1 +++ b/requirements.psd1 @@ -1,10 +1,6 @@ # This file enables modules to be automatically managed by the Functions service. # See https://aka.ms/functionsmanageddependency for additional information. # -@{ - # For latest supported version, go to 'https://www.powershellgallery.com/packages/Az'. - # To use the Az module in your function app, please uncomment the line below. - 'Az.accounts' = '2.*' - 'Az.Keyvault' = '3.*' - 'AzBobbyTables' = '2.*' -} +# CIPP bundles all modules locally in the Modules folder and imports them explicitly. +# managedDependency is disabled in host.json - this file is intentionally empty. +@{} diff --git a/version_latest.txt b/version_latest.txt index f6f89a8f8109..11f1d47dac93 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -8.6.1 +8.8.2 diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000000..fb57ccd13afb --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + +